![]() |
Form von Unit aus kontrollieren/steuern
Hallo zusammen
Ich habe eine Form die ich als GUI benutze um einen Testablauf mit 3-5 Schritten darzustellen. Nun möchte ich diese Form für unterschiedliche Tests benutzen, was auch ganz verschiedene Abläufe gibt. Denn ganzen Code in dieser einen Form ist sehr unschön und schwer zu pflegen, darum wollte ich die Form nur noch als GUI benutzen und die Testabläufe extern in einer Unit haben. Mein erster Gedanke war eine Unit die den ganzen Grundablauf eines Testes handelt. Sprich die Form aufruft und diese auch steuert. Steuert: Weiter/Zurück Button, ev. Textfelder auslesen Nun stehe ich aber an. Wenn ich aus der Unit raus diese Form kreiere
Delphi-Quellcode:
wie kann ich dann nachher auf die Form zugreifen, sprich wie bekomme ich in der Unit mit, wann der Benutzer weiter klickt??
Fmyform := TTestFormFrm.Create(nil);
Ich hoffe jemand von euch kann mir helfen, beschäftige mich doch scho einige Zeit mit diesem Problem. Vieleicht bin ich auch völlig auf dem Holzweg und es würde auf eine andere Weise viel einfacher gehen. Bin um jeden Tipp dankbar. Danke im Voraus. Gruss Christian Ps: verwende Delphi 7 |
Re: Form von Unit aus kontrollieren/steuern
Befasse Dich mit Events. Dann kannst Du in Form ein Event "WeiterClicked" defnieren und in der Unit darauf reagieren.
Gruß, Jens |
Re: Form von Unit aus kontrollieren/steuern
Hallo,
wie ist das gedacht? Deine Units machen irgendwas, dann wird das Formular angezeigt und Du wartest auf eine Benutzeraktion. Abhängig von dieser Benutzeraktion soll irgendetwas geschehen (weitermachen, wiederholen, abbrechen, was auch immer). Wenn Du das Formular in diesem Fall mit ShowModal aufrufst, könntest Du jedem Button über ModalResult einen anderen Wert zuweisen (hier sind Integerwerte möglich, also mehr, als der Objektinspektor als Vorschläge zur Verfügung stellt). In den Units kannst Du dann z. B. über
Delphi-Quellcode:
abfragen, was der Benutzer gemacht hat.
case FortschrittsDialog.ShowModal of
1 : // 2 : // ... else // Defaultaktion end; Dies funktioniert jedoch nicht, wenn das Formular permanent angezeigt werden soll. Eine andere Möglichkeit wäre, in den Units den Dir bekannte Buttons... auf dem Formular Ereignisse zuzuweisen, die in der Unit definiert sind, so kann jede Unit ihre eigenen Ereignisroutinen mitbringen und das Formular führt die entsprechende Funktion aus.
Delphi-Quellcode:
// in Deiner Unit definiert
procedure myEnde(Sender: TObject); begin Fmyform.Close; // und irgendwas weiteres an Code end; ... Fmyform := TTestFormFrm.Create(nil); Fmyform.OnClick := myEnde; // u.s.w. für jeden Button, auch OnEdit, OnClick, OnExit für Eingabefelder... sind möglich, // also alles das, was Du auch in der Formularunit machen könntest |
Re: Form von Unit aus kontrollieren/steuern
vielen dank nahpets, hat mich schon ein stück weiter gebracht.
gruess christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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