Autor Beitrag
xsus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

Win 2000, Win XP, Win 7; Ubuntu
Delphi 7, Delphi XE2, C
BeitragVerfasst: Di 22.11.11 18:56 
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
ausblenden 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 user profile iconGausi: Topic aus Algorithmen, Optimierung und Assembler verschoben am Di 22.11.2011 um 18:00
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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.

_________________
We are, we were and will not be.
xsus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

Win 2000, Win XP, Win 7; Ubuntu
Delphi 7, Delphi XE2, C
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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;

_________________
We are, we were and will not be.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS