Вниз
Скачать: CL | DM;

Назначение обработчика события потомку класса   Найти похожие ветки 

 
TrainerOfDolphins ©   (2006-02-21 14:18) [0]

Уважаемые гуру :)!
Делаю так:
var SomeDBGrid:TDBGrid;
procedure TfmMain.FormCreate(Sender: TObject);
begin
TStringGrid(SomeDBGrid).OnSelectCell:=fmMain.dbgStudentsSelectCell;
<...>
end;

procedure TfmMain.SomeDBGridSelectCell(Sender: TObject; ACol,
 ARow: LongInt; var Canselect: boolean);
begin
<действия>  
end;
Желаемые действия при клике на дб-гриде выполняются, но сразу вслед за этим возникает
------------------------------------------
exception class EAccessViolation with message "Access violation at address 00000000. Read of address 00000000". Process stopped. Use Step or Run to continue.
---------------------------------------------
Подскажите, плиз, где я лезу не в ту область памяти?


 
umbra ©   (2006-02-21 14:20) [1]

вот здесь

TStringGrid(SomeDBGrid).OnSelectCell


 
umbra ©   (2006-02-21 14:22) [2]

TDBGrid не является потомком TStringGrid


 
McSimm ©   (2006-02-21 14:23) [3]


> TStringGrid(SomeDBGrid)

Но это же обман. Раз обработчик спрятан, значит что-то в потомке изменено таким образом, что назначать обработчик нельзя. Логично ?


 
КаПиБаРа ©   (2006-02-21 14:25) [4]

Сначала нужно создать экземпляр класса, а потом с ним работать.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342


 
McSimm ©   (2006-02-21 14:26) [5]

Эксемпляр-то создан, в Design-Time
Только экземпляр олного класса, а попытка работать - с другим.


 
TrainerOfDolphins ©   (2006-02-21 14:31) [6]

Упс. :)
Смотрю - и точно.
А почему тогда канает это:
k:=TStringGrid(SomeDBGrid).Row;
?


 
КаПиБаРа ©   (2006-02-21 14:31) [7]

McSimm ©   (21.02.06 14:26) [5]
Не заметил где и когда был создан SomeDBGrid


 
umbra ©   (2006-02-21 14:40) [8]

потому что у TDBGrid и TStringGrid общий предок - TCustomGrid. Но в принципе так извращаться не стоит. Если нужны какие-то свойства предка, не опубликованные в потомке, лучше написать потомка от потомка. :)


 
TrainerOfDolphins ©   (2006-02-21 14:52) [9]

И прикол в том, что работает, всё выполняет. И только при выходе из обработчика возникает ошибка...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
2-1140895416
49 Cent
2006-02-25 22:23
2006.03.12
Как программно определить текущий месяц?


2-1140520736
TrainerOfDolphins
2006-02-21 14:18
2006.03.12
Назначение обработчика события потомку класса


3-1137743305
ThreeTONE
2006-01-20 10:48
2006.03.12
Добавить выбранные по определенному условию записи в эту жтаблицу


5-1126918562
rosl
2005-09-17 04:56
2006.03.12
иконка


2-1140641543
вася
2006-02-22 23:52
2006.03.12
массив и сеть




   Наверх