Autor Beitrag
Akut-Programming
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Do 21.08.03 20:04 
Abend!!!

Ich bins mal wieder!

In meinem Prog hab ich ein extra Form für die Einstellungen der Anwendung. Anfangs hatte ich die Daten nur dann in die ini schreiben lassen, wenn dieses Form geschlossen wurde (anhand von ausgewählten checkboxen). Jetzt wollt ich es so machen, das die Daten beim beenden der Anwendung gespeichert werden, wie so üblich. Nur komischer weise schreibt er da nie die Daten in mein ini File. Hatte dann auch schon versucht, den ButtonClick auf dem Einstellungsform zu simulieren, nur konnt ich es so nich hinbekommen. Hatte jemand auch schonmal das Problem oder weis wie es zu lösen ist???

_________________
Gruß,
Akut - Programming
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 22.08.03 09:34 
Poste doch mal den Sourcecode der für das Speichern zuständig ist und die Stelle an der du diesen Code aufrufst.

Gruß
Tino
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Fr 22.08.03 09:44 
Hier der Code vom Form in dem ich die Einstellungen vorneme:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
procedure TForm2.BitBtnSaveSettings(Sender: TObject);
var pfad:string;
    ini:TIniFile;
begin
pfad:=ExtractFilePath(ParamStr(0));
ini:=TIniFile.Create(pfad+'einstellungen.ini');

if Form2.CheckBox1.Checked=True then
 begin
  try ini:=TIniFile.Create(pfad+'einstellungen.ini');
   ini.WriteInteger('einstellungen','LoadNotice',1);
  finally
   ini.free;
  end;
end
 else
  begin
   try ini:=TIniFile.Create(pfad+'einstellungen.ini');
    ini.WriteInteger('einstellungen','LoadNotice',0);
   finally
    ini.free;
   end;
  end;

   if Form2.CheckBox2.Checked=True then
    begin
     try ini:=TIniFile.Create(pfad+'einstellungen.ini');
      ini.WriteInteger('einstellungen','WindowHeight',Form1.Height);
      ini.WriteInteger('einstellungen','WindowWidth',Form1.Width);
      ini.WriteInteger('einstellungen','ActivateWindowSize',1);
     finally
      ini.free;
     end;
    end
     else
      begin
       try ini:=TIniFile.Create(pfad+'einstellungen.ini');
        ini.WriteInteger('einstellungen','WindowHeight',605);
        ini.WriteInteger('einstellungen','WindowWidth',863);
        ini.WriteInteger('einstellungen','ActivateWindowSize',0);
       finally
        ini.free;
       end;
      end;
  Form2.Close;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  if Form1.loadnotice=1 then
   begin
    CheckBox1.Checked:=True;
   end
    else CheckBox1.Checked:=False;
  if Form1.activatewindowsize=1 then
   begin
    CheckBox2.Checked:=True;
   end
    else CheckBox2.Checked:=False;
end;

Die is der Code wo ich es eigentlich haben wollte:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.BitBtnClose(Sender: TObject);
begin
  //Form2.BitBtnSaveSettings.Click //hatte schon versucht den klick zu simulieren, aber auch das ging nicht
  Form1.Close;

//es klappte auch nicht, den code von Form2.BitBtnSaveSettings hier einzufügen, er machte es trotz das ich alle Verweise auf  Form2 legte nicht!
end;


Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.

_________________
Gruß,
Akut - Programming
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Fr 22.08.03 12:36 
Tino hat folgendes geschrieben:
Hallo!

..Klar versuche ich zu helfen!... Deinen Beitrag hätte ich so wie so noch mal angeschaut :-)..

Gruß und ein schönes Wochenende!
Tino


:wink2: Danke Tino! Wünsch ich dir ebenfalls! Übrigens echt Klasse das Forum. Man kann hier echt was lernen!
Mach dein Ding als Admin weiter so gut!!! :wink:

_________________
Gruß,
Akut - Programming
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 22.08.03 14:42 
Hallo!

Wenn dein Form2 automatisch erstellt wird dann musste der folgende Aufruf klappen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.BitBtnClose(Sender: TObject); 
begin 
  Form2.BitBtnSaveSettings (nil);
end;

Gruß
Tino
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: So 24.08.03 16:27 
Ne dat klappt nich! Habs grad ma versucht. Nur da sagt er mir, das noch n Operator oder Semikolon fehlt. So hab ichs eingefügt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.BitBtnClose(Sender: TObject);
begin
  Form2.BitBtnSaveSettings (nil);
  Form1.Close;
end;


Hab ich was vergessen?? Schönen Sonntag dann erstmal!

_________________
Gruß,
Akut - Programming
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: So 24.08.03 19:38 
Was mir mal so aufgefallen ist, ist folgendes:

Du rufst die INI auf und kontrollierst dann die Checkboxen. Innerhalb einer jeden Kontrolle furst du die INI erneut auf, speicherst in ihr und gibst sie wieder frei. Ich weiß nicht, ob das Auswirkungen hat, aber wenn ich das richtig sehe, rufst du die INI immer doppelt auf (Einmal am Anfang und dann jedesmal in deiner Kontrolle).

Ich würde vielleicht den Aufbau mal so machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm2.BitBtnSaveSettings(Sender: TObject);
Var Pfad: String; Ini: TIniFile;
begin
Pfad:=ExtractFilePath(ParamStr(0));
Try
Ini:=TIniFile.Create(Pfad+'einstellungen.ini');
If Form2.CheckBox1.Checked=True
Then Ini.WriteInteger('einstellungen''LoadNotice'1)
Else Ini.WriteInteger('einstellungen''LoadNotice'0);
If Form2.CheckBox2.Checked=True
Then Begin
        Ini.WriteInteger('einstellungen''WindowHeight', Form1.Height);
        Ini.WriteInteger('einstellungen''WindowWidth', Form1.Width);
        Ini.WriteInteger('einstellungen''ActiveWindowSize'1);
        End
Else Begin
       Ini.WriteInteger('einstellungen''WindowHeight'605);
       Ini.WriteInteger('einstellungen''WindowWidth'863);
       Ini.WriteInteger('einstellungen''ActivateWindowSize'0);
       End;
Finally
Ini.Free;
End;
Form2.Close;


Ein wenig übersichtlicher. :-) Und wie gesagt, prüfe mal den doppelten Aufruf..

_________________
Hasta La Victoria Siempre
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Mi 27.08.03 14:02 
Also, dies Problem ist für mich echt unlogisch! Ich habs auf einen anderen Weg lösen können.
:shock:
Ich hatte ja die Funktion zum speichern in Form2. Kopiere ich genau die selbe Funktion mit n paar Änderungen in Form1 auf meinem Beenden Button. Dieser war ein BitBtn Button (genau wie in Form2, ), nur das es auf form1 nicht funzte. :eyecrazy:

Durch n bissl ausprobieren und so, bin ich dann soweit gewesen, die BitBtn Buttons rauszunehmen und normale zu verwenden. Und siehe da, aufeinmal führt er die Funktion auch von Form1 aus.


:bawling: Muss ich das verstehen?? Versteht ihr das?? :bawling:

_________________
Gruß,
Akut - Programming