Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form - Übergang
xsus - Di 22.11.11 18:56
Titel: Form - Übergang
Hallo,
ich habe ein Programm geschrieben, welches aus ca. 15 Formen besteht. So wie ein Installations-Assistenten.
Doch meine Methode mit dem Übergang von Form1 zu Form2
Delphi-Quelltext
1: 2:
| Form1.Hide; Form2.Show |
ist zwars sehr einfach aber unschön..die Fenster blitzen auf..man merkert den Übergang dolle..auch ein vertauschen..erst neue Form anzeigen und dann alte Verbergen brachte mich nicht weiter...wie kann man das geschickt lösen? und wie schaffe ich , dass die nächste Form immer die Position vom Vorgänger Annimmt..also wenn ich es verschiebe?! ...ich habe irgendetwss von canvas gehört? hat das was damit zu tun? wie geh ich dann damit um , um den form-übergang "sanft" zu gestalten?
Liebe Grüße V.S.
Moderiert von
Gausi: Topic aus Algorithmen, Optimierung und Assembler verschoben am Di 22.11.2011 um 18:00
Gausi - Di 22.11.11 19:02
So, wie sich das liest, würde ich erstmal vermuten, dass 13 oder 14 von den 15 Forms eigentlich überflüssig sind.
Sind die wirklich so unterschiedlich, dass man für jeda Aktion ein neues Fenster benötigt? Wenn die sehr ähnlich sind, könnte man z.B. anstatt eines Form-Wechsels nur die texte in den Captions/Memos/... ändern.
Und wenn die doch unterschiedlich sind, dann wäre etwas wie eine TPageControl mit ausgeblendeten Tabs vermutlich sinnvoller.
xsus - Di 22.11.11 19:20
Nein, das ist durchdacht! das ist ein programm, was tarife berechnet...klar ich könnte alles auf eine form klatschen, aber es sollte toll sein und sehr benutzerfreundlich ..eine form liest das gewicht eines paketes..eine fragt welche zusatz-optionen...eine gibt aus..etc...also auch viele verschiede elemente...also fällt die wahl wohl eher auf TPageControl?! kannst du mir das kurz erklären, wie ich das verwende? :]
LG
Gausi - Di 22.11.11 19:25
Das, was jetzt auf verschiedenen Forms ist, packst auf verschiedene Seiten des PageControls. Und anstelle die Form zu wechseln, wechselst du die Seite. ;-)
Eine neue Seite erstellt man auf dem Ding per Rechtsklick->neue Seite. Seite wechseln geht über setzen von .ActivePage oder .ActivePageIndex. Tabs ausblenden geht über TabSheetXXX.TabVisible := False;
bummi - Di 22.11.11 19:31
Oder Du hast eine zusätzliches leeres Parentform, wenn Deine Forms alle auf einem Template basieren könntest Du ein ShowAndDock für das jeweils nächste Form aufrufen.
Darin wird Borderstyle auf bsNone gestetzt, Align auf alClient, Parent auf Dein ParentForm und ein BringToFront ausgeführt.
Die anderen (älteren) Forms kannst, musst Du aber nicht direkt im Anschluss freigeben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!