Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

проблема со 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 последних строчках поменять операнды местами


Наверх

Титульная страница Поиск, карта сайта Написать письмо