![]() |
Mehrere Formularoberflächen
Sorry, fang gerade erst an mit Delphi zu programieren und kenn mich
insgesamt noch nicht so gut damit aus. :oops: Ich schreibe zur Zeit an einem Vokabeltrainer und er hat die folgenden Funktionen: :arrow: Vokabeln eintragen ( diese werden dann in einer Listbox angezeigt ) :arrow: Vokabeln wieder löschen :arrow: Vokabelabfrage Bis jetzt habe ich alles soweit ganz gut hin bekommen. Mein Einziges Problem ist jetzt, dass ich die Vokabelabfrage so programmieren will: Wenn ich die Vokabelabfrage per klick auf einen Button starte, soll Die oberfläche von dem Programm wie folgt aussehen. :arrow: Die Listbox und die Vokabeleingabe soll nicht mehr da sein, sprich nurnoch dieListbox mit der Vokabel die abgefragt wird und das Editfeld, wo dann die Übersetzung eingetragen werden soll. Geht das Ganze auch ein wenig geschickter als nur einfach die Eigenschaft 'Visible' der Elemente die nichtmehr zu sehen sein sollen auf 'false' zu stellen :?: :coder2: Sofern möglich, wäre es praktisch eine andere Form zu laden, sodass nur die abfrage da ist und per klick auf einen Button gelangt man später auch wieder zur Vokabeleingabe. Ist diese Vorstellung irgendwie realisierbar :?: Wäre sehr dankbar für eine schnelle antwort. MfG Calvin |
Re: Mehrere Formularoberflächen
Hallo und Willkommen bei der Delphi-Praxis! :)
Für dein Problem kannst du zur Lösung entweder mehrere Formulare erzeugen (Datei -> Neu -> Form), die du jeweils bei dem Klick auf den Button mit Form2.Visible ein- oder ausblenden kannst. Das ist die simpelste Variante, was ich dir zum Üben auch erstmal empfehlen würde. Die neue Form sollte gleich automatisch in dein Projekt eingebunden sein und du solltest über einen Button-Klick schon auf die Elemente von Form2 zugreifen können. Dort kannst du genauso Edit-Felder, Labels, etc. unterbringen. Über die Form1 kannst du dann einfach per Form2.Edit1.Text oder ähnliches drauf zugreifen. Weiterhin sind zum Lernen und Üben Bücher und Tutorials sehr empfehlenswert (zB ![]() Eigeninitiative und Selbständigkeit sind hier auch gern gesehen. ^^ Umso mehr man davon zeigt, umso mehr bekommt man gute Hilfe. |
Re: Mehrere Formularoberflächen
Zitat:
Auch von mir ein herzliches Willkommen :hello: |
Re: Mehrere Formularoberflächen
Erstmal ein ganz großes dankeschön für eure Hilfsbereitschaft und die freundliche Aufnahme im Delphi-Praxis Forum!
:-D Ich habe zwar selber darüber nachgedacht, wie ich das problem lösen könnte. Hab aber keinen Einfall gehabt. Auf die Idee, im Turtorial nachzuschauen bin ich nicht gekommen :oops: Dafür hab ich es mit googlen versucht, hab aber entweder nicht die richtigen Suchbegriffe gewählt oder bin einfach nur nicht fündig geworden. :cry: Aber trotzdem vielen Dank für eure hilfe. Mal schauen ob sich das Problem nun bewältigen lässt :-D MfG Calvin |
Re: Mehrere Formularoberflächen
Achja, noch ein anderer Ansatz: Du könntest auch ein TPageControl nehmen und beim Start des Programms in einer Schleife für jede Unterseite TabVisible auf False stellen. Wenn du dann z.B. die Vokabeln abfragen willst, änderst du per Delphi-Code die Eigenschaft ActivePage (bin mir nicht ganz sicher, ob die so heißt) auf die entsprechende Seite.
|
Re: Mehrere Formularoberflächen
Zitat:
Ich habe es jetzt auf jeden Fall mit mehreren Forms hinbekommen das Problem zu lösen. :dancer: Aber ich hab jetzt ein neues... :cry: Da wüsste ich jetzt auch nicht, worunter ich im Turtorial nachschauen sollte. Sry, ich bin ein TOTALER Neuling was Programmieren angeht... :oops: Aber ich habe irgendwie Spaß dran gefunden. Wenn ich das Programm in Delphi teste, bzw. starte, läuft es erstmal und ich kann auch zwischen den Forms wechseln mit
Delphi-Quellcode:
Wenn ich das Programm jetzt schließen will, schließt nur die Form die ich gerade
procedure TForm1.Button1Click(Sender: TObject);
begin Form1.Visible := false ; Form2.visible := true ; end; geschlossen habe mit dem 'X' oben rechts aber die anderen Forms bleiben noch geöffnet :wall: Kann man das Schließen einer Form irgendwie mit dem Schließen aller Forms verbinden :coder2: Es gibt ja FormCreate; gibt es auch sowas wie FormShutDown worunter man die anderen Forms schließen kann? MfG Calvin |
Re: Mehrere Formularoberflächen
Wenn Du Deine Mainform schliesst, beendet sich die komplette Anwendung.
Bei allen anderen Forms könntest Du im OnClose-Ereignis erst alle anderen Fenster schliessen oder aber mit Application.Terminate die Anwendung beenden. Dieses war aber eine neue Frage, für die Du eigentlich hättest einen neuen Beitrag eröffnen müssen! |
Re: Mehrere Formularoberflächen
Du könntest in das OnClose von jedem Formular
Delphi-Quellcode:
reinschreiben. Ist allerdings ne relativ rabiate Methode, weil dadurch die Anwendung praktisch manuell abgeschossen wird. Ich hör schon die Buuuuh-Rufe^^ //Edit: Wohl doch nicht so unsauber, wie ich dachte
application.terminate;
Eine andere Möglichkeit wäre folgende:
Delphi-Quellcode:
for i := 0 to screen.formcount-1 do
screen.forms[i].close; |
Re: Mehrere Formularoberflächen
Delphi-Quellcode:
:?: :wink:
application.formcount
Edit: Was mir da gerade noch einfällt: Zitat:
|
Re: Mehrere Formularoberflächen
Zitat:
Ich hatte Screen und Application verwechselt. Mit Screen sollte es gehn. Aber da die andere Varainte ja offensichtlich doch sauber ist, kann man sich den Aufwand wohl sparen :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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