Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.032 c
4-1135118283
Delphi_is_cool
2005-12-21 01:38
2006.03.12
Как добавить строку


2-1140779871
Saveliy
2006-02-24 14:17
2006.03.12
Соединение с интернетом


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


2-1140430400
Елизавета
2006-02-20 13:13
2006.03.12
CheckBox как столбец компонента TStringGrid


2-1140768616
evgenij_
2006-02-24 11:10
2006.03.12
Русский хелп для Дельфина