Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form1 hochkant bzw. waagerecht per Button
nilsener1 - So 06.03.05 19:15
Titel: Form1 hochkant bzw. waagerecht per Button
Hallo,
ich möchte die Oberfläche von Form1 per Button vertikal hinstellen (z.B. am rechten Bildschirmrand) bzw. horizontal hinlegen (z.B. am unteren Bildschirmrand). Problem ist, dass sich mit Verändern der Oberfläche (stehend/liegend) auch die Positionen aller Objekte ändern muss (Edit1..., Label1..., etc.). Ich könnte eine Tabelle mit den xy-Koordinaten aller Objekt hinterlegen um die Positionen an die jeweilige Oberfläche anzupassen, das scheint mir aber sehr aufwändig und unflexibel bei Änderungen oder Ergänzungen.
Kennt jemand eine einfache Lösung dafür ?
Gruss nilsener
Moderiert von
Gausi: Topic aus CLX / Delphi Language (Object-Pascal) verschoben am Mi 09.03.2005 um 10:01
PLuS - So 06.03.05 19:23
Mir fällt dabei nur ein, dass du doch einfach eine zweite Form machen könntest, die zuerst unsichtbar ist.
Wenn du den Button klickst wird die eine sichtbar, die erste aber unsichtbar:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Button1Click(Sender: TObject); begin Form2.Visible:=true; Form1.Visible:=false; end; |
Master_BB - Mi 09.03.05 10:50
ganz einfach du schreibst dir eine routine namens
procedure ResizeInterface;
diese wird immer beim ergeignis FormResize deiner form aufgerufen bzw immer wennn du per button seine formposition mit größe änders und da schreibst du berechnungen rein.
diese berechnungen umfassen die berechnung der left, top, width, height werte für alle objekte auf deinem formular.
sprich wenn du eine sizeable form hast udn willst das unten eein button oder 2 immer in der mitte sind dann
würde man das hier als berechnung nehmen.
Button1.Left := (Width - Button1.Width) DIV 2;
wenn 2 buttons dann
Button1.Left := (Width - 2 * Button1.Width) DIV 2;
Button2.Left := Button1.Left + Button1.Width + 5;
wobei dir 5 jetzt einfach der abstand zwischen button1 zu button2 ist.
so kannst das mit allen elementen machen immer von der form ausgehen und berechnen lassen.
dazu nimmt man sich am besten nen zettel wenn und malt sich das zu berechnede objekt auff und kuk
wie man seine left und top position errechnen kannn. das geht auch alles für width und height dadurch
hast du eine 100% flexible positionierung deiner elemente auf der form.
greetu
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!