Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#10

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 13:20
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...
Da das Thema immer noch aktuell ist, möchte ich diesen Post noch einmal aufleben lassen.
Wie kann ich denn den Lösungsansatz von s.h.a.r.k ohne AllocateHWnd unter Delphi 5 realisieren?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat