![]() |
Delphi-Version: 2006
Problem bei Größenanpassung
Liste der Anhänge anzeigen (Anzahl: 5)
Hallo, ich wollte das sich Komponenten meines Programms proportional zur Bildschirmgröße verhalten...
dazu habe ich folgenden Quelltext:=
Delphi-Quellcode:
durch das Show Message habe ich mehr oder minder zufällig folgendes entdeckt: (siehe Anhang)
procedure TFormMain.FormPaint(Sender: TObject);
var temp: Integer; begin ShowMessage(''); PConsole1.Width:=round((self.Width / 800) * PConsole1.Width); PConsole1.Height:=round((self.Height / 600) * PConsole1.Height); PConsole2.Width:=round((self.Width / 800) * PConsole2.Width); PConsole2.Height:=round((self.Height / 600) * PConsole2.Height); temp:=PConsole1.Left; PConsole1.Left := round((self.Width / 2)-(PConsole1.Width / 2)); PConsole2.Left:=PConsole2.Left+(PConsole1.Left-temp); end; die Methode wird 4 Mal aufgerufen und jedesmal wird das pannel größer... bis es den ganzen Bereich füllt... Woran liegt das? Hab ich irgendwo nen Fehler... sieht den jemand? :-D |
AW: Problem bei Größenanpassung
Du beziehst Dich bei der Größenänderung immer auf die Größe Deines Controls, nimm einfach eine Faktor und die Größe des Parentcontrols (Forms)....
|
AW: Problem bei Größenanpassung
Delphi-Quellcode:
Du setzt die neue Größe direkt proportional zur alten. Das kann doch nichts werden.
PConsole1.Width:=round((self.Width / 800) * PConsole1.Width);
Kennst du die Eigenschaft ![]() |
AW: Problem bei Größenanpassung
Zitat:
Zitat:
Ps: Ich versteh außerdem nicht wieso ich das nicht so machen kann... die Form ist ursprünglich 800 Pixel lang und 600 hoch je nach neuer Auflösung wird sie nun beispielsweise 1366 lang und 768 hoch, d.h. nach der obigen Rechnung ergibt sich für die Länge ein Faktor von 1,7075 und für die Höhe einer von 1,25. Das Pannel st zu Begin 513 Pixel hoch und 276 Lang 513*1,25 =(gerundet)641 276*1,7075=(gerundet)471 .... das wären die angepassten Maße für das Pannel--- PPS: Ich hab das mit dem Faktor versucht und für jede seite den Faktor berechnet :
Delphi-Quellcode:
das führt dazu das die procedure immer wieder in einer endloßschleife ausgelößt wird...
PConsole1.Width:=round(self.Width*0.31125);
PConsole1.Height:=round(self.Height*0.855); PConsole2.Width:=round(self.Width*0.97125); PConsole2.Width:=round(self.Height* 0.36333); |
AW: Problem bei Größenanpassung
Delphi-Quellcode:
ist natürlich der völlig falsche Ort um Code für die Grössenanpassung unterzubringen.
procedure TFormMain.FormPaint(Sender: TObject);
Siehe Onlinehilfe zu dem Event OnPaint. |
AW: Problem bei Größenanpassung
gut das du's sagst, aber wo wäres es denn Besser???
|
AW: Problem bei Größenanpassung
Wie wäre es OnResize?
|
AW: Problem bei Größenanpassung
Das klappt auch nicht, hat keinen effekt
|
AW: Problem bei Größenanpassung
hat noch jemand nen vorschlag?
|
AW: Problem bei Größenanpassung
Ja: zeig mal Deinen aktuellen Code :glaskugel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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 by Thomas Breitkreuz