Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Rückgabewert von Sendmessage setzen

  Alt 18. Apr 2006, 09:13
Hallo,

mit Records funktioniert das so:
Delphi-Quellcode:
type // Record definieren
  TMsgRecord = record
    Daten: Integer;
    NochMehrDaten: Integer;
    Ergebnis: Integer;
  end;
  PMsgRecord = ^TMessageRecord // Einen Pointer definieren
Delphi-Quellcode:
procedure Send;
var
  MsgRecord: TMsgRecord;
begin
  MsgRecord.Daten := 12345;
  MsgRecord.NochMehrDaten := 98765;
  MsgRecord.Ergebnis := 0;

  // Message senden, wParam = Pointer auf Record
  if not SendMessage(Application.Handle, MYMESSAGEID, @MsgRecord, 0) then
  begin
    //Fehlerbehandlung
  end else
  begin
    // Erfolg, Ergebnis steht in MsgRecord.Ergebnis
  end;
end;
Delphi-Quellcode:
procedure TMainForm.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
var
  MsgRecord: PMsgRecord;
begin
  case Msg.Message of
    MYMESSAGEID:
    begin
      MsgRecord := PMsgRecord(Msg.wParam); // Record holen
      ...
      MsgRecord.Ergebnis := 1; // Erfolg
      Handled := true;
    end;
  end;
end;
Gruß
xaromz
  Mit Zitat antworten Zitat