![]() |
Delphi-Version: 5
Form mit Button auf anderer Form schließen
Hallo Freunde der Nacht :)
ich habe insgesamt 3 Formen, 2 davon sind eingabe-Dialoge. Mainform ruft die Form "eingabe" auf. Diese ruft, wenn eine Eingabe getätigt wurde, die Form "Bearbeiten" auf. Wenn ich bei der form "Bearbeiten" einen Button klicke, soll sich die Form "Eingabe" Schließen. Ich habe es Schon mit "Form3.close" und "Form3.Destroy" versucht. Beides funktioniert nicht. Vielleicht habt ihre eine Idee... Die nicht ganz so kompliziert ist ;) Naja, das kann ja wohl nicht so schwer sein ;) danke euch schonmal edit// gerade nochmal release probiert... geht auch nicht Zitat:
|
AW: Form mit Button auf anderer Form schließen
Mit welchem Owner wird Form3 erzeugt (oder ist es automatisch erzeugt)?
Wir wird Form3 aufgerufen Showmodal oder Show? |
AW: Form mit Button auf anderer Form schließen
Delphi-Quellcode:
die form wird von der mainform aufgerufen.. will sie jediglch auf der form2 schließen
lForm := TForm3.Create(nil);
with lForm do try if ShowModal = mrOK then begin end; finally FreeAndNil(lForm); end; |
AW: Form mit Button auf anderer Form schließen
Zitat:
Delphi-Quellcode:
ist lediglich eine globale Variable und kein irgendwie geartetes god-like Gedöns, was dir den Zugriff auf alle Instanzen von
Form3
Delphi-Quellcode:
gibt.
TForm3
Wenn du also eine Instanz von
Delphi-Quellcode:
erstellst und willst diese von irgendwo behandeln/zugreifen, dann solltest du diese Instanz-Referenz auch weitergeben.
TForm3
Wenn du eine Instanz von
Delphi-Quellcode:
auf die gleiche Art und Weise erzeugst, dann ist das auch nicht
TForm2
Delphi-Quellcode:
sondern eben eine Instanz von
Form2
Delphi-Quellcode:
(gleiches Spiel wie mit
TForm2
Delphi-Quellcode:
).
Form3
Am klügsten wird es wohl sein, ein Event in
Delphi-Quellcode:
und eine passende Methode in
TForm2
Delphi-Quellcode:
zu implementieren.
TForm3
Diese Methode von
Delphi-Quellcode:
wird dann dem Event von
TForm3
Delphi-Quellcode:
übergeben und dann bei Bedarf aufgerufen.
TForm2
Delphi-Quellcode:
TForm3 = class( TForm )
public procedure CallbackMethod( Sender : TObject ); end; TForm2 = class( TForm ) private FOnCallbackEvent : TNotifyEvent; protected procedure DoCallback; public property OnCallbackEvent : TNotifyEvent read FOnCallbackEvent write FOnCallbackEvent; end; procedure TForm2.DoCallback; begin if Assigend( OnCallbackEvent ) then OnCallBackEvent( Self ); end; |
AW: Form mit Button auf anderer Form schließen
Danke dir, werde es am nachmittag oder abend direkt ausprobieren.
Was würde ich bloß ohne euch machen ;) |
AW: Form mit Button auf anderer Form schließen
Sowas doofes habe es ganz einfach Lösen können. Wollte bevor ich den vorgeschlagenen Weg gehe etwas ausprobieren.
Delphi-Quellcode:
Dort rufe ich erst die Form2 auf und im finally schließe ich Form3 einfach.
with GForm do
try if ShowModal = mrOK then begin Form1.CreateChartLines; end; finally FreeAndNil(GForm); self.Close; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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