![]() |
Hauptformular ausblende beim wechsel auf ein anderes Form ?
Hallo, wer kann mir helfen bin Neuling :P in Delphi.
Ich habe folgendes Problem: habe ein Programm das mit einem Form1 startet.Auf diesem Form1 habe ich Buttons die weiter Formulare öffnen (Form2,3,4,5 usw.)soweit funktioniert es. Nur leider sind immer beide Formulare sichtbar. Wie kann ich machen ,dass nur noch Form2 sichtbar ist und das Form1=Mainform verschwindet.Auf dem Form2 ist dann wieder ein Button mit dem ich zurück auf Form1 komme. Danke für Eure Hilfe cu Megabyte :coder: |
Hi Megabyte,
du kannst doch einfach im OnShow-Ereignis von Form 2/3/4/5 Form1.Hide eintragen, beim Klick auf den Button, der zu Form1 zurückführt, dann Form1.Show. MfG, d3g |
Moin MegaByte,
herzlich willkommen in der Delphipraxis. Die Formulare habe eine Eigenschaft Visible. Wird diese auf false gesetzt, so wird das Formular ausgeblendet. Das gilt natürlich auch für das MainForm. [EDIT]Mist, zu spät :mrgreen:[/EDIT] |
Irgend wie versteh ich das nicht wie das geht mit der onshow funktion
Habe folgenden Code:
Delphi-Quellcode:
wer weiss wie ich den code modifizieren muss dass Form1 unsichtbar wird wenn Form2 lädt???
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2,Unit3,Unit4,Unit5; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form2.Showmodal; Form1.hide end; Danke für eure Hilfe Megabyte :P |
Moin Megabyte,
die Methode ShowModal zeigt das Formular an (in Deinem Falle also Form2) und wartet darauf, dass es geschlossen wird. Folge: Form1.Hide wird erst aufgerufen, wenn Form2 wieder geschlossen wird. Wenn Du die beiden Zeilen vertauscht klappts. Der von d3g vorgeschlagene Weg sieht ähnlich aus:
Delphi-Quellcode:
// Mit Button1 auf Form1 wird Form2 angezeigt
procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end; // Wird Form2 angezeigt, dann wird Form1 ausgeblendet procedure TForm2.FormShow(Sender: TObject); begin Form1.Hide; end; // Wird Form2 wieder geschlossen, so wird Form1 wieder angezeigt procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Form1.Show; end; |
Delphi-Quellcode:
// unit Unit1
procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; // ----- // unit Unit2 procedure TForm2.FormShow(Sender: TObject); begin Form1.Hide; end; procedure TForm2.Button1Click(Sender: TObject); begin Hide; Form1.Show; end; |
Hi,
das mit dem Showmodal habe ich noch nicht ganz kapiert. Vermute aber, daß es bei mir auch Ärger macht. Kann mir das mal jemand kurz erklären ? Das taucht überall auf, aber ich weiß nicht recht damit was anzufangen. Gruß Hansa P.S.: Sowas steht bei mir auch auf der Liste unerledigt, die halt nicht erledigt wird. :mrgreen: |
ShowModal bedeutet, dass dein Form in deiner Anwendung im Vordergrund steht, du deswegen kein anderes Form aktivieren kannst... (ganz einfach)
Chris |
Hallo Hansa,
sobald Du ein weiteres Fenster mit ShowModal öffnest, so hast Du nur noch auf dieses ein Zugriff, nicht mehr auf das hintere. Threads und Schleifen der Unit1, bleiben z.B. auch stehen, so lange, bist Du Form2 wieder geschlossen hast, solltest Du probleme haben, öffne die Fenster mal nur mit Show, anstatt mit ShowModal. Grüsse, Daniel :hi: |
AW: Hauptformular ausblende beim wechsel auf ein anderes Form ?
Hallo zusammen,
wie kann ich in diesem Fall verhindern, das solange das MainForm versteckt ist, das Programm aus der Taskleiste verschwindet? Danke und Gruß Torsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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