Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.02;
Скачать: CL | DM;

Вниз

TStringGrid.Objects   Найти похожие ветки 

 
roman001   (2002-04-18 18:32) [0]

Прочитал в Helpe про св-во Objects для каждой ячейки StringGrid.
По моему разумению значит, что в лубую ячейку можно вставить любой объект????? Да бог с ним с любым, не пожалейте кусок кода, которым можно вставить туда например CheckBox, а то я замаялся


 
Reindeer Moss Eater   (2002-04-18 18:53) [1]


StringGrid1.Objects[0,0]:=CheckBox1;


PS надеюсь ты не ожидаешь увидеть после этого checkbox в ячейке (0.0)?


 
Wasp ©   (2002-04-18 19:01) [2]

Здесь речь идет не о том, что привязав любой объект к ячейке, вы тут же увидите этот объект внутри ячейки. Массив Objects - это просто указатели и все. Для прорисовки, скажем CheckBox, привязанного к ячейке[m,n], вам надо повесить обработчик на OnDrawCell и в нем вызвать

if ACol=m and ARow=n then
SG1.(Objects as TWinControl).PaintTo(SG1.Canvas.Handle,Rect.Left,Rect.Top);


 
roman001   (2002-04-18 19:17) [3]

Вообщето именно checkboxа в ячейке я и ожидал, а иначе какой смысл?


 
Wasp ©   (2002-04-18 19:29) [4]

Основная задача StringGrid"а отображать текстовые данные, а уж от степени мастерства программиста зависит дополнительная функциональность. Кстати, в хелпе ни слова ни сказано о том, что Objects как-то отображаются, они просто привязаны к ячейке, причем не косвенно (черезы индексы в массивах) и эти объекты можно использовать, но делать это должен сам программист.


 
roman001   (2002-04-18 19:42) [5]

Вообщето именно checkboxа в ячейке я и ожидал, а иначе какой смысл?
SG1.(Objects as TWinControl).PaintTo SG1.Canvas.Handle,Rect.Left,Rect.Top); - не компилиться,

(SG1.Objects[1,1] as TCheckBox).PaintTo(SG1.Canvas.Handle,Rect.Left,Rect.Top); - компилиться, но в run time дает AccessViolation.


 
Wasp ©   (2002-04-18 20:02) [6]

Я надеюсь, вы понимаете, что этот checkbox (т.е. Objects[1,1]) должен быть создан где-нибудь, скажем в конструкторе формы

procedure TForm1.FormCreate(Sender: TObject);
begin
with SG1 do
begin
Objects[1,1] = TCheckBox1.Create(NIL);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-2572
Rammish
2002-04-13 13:15
2002.05.02
shellExecute


1-2503
zlo
2002-04-18 17:24
2002.05.02
ПОЛУЧЕНИЕ РАЗМЕРА ПАПКИ


1-2589
roman001
2002-04-19 18:52
2002.05.02
опять про TStringGtid


3-2461
MCFire
2002-04-10 18:31
2002.05.02
Как грамотно составить TreeView из таблицы?


14-2675
lipskiy
2002-03-25 00:16
2002.05.02
Как правильно - компонента, или компонент?