Einzelnen Beitrag anzeigen

Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#7

Re: Postmessage(Handle,WM_RBUTTONDOWN,0,0) an falscher posit

  Alt 8. Okt 2008, 09:44
Ganz einfach: ein Word ist 16 Bit lang, ein Integer 32. Ein Integer besteht folglich aus zwei Words. Diese beiden Words enthalten die Koordinaten. Durch Bit-Shifting kannst du das dann so lösen (bin in Delphi nicht mehr so firm, Code ohne Garantie; vielleicht stellt Delphi sogar ein Pendant für diese Funktion bereit):

Delphi-Quellcode:
function WordsToInt(w1: Word; w2: Word): Integer;
begin
  Result := (w1 shr 16) or w2;
end;
Der resultierende Integer ist dann dein lparam. Anmerkung: Cardinal wäre hier eigentlich der richtige Rückgabetyp, da der Rückgabewert kein Vorzeichen haben sollte. Aber wie gesagt: bin ich Delphi nicht mehr sehr firm, da ich schon länger nicht mehr damit programmiert habe.
Dein lparam ergibt sich dann aus X und Y:

lparam := WordsToInt(X, Y); Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat