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 1 von 3  1 23      
SimStar001

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

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

  Alt 8. Okt 2008, 08:45
Hallo, meine Postmessage(Handle,WM_RBUTTONDOWN,0,0) wird nicht an der vorher festgelegten mausposition ausgeführt, sondern in der oberen linken ecke! wieso das?
Marco Tröger
  Mit Zitat antworten Zitat
Dust Signs

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

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

  Alt 8. Okt 2008, 08:47
Musst du die Koordinaten nicht in lparam mit übergeben?

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
 
#3

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

  Alt 8. Okt 2008, 08:53
habe das ganz mal so ausprobiert,

[delphi]PostMessage(Handle,WM_RBUTTONdown,550,550);[delphi]

dann wandert das popupmenü zwar nach rechts aber bleibt oben am rand ?


wieso, oder was amche ich denn falsch!?
Marco Tröger
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

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

  Alt 8. Okt 2008, 09:00
Besser, du schreibst mal ein paar Worte darüber, was du da genau machen willst...
Ralph
  Mit Zitat antworten Zitat
Dust Signs

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

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

  Alt 8. Okt 2008, 09:00
Die Position wird laut MSDN nur über lParam kodiert.
Zitat von [url:
http://msdn.microsoft.com/en-us/library/aa923238.aspx[/url]]xPos Value of the low-order word of lParam. Specifies the x-coordinate of the pointer, relative to the upper-left corner of the client area.
yPos Value of the high-order word of lParam. Specifies the y-coordinate of the pointer, relative to the upper-left corner of the client area.
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
 
#6

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

  Alt 8. Okt 2008, 09:08
Also ich berechne aus Koordinaten die Cursor Position die im externen Programm gesetzt werden soll.

soweit ganz gut, Position wird richtig berechnent und die maus mit Setcursorpos dorthin bewegt.

nun soll auch genau an dieser stelle der rechtsklick erfolgen damit sich ein popup öffnent! und das funktioniert nicht.


Nun zu http://msdn.microsoft.com/en-us/library/aa923238.aspx

ich verstehe irgendwie nicht was ich denn nun genau angeben bzw übergeben muss??

Zitat:
xPos

Value of the low-order word of lParam. Specifies the x-coordinate of the pointer, relative to the upper-left corner of the client area.

yPos

Value of the high-order word of lParam. Specifies the y-coordinate of the pointer, relative to the upper-left corner of the client area.
Marco Tröger
  Mit Zitat antworten Zitat
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
SimStar001

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

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

  Alt 8. Okt 2008, 09:55
Habs jetzt so gemacht und das menü wird immer noch links oben ausgegeben



Delphi-Quellcode:
function WordsToLparam(w1: Word; w2: Word): cardinal;
begin
  Result := (w1 shr 16) or w2;
end;


Delphi-Quellcode:
Handle := Find_IvAc_Radar(IvAc);

      appactivate(Handle,1);
      SetCursorPos(x,y);
      PostMessage(Handle,wm_rbuttondown,wordstolparam(x,y),0);

was mache ich nur verkehrt?
Marco Tröger
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

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

  Alt 8. Okt 2008, 10:01
Das Macro MSDN-Library durchsuchenMAKELPARAM gibt es auch als Delphi Funktion, wenn ich mich recht entsinne.

Diskutieren wir hier eigentlich gerade an zwei Stellen: http://www.delphipraxis.net/internal...t.php?t=143934 ???
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
SimStar001

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

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

  Alt 8. Okt 2008, 10:10
OK, vielleicht sollte mir mal jemand ne gute erklärung geben was denn nun eigentlcih Lparam sind oder mal nen link für ne gute erklärung übder die ganzen msdn befehle, den ich auch verstehe
Marco Tröger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:31 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