![]() |
Nach Close von Form2 eine Funktion ausführen
Hallöchen!
Ich besitze, wie es auch in meinem Profil zu erkennen ist, Delphi 2010! Also, folgende Frage: Ich habe eine MainForm und eine Form2... Bei dieser Form2 werden durch einen Knopfdruck Einstellungen in einer *ini gespeichert! Wenn man Form2 schließt, dann soll Form1 jetzt noch einmal die *ini auslesen.. Wie funktioniert das denn? Mit dem Form Close Event hat das bei mir nicht funktioniert! (Weiß ja noch nicht einmal im annähesten, wie es geht! ^^) Bitte um Hilfe und um Korrektur von falschen Ausdrücken! ^^ Mfg DarkItachi |
Re: Nach Close von Form2 eine Funktion ausführen
Hallo und willkommen in der DP :dp:
Wird Form2 modal oder normal geöffnet ? Zeig mal den Code, der bei dir nicht funktioniert. :hi: |
Re: Nach Close von Form2 eine Funktion ausführen
Liste der Anhänge anzeigen (Anzahl: 1)
Habe das jetzt nochmal ganz schnell neu aufgebaut um nicht mein ganzen SOurce rauszugeben! ^^ (Arbeite schon ein paar Wochen daran!)
Ist sehr umständlich und sogar unordentlich aufgebaut! Bitte nicht lachen! ^^ Projekt im Anhang! :!: €D1T: Ich merke gerade, dass das noch nicht einmal funktioniert! OMG |
Re: Nach Close von Form2 eine Funktion ausführen
Zitat:
Delphi-Quellcode:
arbeiten. Oder habe ich das was falsch verstanden!?!
[...]
procedure TForm1.SpeedButton1Click(Sender: TObject); begin Form2.ShowModal; LiesINIDateiEin; // Prozedur aufrufen End; [...] //EDIT: 1. Und nicht vergessen, den Speicher wieder freizugeben!!! (INI.Free in Deinem Beispiel) 2. Vermeide Globale Variablen :) |
Re: Nach Close von Form2 eine Funktion ausführen
Hier mal ein Beispiel, wie ich das machen würde:
Delphi-Quellcode:
Bei mehreren Einzulesenden Dingen natürlich nicht als Funktion mit Rückgabe sondern als Prozedur, welche Variablen den Werten zuweist. Aber soll ja nur mal die Funktionsweise demonstrieren...
[...]
type TForm1 = class(TForm) SpeedButton1: TSpeedButton; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; function ReadINI(Datei : String) : Integer; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; [...] procedure TForm1.FormCreate(Sender: TObject); VAR DesignNo : Integer; begin DesignNo := ReadINI(ExtractFilePath(ParamStr(0))+'settings.ini'); if DesignNo = -1 then ShowMessage('Design nicht gefunden!') else ShowMessage('Design Nr. ' + IntToStr(DesignNo) + ' ist aktiv!'); end; function TForm1.ReadINI(Datei : String) : Integer; var MeinINIFile : TIniFile; begin Try MeinINIFile := TIniFile.Create(Datei); result := MeinINIFile.ReadInteger('Configure', 'Design', -1); Finally MeinINIFile.Free; End; end; [...] Die INI-Datei sehe dann so aus: ============ SCHNIPP ============== [Configure] Design=4 ============ SCHNAPP =============== Grüße SCRaT |
Re: Nach Close von Form2 eine Funktion ausführen
Ok danke dass sich dir Leute soviel Mühe geben, anderen Leuten zu helfen!^^
Werde das mit der eigenen Procedure jetzt erstmal probieren! Nochmal eine Frage: Was ist an globalen Variablen schlimm? Verbrauchen dir mehr Speicher oder verhindern die bestimmte Möglichkeiten? Thx! Ps.: Ich habe kein Informatik Unterricht und habe mir bis jetzt alles selber beigebracht! ^^ (Alles über Google!! ^^) Das ist meine erste Forenanfrage! ^^ €d1T: Danke für den Beispiel Code! Mal sehn' was ich gelernt habe!^^ |
Re: Nach Close von Form2 eine Funktion ausführen
Zu den globen Variablen siehe hier :
![]() Dass du Dir das ganz alleine beigebracht hast, schonmal gut ( Ich habe mir es vor vielen Jahren an einem (Damals noch TP 7.0) großen Source meines Schulkameraden beigebracht )! Ich überlege gerade, warum Du Dir dann gleich D2010 Enterprise kaufst ( möchte ja jetzt nichts unterstellen.... :oops: ) Klar, wir helfen immer wieder gerne, vor allem bei entsprechender Eigeninitiative! Viel Spaß weiterhin beim Programmieren... |
Re: Nach Close von Form2 eine Funktion ausführen
Zitat:
Ist nicht gekauft... ^^ Mein Vater arbeitet bei privater Firma Wir kriegen wirklich voll viel umsonst (die Firma bezahlt das ja, aber trotzdem! :thumb: ) Mein Vater wollte mir Delphi 2010 eigentlich nicht geben aber da ich das unbedingt wollte, ging das schon! Zuerst hatte ich mit Delphi 7 einen MessageBox Editor gemacht! ^^ (mithilfe von google mal wieder! ^^) Nun zum Thema: Wie soll ich das nun in einer Ini Datei schreiben? Etwa so: (?) ini.WriteInteger('Configure','Design',1) für tsButtons? Thx so far |
Re: Nach Close von Form2 eine Funktion ausführen
Ist ja schon gut :) :cheers:
Ja, mit dem Befehl schreibst Du das in die INI-Datei rein. Zuvor aber wieder INI-Datei erstellen, dann schreiben und zum Schluss Speicher freigeben. SCRaT |
Re: Nach Close von Form2 eine Funktion ausführen
Danke Ey!!!
Ich habs hinbekommen! Soviel Hilfe und dann so langsam kapiert! Zwei Sachen weiß ich noch nicht:^^ 1. Zitat:
2. Wie kann ich eine Funktion von Form2 beim Schließen ausführen lassen? Also wo muss man das einfügen? (die function) Thx4All Ein wahrer Support! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 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 by Thomas Breitkreuz