![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема со Stringgrid [D7, XP]
Максон © (2011-04-06 12:41:00)День добрый.
У меня такая ситуация: на форме 3 edit, 1 stringgrid, кнопки
при нажатии на кнопку добавить данные из edit-ов отображаются в stringgrid
procedure TForm2.addbtnClick(Sender: TObject);
begin
if strngrd1.Enabled = False then
strngrd1.Enabled := True;
strngrd1.RowCount := strngrd1.RowCount + 1;
strngrd1.FixedRows := 1;
strngrd1.Cells[0, strngrd1.RowCount - 1] := edt1.Text;
strngrd1.Cells[1, strngrd1.RowCount - 1] := edt2.Text;
strngrd1.Cells[2, strngrd1.RowCount - 1] :=edt3.Text;
end;
А как сделать чтобы данные из stringgrid отобразились в edit1, edit2, edit3 и после редактирования снова отобразились в Stringgrid
Медвежонок Пятачок (2011-04-06 14:59:00) [1]он наивно посчитал что мультиселекта не бывает, а если и бывает, то его делают снизу вверх.
и выделенная строка совпадает с верхней строкой селекта
Германн (2011-04-06 14:53:00) [2]
> > StringGrid1.Selection.Top
>
> выбирает текущую строку
Вообще-то номер текущей строки хранится в свойстве Row. И как его заменить на Selection.Top?
Максон (2011-04-06 13:44:00) [3]С задачей разобрался
> StringGrid1.Selection.Top
выбирает текущую строку, а у меня было
> strngrd1.RowCount - 1
Вот поэтому в edit-ах появлялась последняя строка
И. Павел (2011-04-06 13:20:00) [4]> Не верю!
Так он и не уточнил с чем разобрался: с задачей или с преподом :)
brother (2011-04-06 13:17:00) [5]> Все разобрался!
Не верю!
Максон (2011-04-06 13:15:00) [6]Все разобрался!
Спасибо огромное!
И. Павел (2011-04-06 13:05:00) [7]> [7] Максон © (06.04.11 12:59)
Замените
strngrd1.RowCount - 1
на
StringGrid1.Selection.Top
Медвежонок Пятачок (2011-04-06 13:00:00) [8]у тебя мало эдитов.
потому только последняя и отображается.
для всех строк нужно больше эдитов.
brother (2011-04-06 13:00:00) [9]> по - прежнему отображается только последняя строка из Stringgrid
а ты понял почему?:
> strngrd1.RowCount - 1
вот почему...
Максон (2011-04-06 12:59:00) [10]
> И. Павел © (06.04.11 12:51) [4]
> > [0] Максон © (06.04.11 12:41)Добавьте вторую кнопку,
> а в ней пишите наоборот:edt1.Text := strngrd1.Cells[0,
> strngrd1.RowCount - 1];edt2.Text := strngrd1.Cells[1, strngrd1.
> RowCount - 1];edt3.Text := strngrd1.Cells[2, strngrd1.RowCount
> - 1];
Ребята, все как написали сделал, но в edit-ах по - прежнему отображается только последняя строка из Stringgrid
И. Павел (2011-04-06 12:53:00) [11]> Не получается так, выделяется только последняя строка
Координаты первой выделенной в StringGrid ячейки:
(StringGrid1.Selection.Left; StringGrid1.Selection.Top)
Медвежонок ХМЛ (2011-04-06 12:52:00) [12]Не получается так, выделяется только последняя строка
Тем кодом вообще ничего не выделяется. Просто присваиваются значения.
Максон (2011-04-06 12:51:00) [13]
> Медвежонок ХМЛ © (06.04.11 12:44) [1]
> переставить в коде местами куски строки по обе стороны от
> :=
Не получается так, выделяется только последняя строка
И. Павел (2011-04-06 12:51:00) [14]> [0] Максон © (06.04.11 12:41)
Добавьте вторую кнопку, а в ней пишите наоборот:
edt1.Text := strngrd1.Cells[0, strngrd1.RowCount - 1];
edt2.Text := strngrd1.Cells[1, strngrd1.RowCount - 1];
edt3.Text := strngrd1.Cells[2, strngrd1.RowCount - 1];
Медвежонок ХМЛ (2011-04-06 12:44:00) [15]переставить в коде местами куски строки по обе стороны от :=
clickmaker (2011-04-06 12:44:00) [16]> как сделать чтобы данные из stringgrid отобразились в
> edit1, edit2, edit3
в 3 последних строчках поменять операнды местами