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 Relative Position Komponente zu GetParentForm(Komponente) (https://www.delphipraxis.net/137145-relative-position-komponente-zu-getparentform-komponente.html)

anse 15. Jul 2009 00:19


Relative Position Komponente zu GetParentForm(Komponente)
 
Ich habe ein komplexes TForm mit allerlei Panels etc. Auf einem PageControl sitzt ein TEdit (mit .Parent = MeinForm), dessen relative Position zur TForm ich benötige, um es in einem speziellen Fall richtig auszurichten.

Bei TControl.ClientOrigin ist zu beachten, daß es den Punkt auf dem Screen liefert, nicht auf der übergeordneten TForm. Demnach sollte es so gehen:

Delphi-Quellcode:
X := MeinEdit.ClientOrigin.X - GetParentForm(MeinEdit).Left;
Y := MeinEdit.ClientOrigin.Y - GetParentForm(MeinEdit).Top;
Dabei schlagen allerdings ca. 10 Pixel für X + Y meiner "Window-Decoration" zu Buche, also die Ränder meines Vista-Theme-Form, was bei anderen Themes sehr wahrscheinlich mehr (oder weniger) sein wird, daher kein fester Wert.

Kann ich im Zusammenhang mit ClientOrigin die Ränder meiner Form zuverlässig berechnen?

IIIMADDINIII 15. Jul 2009 00:27

Re: Relative Position Komponente zu GetParentForm(Komponente
 
hallo benutze doch einfach width und clientwidth von form:
Delphi-Quellcode:
border := (width - clientwidth) div 2;
titleleiste := height - clientheight - border;
ungetestet

ich hoffe ich habe dir geholfen

anse 16. Jul 2009 22:51

Re: Relative Position Komponente zu GetParentForm(Komponente
 
Problem gelöst, zwar anders aber vielen Dank für den Denkanstoss.

Die X + Y Position bestimme ich einfach über

Delphi-Quellcode:
OffsetRect(MeinEdit.BoundsRect,
  MeinTab.ClientOrigin.X - Form.ClientOrigin.X,
  MeinTab.ClientOrigin.Y - Form.ClientOrigin.Y
  );


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