Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi relativen Urprung eines Canvas ermitteln (https://www.delphipraxis.net/40498-relativen-urprung-eines-canvas-ermitteln.html)

Takeshi 16. Feb 2005 17:23


relativen Urprung eines Canvas ermitteln
 
Tag.

Ich möchte in einer Funktion der ein Canvas übergeben wird dessen Ursprung auf dem Bildschrim ermmitteln. Ich habe das Problem folgendermaßen vereinfacht:

Delphi-Quellcode:
function GetCvasOrgn(CVas:TCanvas):TPoint;
begin
GetDCOrgEx(CVas.Handle,Result);
end;

procedure TForm1.btnCheckOrgnClick(Sender: TObject);
begin
Mouse.CursorPos:=GetCvasOrgn(PaintBox1.Canvas);
end;
Beim Klick auf den btnCheckOrgn springt der Mauszeiger aber an den ClientOrigin der Form und nicht an den Origin der PaintBox.
Was mach ich da falsch?

Viele Grüße + Danke, Christoph

Assarbad 21. Feb 2005 00:59

Re: relativen Urprung eines Canvas ermitteln
 
Im PSDK steht:
The GetDCOrgEx function retrieves the final translation origin for a specified device context (DC). The final translation origin specifies an offset that the system uses to translate device coordinates into client coordinates (for coordinates in an application's window).

Sprint 21. Feb 2005 01:43

Re: relativen Urprung eines Canvas ermitteln
 
Zitat:

Zitat von Takeshi
Beim Klick auf den btnCheckOrgn springt der Mauszeiger aber an den ClientOrigin der Form und nicht an den Origin der PaintBox.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Origin: TPoint;
begin

  GetViewportOrgEx(PaintBox1.Canvas.Handle, Origin);
  Origin := ClientToScreen(Origin);
  SetCursorPos(Origin.X, Origin.Y);

end;
Wie du das jetzt in deine Funktion einbauen kannst, überlasse ich dir.

Takeshi 1. Mär 2005 15:06

Re: relativen Urprung eines Canvas ermitteln
 
Hmmm danke, aber.. mir ist nicht verständlich, warum das bei ner PaintBox funzt aber bei nem Image nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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