Registriert seit: 21. Mai 2010
163 Beiträge
Delphi 5 Professional
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
8. Dez 2010, 22:56
Ich muss auch noch schnell zurück rudern! Das Problem an meinem Code ist, dass das (Window-) Handle fehlt, an welches die Nachricht geschickt werden kann. Denn nur dann wird die WndProc()
angesprungen.
Hier die funktionierende Version.
Delphi-Quellcode:
const
WM_MY_MESSAGE = WM_USER + 100;
type
TTest = class(TObject)
private
FHandle : HWND;
procedure WndProc(var Msg: TMessage);
procedure OnMyMessage(var Msg: TMessage); message WM_MY_MESSAGE;
public
constructor Create(); reintroduce;
destructor Destroy(); override;
end;
procedure TTest.WndProc(var Msg: TMessage);
begin
Dispatch(Msg);
end;
procedure TTest.OnStartupMessage(var Msg: TMessage);
begin
if (Msg.Msg = WM_MY_MESSAGE) then
begin
end;
end;
constructor TTest.Create();
begin
inherited Create();
FHandle := Classes.AllocateHWnd(Self.WndProc);
end;
destructor TTest.Destroy();
begin
DeallocateHWnd(FHandle);
inherited Destroy();
end;
-- EDIT: Dann bau halt eine passende if-Abfrage in die WndProc-Methode ein.
Kann ich dann ganz auf procedure OnMyMessage(var Msg: TMessage); message WM_MY_MESSAGE;
verzichten?
Verwende Delphi 5.
AllocateHWnd
kennt der Compiler nicht...
Herzlichen Gruß
FriendOfDelphi
Geändert von FriendOfDelphi ( 8. Dez 2010 um 22:59 Uhr)
|