Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ссылка на объект в строке StringGrid`а


Автор: creative 28.2.2006, 11:47
В обработчике StringGrid`а onDoubleClick заложены две процедуры:
1. если строка, на которой стоит курсор, пустая, то открывается маленькая форма с полями ввода и при их заполнении и нажатии ОК, создается объект класса TThing (например), его поля отображаются с соотв. ячейках таблицы и еще - в текущую строку таблицы добавляется ссылка на этот объект:
Form1.MyGrid.Objects[0, row]:=NewThing;

2. если строка уже заполнена, то при Double Click`е тоже открыватся форма, но она уже содержит значения полей объекта, связанного с этой строчкой. Предполагается, что если эти значения изменить и нажать ОК, то они обновятся в таблице. обращение к объекты происходит следующим образом:
with TThing(Form1.MyGrid.Objects[0, row]) do
begin
...
end;

Но на этой строке программа вылетает.

Уточнение: если написать в чистом виде
Form1.MyGrid.Objects[0, row]
программа даже не скомпилится, написав, что row - ubdeclared identifier

Если изголиться и написать
var
a: integer;
..........
Form1.MyGrid.Objects[0, a]
то компилятор это проглотит, но при повторном обращении к объекту (при редактировании) программа вылетит. Отладчик показывает, что
TThing(Form1.MyGrid.Objects[0, row]) = nil, то есть при создании объекта никакая ссылка на него с строку не добавилась. Объясните почему? Что я делаю неправильно?

Автор: _hunter 28.2.2006, 12:13
row -- Это свойство сетки а ты к нему пытаешся обратится без указаеия объекта
нужно так:
Form1.MyGrid.Objects[0, MyGrid.row]
писать

Автор: Romikgy 28.2.2006, 12:14
Что есть
Цитата(creative @ 28.2.2006, 10:47 Найти цитируемый пост)
row

smile

Автор: creative 28.2.2006, 12:35
Цитата(Romikgy @ 28.2.2006, 12:14)
Спасибо за совет насчет row. Проблема все таки оказалась в другом, но это тоже новая и ценная информация. Спасибо.

Спасибо за совет насчет row. Проблема все таки оказалась в другом, но это тоже новая и ценная информация. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)