Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Nach Close von Form2 eine Funktion ausführen (https://www.delphipraxis.net/145290-nach-close-von-form2-eine-funktion-ausfuehren.html)

DarkItachi 28. Dez 2009 21:12


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

haentschman 28. Dez 2009 21:18

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:

DarkItachi 28. Dez 2009 21:42

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

scrat1979 28. Dez 2009 21:49

Re: Nach Close von Form2 eine Funktion ausführen
 
Zitat:

Zitat von DarkItachi
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

Ich würde in diesem Fall das Einlesen aus der INI-Datei (aus Deinem OnCreate-Ereignis) in eine eigene Prozedur packen und dann mit

Delphi-Quellcode:
 [...]
 procedure TForm1.SpeedButton1Click(Sender: TObject);
 begin
   Form2.ShowModal;
   LiesINIDateiEin; // Prozedur aufrufen
 End;
 [...]
arbeiten. Oder habe ich das was falsch verstanden!?!

//EDIT: 1. Und nicht vergessen, den Speicher wieder freizugeben!!! (INI.Free in Deinem Beispiel)
2. Vermeide Globale Variablen :)

scrat1979 28. Dez 2009 22:05

Re: Nach Close von Form2 eine Funktion ausführen
 
Hier mal ein Beispiel, wie ich das machen würde:

Delphi-Quellcode:
 [...]
 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;

[...]
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...


Die INI-Datei sehe dann so aus:

============ SCHNIPP ==============
[Configure]
Design=4
============ SCHNAPP ===============

Grüße SCRaT

DarkItachi 28. Dez 2009 22:07

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!^^

scrat1979 28. Dez 2009 22:12

Re: Nach Close von Form2 eine Funktion ausführen
 
Zu den globen Variablen siehe hier : Link zum Thread

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...

DarkItachi 28. Dez 2009 22:29

Re: Nach Close von Form2 eine Funktion ausführen
 
Zitat:

Zitat von scrat1979
Zu den globen Variablen siehe hier : Link zum Thread

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...


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

scrat1979 28. Dez 2009 22:38

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

DarkItachi 28. Dez 2009 23:10

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:

DesignNo := ReadINI(ExtractFilePath(ParamStr(0))+'settings.ini ');
Funktioniert super, aber was bedeutet das genau?


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.
Seite 1 von 2  1 2      

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