powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / help plz.
3 сообщений из 3, страница 1 из 1
help plz.
    #32004551
Ildar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, ситуация такая ...

Написал компоненту.
Как в ней сделать так чтобы при помешении ее на форму она
начинала обрабатывать некоторы сообщения приходящие в форму.
Например WM_NCPAINТ ...

Заранее спасибо ...
...
Рейтинг: 0 / 0
help plz.
    #32004566
Commander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если где неправ - пусть меня зубры поправят :О)
Главная форма походу пересылает компоненте все сообщения из очереди для которых у этой компоненты написан обработчик. Т.е. чтобы TTitler обрабатывала WM_NCPAINT надо так:

TTitler = class(TComponent)
private
FParentForm: TForm;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
public
constructor Create(AOwner: TComponent); override;
end;

implementation

constructor TTitler.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ParentForm:=TForm(AOwner);
end;

procedure TTitler.WMPaint(var Message: TWMPaint);
begin
//Your code here
end;


Коментарии:
наверное можно не заводить указатель на форму FParentForm и ссылаться на неё в обработчике, пользуясь TForm(SOwner)
но почему-то у меня это в аналогичной ситуации не работало, и в результате - такой код.
...
Рейтинг: 0 / 0
help plz.
    #32004567
Commander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если где неправ - пусть меня зубры поправят :О)
Главная форма походу пересылает компоненте все сообщения из очереди для которых у этой компоненты написан обработчик. Т.е. чтобы TTitler обрабатывала WM_NCPAINT надо так:

TTitler = class(TComponent)
private
FParentForm: TForm;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
public
constructor Create(AOwner: TComponent); override;
end;

implementation

constructor TTitler.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ParentForm:=TForm(AOwner);
end;

procedure TTitler.WMPaint(var Message: TWMPaint);
begin
//Your code here
end;


Коментарии:
наверное можно не заводить указатель на форму FParentForm и ссылаться на неё в обработчике, пользуясь TForm(SOwner)
но почему-то у меня это в аналогичной ситуации не работало, и в результате - такой код.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / help plz.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]