AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Postmessage(Handle,WM_RBUTTONDOWN,0,0) an falscher position
Thema durchsuchen
Ansicht
Themen-Optionen

Postmessage(Handle,WM_RBUTTONDOWN,0,0) an falscher position

Ein Thema von SimStar001 · begonnen am 8. Okt 2008 · letzter Beitrag vom 8. Okt 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

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

  Alt 8. Okt 2008, 10:14
Dann guck im MSDN nach: MSDN-Library durchsuchenPostMessage.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dust Signs

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

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

  Alt 8. Okt 2008, 10:18
Das kann ja nicht funktionieren, wenn du statt lparam wparam auf die Koordinaten setzt. Du musst den letzten Parameter (lparam) auf die Koordinaten setzen:

PostMessage(Handle, WM_RBUTTONDOWN, 0, WordsToLparam(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
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#13

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

  Alt 8. Okt 2008, 10:27
Zitat:
PostMessage(Handle, WM_RBUTTONDOWN, 0, WordsToLparam(x,y));
also wenn ich das mache, dann bewegt sich zwar das Popupmenü in x richtung an die richte position, es bleib aber immernoch in y richtung auf null hängen
Marco Tröger
  Mit Zitat antworten Zitat
Dust Signs

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

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

  Alt 8. Okt 2008, 10:29
Luckie hat dich ja bereits auf MakeLparam hingewiesen. Versuch das doch mal.
Es wäre angebracht, wenn du etwas mehr Eigeninitiative zeigen und dir einmal die von Luckie und mir geposteten Links durchlesen würdest

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
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#15

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

  Alt 8. Okt 2008, 10:33
Zitat von SimStar001:
Delphi-Quellcode:
function WordsToLparam(w1: Word; w2: Word): cardinal;
begin
  Result := (w1 shr 16) or w2;
end;
Ich bin mir jetzt nicht 100%ig sicher, aber müsste es, wenn überhaupt, nicht w1 shl 16 heißen?


Edit: Ja, es funktioniert mit shl. Allerdings muss man w2 nach links shiften, also so:
Delphi-Quellcode:
function WordsToLparam(w1: Word; w2: Word): cardinal;
begin
  Result := w1 or (w2 shl 16);
end;
Dann sollte alles wie gewollt funktionieren.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#16

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

  Alt 8. Okt 2008, 10:38
Zitat:
Luckie hat dich ja bereits auf MakeLparam hingewiesen. Versuch das doch mal.
Es wäre angebracht, wenn du etwas mehr Eigeninitiative zeigen und dir einmal die von Luckie und mir geposteten Links durchlesen würdest Rolling Eyes

Also ich bin doch schon am lesen und ausprobieren, mehr kann ich auhc nicht machen. und außerdem versteh ich die erklärungen bei msdn nicht wirklich. tut mir leid....
Marco Tröger
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#17

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

  Alt 8. Okt 2008, 10:42
Funktionierendes Beispiel ist im Edit meines letzten Posts. Wenn du willst, kann ich dir den Code auch noch erklären..
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#18

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

  Alt 8. Okt 2008, 10:44
Also bin jett schonmal etwas weiter gekommen:

Zitat:
Ich bin mir jetzt nicht 100%ig sicher, aber müsste es, wenn überhaupt, nicht w1 shl 16 heißen?

Also wenn ich es so mache wie du schreibst, bleibt das popupmenü zumindest nciht mehr bei y = 0 hängen, die richtige postion hat es allerdings immer noch nicht.


Nun zu MakelParam: Also damit wird das popup auf der richtigen position geöffnet!


vielen dank für die Hilfe!


(schwere Geburt!)


Zitat:
Funktionierendes Beispiel ist im Edit meines letzten Posts. Wenn du willst, kann ich dir den Code auch noch erklären..
Ja bitte erklär mir den Code mal, denn ich bekomm es einfach nciht in den kopf wieso man nicht einfach die x,y koordinate angeben kann!
Marco Tröger
  Mit Zitat antworten Zitat
Dust Signs

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

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

  Alt 8. Okt 2008, 10:47
Zitat von Fussball-Robby:
Zitat von SimStar001:
Delphi-Quellcode:
function WordsToLparam(w1: Word; w2: Word): cardinal;
begin
  Result := (w1 shr 16) or w2;
end;
Ich bin mir jetzt nicht 100%ig sicher, aber müsste es, wenn überhaupt, nicht w1 shl 16 heißen?


Edit: Ja, es funktioniert mit shl. Allerdings muss man w2 nach links shiften, also so:
Delphi-Quellcode:
function WordsToLparam(w1: Word; w2: Word): cardinal;
begin
  Result := w1 or (w2 shl 16);
end;
Dann sollte alles wie gewollt funktionieren.
Mit dem shl hattest du recht (mein Fehler). Trotzdem muss das erste Word geshiftet werden, also:

Result := (w1 shl 16) or w2; Dann wäre die Funktion wahrscheinlich ident zu MakeLparam und würde ebenfalls funktionieren.

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
Dust Signs

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

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

  Alt 8. Okt 2008, 10:48
Zitat von SimStar001:
ich bekomm es einfach nciht in den kopf wieso man nicht einfach die x,y koordinate angeben kann!
Wie bereits in meinem ersten Post geschrieben: X und Y sind je ein Word breit (16 Bit), und du übergibst einen Integer (lparam, 32 Bit). In 32 Bit passen 2 * 16 Bit, also 2 Koordinaten - X und Y mit jeweils 16 Bit.

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
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz