Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Dez 2010, 22:39
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k ( 8. Dez 2010 um 22:44 Uhr)
  Mit Zitat antworten Zitat