AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nach Close von Form2 eine Funktion ausführen

Ein Thema von DarkItachi · begonnen am 28. Dez 2009 · letzter Beitrag vom 28. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#1

Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 21:12
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
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 21:18
Hallo und willkommen in der DP

Wird Form2 modal oder normal geöffnet ? Zeig mal den Code, der bei dir nicht funktioniert.

  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 21:42
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
Angehängte Dateien
Dateityp: rar projekt_875.rar (325,1 KB, 2x aufgerufen)
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 21:49
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
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 22:05
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
Michael Kübler
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 22:07
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!^^
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 22:12
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.... )

Klar, wir helfen immer wieder gerne, vor allem bei entsprechender Eigeninitiative!

Viel Spaß weiterhin beim Programmieren...
Michael Kübler
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 22:29
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.... )

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

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
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 22:38
Ist ja schon gut

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
Michael Kübler
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Nach Close von Form2 eine Funktion ausführen

  Alt 28. Dez 2009, 23:10
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!
Developer since age 14
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz