![]() |
Komponenten sollen bleiben wo sie sind
hi
also wie das ganze mit Anchors funzt weiss ich, das funzt hier aber nicht, denn ich möchte das die komponenten immer so bleiben wie sie waren, egal wie ich das form vergrössere, die komponenten sollen sich dabei nicht selbst vergrössern/kleinern ich machs mal so wie ichs dachte, aus das: ![]() soll das: ![]() werden... wenn ich es mit anchros mache bekomme ich aber nur sowas hin: ![]() |
Re: Komponenten sollen bleiben wo sie sind
Na dann mach doch einfach nichts.
|
Re: Komponenten sollen bleiben wo sie sind
das problem ist das das fenster in der grösse veränderbar sein soll, die komponenten aber verhältnismässig an der gleichen position bleiben sollen
ich könnte ausrechnen wieviel % jede komponente left und top ist anhand der form width, heigth...aber geht es nicht auch einfacher? |
Re: Komponenten sollen bleiben wo sie sind
Dann veranker sie nur links und oben? Die Buttons sollen doch immer oben links in der Ecke sein oder?
|
Re: Komponenten sollen bleiben wo sie sind
ne, siehe bild 2, die ganzen komponenten sollen immer in der mitte bleiben, als wären sie in der mitte verankert
|
Re: Komponenten sollen bleiben wo sie sind
Dann bleibt nur noch selber cCoden übrig und zwar im OnResize der Form.
|
Re: Komponenten sollen bleiben wo sie sind
danke, das mach ich dann ^^
|
Re: Komponenten sollen bleiben wo sie sind
hm, nochmal eine frage, wie kann ich beim OnResize die alte wie auch die neue Grösse des fenssters kriegen?ein OnBefore/afterResize etc gibts ja nicht oder?
|
Re: Komponenten sollen bleiben wo sie sind
Merk dir die alte und ermitele nachher die neue. Aber die Brauchst du doch gar nicht. Warte, ich schreibe dir mal eben was.Gib mir 2 Minuten.
|
Re: Komponenten sollen bleiben wo sie sind
cool danke :)
|
Re: Komponenten sollen bleiben wo sie sind
Delphi-Quellcode:
Der Button bleibt immer in der Mitte.
procedure TForm1.FormResize(Sender: TObject);
begin Button1.Left := Form1.Width div 2 - Button1.Width div 2; Button1.Top := Form1.Height div 2 - Button1.Height; end; |
Re: Komponenten sollen bleiben wo sie sind
genau so meinte ich das, vielen dank für die mühe :)
|
Re: Komponenten sollen bleiben wo sie sind
Keine Ursache, ich bin heute gut drauf.
|
Re: Komponenten sollen bleiben wo sie sind
hat hoffentlich nichts mit drogen zu tun :)
|
Re: Komponenten sollen bleiben wo sie sind
Delphi-Quellcode:
Mach es so, ist besser. Bei Form1.Height ist noch die Titelzeile mit dabei.
Button1.Left := Form1.ClientWidth div 2 - Button1.Width div 2;
Button1.Top := Form1.ClientHeight div 2 - Button1.Height div 2; |
Re: Komponenten sollen bleiben wo sie sind
ah, das ist super, hat mich immerschon gewundert das die titelleiste mitgezählt wurde, naja form1.heigh schliesst die titelleiste eben mit ein, das mit clientheigh etc hab ich noch nie benutzt, gut zu wissen 8)
dankö^^ |
Re: Komponenten sollen bleiben wo sie sind
hm aber mit mehren kompos klappt das nicht da sie ja dann alle in er mitte bleiben würden(also alle übereinander)....ich möchte das verhältnis aber nur beibehalten...
ich hatte das mit einer prozdur versucht
Delphi-Quellcode:
FormW und FormH sind 2 globale veriablen die die alte form1 grösse beinhalten.... aufrufen tu ichs dann halt mit
procedure NewCompPos(comp: TWinControl);
var percL, percT: integer; begin with comp as TWinControl do begin percL := FormW DIV comp.Left; percT := FormH DIV comp.Top; comp.Left := Form1.Width DIV percL; comp.Top := Form1.Height DIV percT; end; end;
Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
begin NewCompPos(Panel1); end; nur irgendwie funktionietr das ganze noch nicht so, wenn ich die fenster grösse ändere ist das panel in der bewegung viel lahmer als das fenster selbst, wieso das? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 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