Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизСоздание события Найти похожие ветки
← →
webpauk (2004-09-16 13:30) [0]Для пункта меню создано событие:
type
TOnItemMouseClick = procedure of object;
TMenuItem = class
private
fOnItemMouseClick: TOnItemMouseClick;
public
constructor Create(aCaption, ffShortCut: String; ItemNumber, fLeft: Integer; aEnable: Boolean = True);
destructor Destroy; override;
procedure DoOnItemMouseClick; virtual;
property OnItemMouseClick : TOnItemMouseClick read fOnItemMouseClick write fOnItemMouseClick;
end;
procedure TMenuItem.DoOnItemMouseClick;
begin
if Assigned(fOnItemMouseClick) then fOnItemMouseClick;
end;
А фишка:Menu.Items[0].Items[4].OnItemMouseClick:=DoQuit;
- не работает
где DoQuit -
procedure DoQuit;
← →
webpauk (2004-09-16 13:31) [1]Выдает ошибку: Incompatible types: "method pointer and regular procedure"
← →
begin...end © (2004-09-16 13:34) [2]Объяви DoQuit как метод.
← →
webpauk (2004-09-16 13:34) [3]Может кто подскажет, как правильно определить событие, чтобы к нему можно было подвязать нужную процедурку
← →
webpauk (2004-09-16 13:37) [4]>begin...end ©
дык все процедуры, которые надо привязывать к событиям не запишешь как методы. Да и смысла в этом мало.
← →
Rem (2004-09-16 13:40) [5]procedure Form1.DoQuit;
или метод любого другого класса; естественно, прежде чем вызывать метод, необходимо создать экземпляр этого класса, а потом назначить метод этого экземпляра свойству.
← →
webpauk (2004-09-16 13:40) [6]может надо как то переписать класс?
← →
Rem (2004-09-16 13:41) [7][4]
Читайте про "делегирование методов".
← →
Rem (2004-09-16 13:44) [8]Если Вам не нужно, чтобы указанный обработчик события отображался в инспекторе объектов - можете указать свойство - указатель на процедурный тип в секции public.
TMyProc = procedure; // без of object
TMyClass = class
private
m_MyProc: TMyProc;
public
property MyProc: TMyProc read m_MyProc write m_MyProc;
...
end;
← →
Rem (2004-09-16 13:47) [9][6]
Вообще-то объектно-ориентированное программирование в том и заключается, что программисты пишут новые/наследованные классы и логику их взаимодействия. Так что класс действительно надо переписать. Как? - решать Вам.
← →
webpauk (2004-09-16 13:55) [10]> Rem
TMyProc = procedure!!! Cool!!!
спсб
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c