![]() |
Wer weis was "Screen.MonitorFromPoint" macht ? [Be
Hallo alle miteinander,
Ich versuche gerade eine Fremdanwendung zu Compilieren und der Compiler motzt Rum weil er Screen.MonitorFromPoint nicht findet. Ich habe Delphi5 Prof Die Procedure scheint wohl aus D6 zu stammen. Aber was macht die Procedure, bzw wie kann ich die nu nachbaun ... Weis da jemand ne Spezifikation, Google gab nicht wirklich was her. |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Es gibt dir den Monitor an, auf dem ein bestimter Punkt liegt. Was der Name halt so sagt.
|
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Nien du verstehst anscheinend nicht recht.
Ich mus die Procedur nachbaun unter D5 D.h. ich sollte schon mehr wissen. |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Ich hab grad geschaut.
Hast du die Unit MultiMon? Ansonsten über die Api GetmonitorInfo. |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Ich kenne die Delphi-Funktion zwar nicht, aber ich tippe mal, dass die ein Wrapper um
![]() |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
jup diese Unit habe ich,
in der gibts ne Function
Delphi-Quellcode:
Allerdings ist die nicht von ausen sichtbar ...
xMonitorFromPoint
|
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Aber MonitorfromPoint wird im initialization-Teil mit xMonitorfromPoint belegt. Also kannst du MonitorfromPoint aufrufen.
Dann bekommst du ein Handle und das wird in TScreen mit allen Monitoren verglichen (TScreen.FindMonitor). Edit: Oder du nimmst statt Multimon die von Dedy verlinkte Funktion direkt aus der winAPI. |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
OK nu mus ich gestehen bin ich nicht der hellste was WinAPI angeht.
biher habe ich mir mit der Überbrückung geholfen
Delphi-Quellcode:
Und es geht wunderbar, Nachdem ich selbst kein Multimonitor system habe, wird das auch so bleiben ;).
Function IsDisplayEdge(curPoint: TPoint): boolean;
Var ret1, ret2, ret3, ret4: boolean; Begin // ret1 := (Screen.MonitorFromPoint(Point(curPoint.X - 1, curPoint.Y), mdNull) = Nil); // ret2 := (Screen.MonitorFromPoint(Point(curPoint.X + 1, curPoint.Y), mdNull) = Nil); // ret3 := (Screen.MonitorFromPoint(Point(curPoint.X, curPoint.Y + 1), mdNull) = Nil); // ret4 := (Screen.MonitorFromPoint(Point(curPoint.X, curPoint.Y - 1), mdNull) = Nil); // result := (ret1 Or ret2 Or ret3 Or ret4); result := True; // So Gings, das da Oben Prüft irgendwas mit dem Monitor ... End; Mag mir einer von euch die Lösung , wie für Dumme einfach geschwind hinpinseln ? |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Hast du TScreen.findmonitor?
Edit:Quatsch brauchst du ja nicht. Mit Unit MultiMon
Delphi-Quellcode:
Oder nur über WinAPI:
Function IsDisplayEdge(curPoint: TPoint): boolean;
Var ret1, ret2, ret3, ret4: boolean; Begin ret1 := (MonitorFromPoint(Point(curPoint.X - 1, curPoint.Y), MONITOR_DEFAULTTONULL) = 0); ret2 := (MonitorFromPoint(Point(curPoint.X + 1, curPoint.Y), MONITOR_DEFAULTTONULL) = 0); ret3 := (MonitorFromPoint(Point(curPoint.X, curPoint.Y + 1), MONITOR_DEFAULTTONULL) = 0); ret4 := (MonitorFromPoint(Point(curPoint.X, curPoint.Y - 1), MONITOR_DEFAULTTONULL) = 0); result := (ret1 Or ret2 Or ret3 Or ret4); End;
Delphi-Quellcode:
var MonitorFromPoint:function(pt:TPoint;Flags:Cardinal):THandle stdcall=nil;
Function IsDisplayEdge2(curPoint: TPoint): boolean; const MONITOR_DEFAULTTONULL=0; Begin if not assigned(MonitorFromPoint) then begin result:=false; @MonitorfromPoint:=getprocaddress(getmodulehandle('user32.dll'),'MonitorFromPoint'); if not assigned(MonitorFromPoint) then exit; //oder Fehler end; result := (MonitorFromPoint(Point(curPoint.X - 1, curPoint.Y), MONITOR_DEFAULTTONULL) = 0) or (MonitorFromPoint(Point(curPoint.X + 1, curPoint.Y), MONITOR_DEFAULTTONULL) = 0) or (MonitorFromPoint(Point(curPoint.X, curPoint.Y + 1), MONITOR_DEFAULTTONULL) = 0) or (MonitorFromPoint(Point(curPoint.X, curPoint.Y - 1), MONITOR_DEFAULTTONULL) = 0); End; |
Re: Wer weis was "Screen.MonitorFromPoint" macht ?
Cool das geht,
Vielen Dankeschön. Nun kann ich mich daran machen die Wii Remote mit Deplhi auf Höchstleistungen zu Trimmen ;). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz