Вниз
Скачать: 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.041 c
4-1135151640
vlad_Ladynin
2005-12-21 10:54
2006.03.12
Запись и воспроизведение действий пользователя.


15-1139916584
ZeroDivide
2006-02-14 14:29
2006.03.12
Сколько сейчас стоит написание диплома?


2-1140537404
Михаил (Киров)
2006-02-21 18:56
2006.03.12
Нуль-модемное соединение


8-1128399076
Dilmo
2005-10-04 08:11
2006.03.12
Вопрос про BASS


15-1140197456
Ученик чародея
2006-02-17 20:30
2006.03.12
Как можно уменьшить сложность разработки больших комплексов.




   Наверх