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

Вниз

Свойства - события   Найти похожие ветки 

 
Константинов ©   (2006-05-09 01:53) [0]

В компоненте есть некое  свойство - событие.
Во время выполнения одной из внутренних процедур компонента необходимо сгенерировать это событие и не дожидаясь, пока пользователь обработает его продолжить выполнение внутренней процедуры.

Пока у меня примерно так:

TMyComponent = class(TComponent)
private
 fOnMyEvent : TNotifyEvent;
 procedure MyProcedure;
protected
 procedure DoMyEvent; dynamic;
published
 property OnMyEvent : TNotifyEvent read fOnMyEvent write fOnMyEvent;
end;

implementation

TMyComponent.DoMyEvent;
Begin
 If assigned(fOnMyEvent) then fOnMyEvent(Self);
End;

TMyComponent.MyProcedure;
 Var I : integer;
Begin
 For I := 0 to Max do
 Begin
   …
   DoMyEvent;
   …
 End;
End;

Думаю нужно применять PostMessage. Но как, что-то вроде:

Private
     procedure MyProcedure2( var message : TMessage); message WM_USER + 1;

implementation

TMyComponent.MyProcedure2( var message : TMessage);
Begin
 If Assigned(fOnMyEvent) then fOnMyEvent(self);
End;

TMyComponent.MyProcedure;
 Var I : integer;
Begin
 For I := 0 to Max do
 Begin
   …
   PostMessage( ??? ,WM_USER + 1,0,0);
   …
 End;
End;

У класса TComponent нет хендла
Куда адресовать PostMessage?

Application.Handle?

Подскажите как правильно реализовать?
Заранее спасибо.


 
Юрий Зотов ©   (2006-05-09 05:32) [1]

Компонент может создать невидимое окно, тогда адресат появится. Для примера см. TTimer.


 
evvcom ©   (2006-05-10 08:56) [2]

А какой смысл в этом? Ну отработай процедуру до конца, раз так надо, а потом DoMyEvent;



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
6-1156606780
DVM
2006-08-26 19:39
2007.01.28
Неблокирующие сокеты на WinAPi.


15-1167758067
kaZaNoVa
2007-01-02 20:14
2007.01.28
Пространств вариантов или свобода выбора


4-1158425859
Антибайт
2006-09-16 20:57
2007.01.28
Выравнивание текста в Edit


2-1168421143
Kell
2007-01-10 12:25
2007.01.28
Создание объектов в RunTime


15-1166237552
for
2006-12-16 05:52
2007.01.28
Сишные циклы FOR в Паскаль не переводятся?