Delphi-PRAXiS
Seite 3 von 4     123 4      

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 ComboBox per Hand füllen (https://www.delphipraxis.net/115030-combobox-per-hand-fuellen.html)

lore 6. Jun 2008 11:24

Re: ComboBox per Hand füllen
 
nee, ich bin gerade am Fummel, denn das geht hier ja eigentlich um eine TStrinliste.. habe schon weiter Hilfe eingespannt und poste nachher mal das Ergebnis (oder die erneute Frage :roll: wenn ichs nicht raff).

Das ist der Momentane stand:
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var ini : TiniFile;
       I: integer;
begin
  try
   ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
   Ini.ReadSectionValues('TimeZone',cbox1.Items);
  finally
   ini.Free;
  end;
end;
Ich muss aber leider gleich los und kann dann wohl erst später weitermachen :cry:

Bis später,
Karsten

taaktaak 6. Jun 2008 11:29

Re: ComboBox per Hand füllen
 
Ok, aber ich meinte den Code zum Speichern der INI-Werte! Was mir auch sehr ungüstig erscheint: Warum soll die INI im OnKeyDown der Combobox gespeichert werden?? Das ist wohl kaum das richtige Event...

lore 6. Jun 2008 12:00

Re: ComboBox per Hand füllen
 
Weil mir das Event vorgeschlagen wurde (und erstmal funktioniert) und "onChange" glaube ich auch nicht das richtige Event ist, oder?

DeddyH 6. Jun 2008 12:05

Re: ComboBox per Hand füllen
 
Von wem wurde Dir das vorgeschlagen? Gestern hattest Du noch gefragt, ob FormCreate und FormDestroy die passenden Events seien. Diesen Post hast Du ja mittlerweile editiert.

lore 6. Jun 2008 12:23

Re: ComboBox per Hand füllen
 
Hi, unter FormCreate lief es irgendwie nicht, und auf dem Event OnDestroy würde nur der letzte Eintrag weggeschrieben, aber nicht alle. Deswegen entschied ich mich das so zu machen :wink: wollte keinem zu Nahe treten.

DeddyH 6. Jun 2008 12:31

Re: ComboBox per Hand füllen
 
Versteh ich jetzt nicht. Versuch doch mal, ob die Schleife zum Speichern im OnClose funktioniert (sollte sie eigentlich).

NickelM 6. Jun 2008 12:37

Re: ComboBox per Hand füllen
 
So hab ichs in ne anwendung von mir gemacht. Ich vieleicht Verbesserungs- und Vereinfaschungsfähig.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Zeilen : Integer;
begin
Inifile.WriteInteger('Signatur','SignaturZeilen',Memo1.Lines.Count);
for Zeilen := 0 to Memo1.Lines.Count - 1 do
Inifile.WriteString('Signatur','Signatur' + IntToStr(Zeilen),Memo1.Lines[Zeilen]);
end;

procedure TForm1.FormCreate(Sender: TObject);
var Zeilen : Integer;
    Zeilen1 : Integer;
begin
Zeilen1 := Inifile.ReadInteger('Signatur','SignaturZeilen',0);
Memo1.clear;
for Zeilen := 0 to Zeilen1 - 1 do
Memo1.Lines.Add(Inifile.ReadString('Signatur','Signatur' + IntToStr(Zeilen),''));
end;

end.
oder wenn du die Anwendung beendest werden alle Forms destroyed.

Deshalb OnDestroy :mrgreen:

lore 6. Jun 2008 13:01

Re: ComboBox per Hand füllen
 
Hi DeedyH

ich hab's gemacht und es funktioniert..brat mir doch einer einen Storch...(ach lieber nicht, der ist gerade bei uns unterwegs :-) ) Komische Seiteneffekte? Habe Delphi2007pro auf Vista Busi. unter VMWare 6.x laufen..

Delphi-Quellcode:
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var ini: Tinifile;
     i : integer;
begin
     ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
     try
      for I := 0 to cbox1.Items.Count - 1 do
       ini.WriteString('TimeZone',intToStr(i),cbox1.Items[i]);
      finally
       ini.Free;
      end;
end;
Frage noch: warum kommt das "ini:=TIniFile.create(~" vor das "try"? Ich hatte es bisher immer mit ins try reingenommen.

NickelM 6. Jun 2008 13:10

Re: ComboBox per Hand füllen
 
Damit es keine Exceptions wegen Datei nicht gefunden oder so gibt und dan nicht die Variable im speicher bleibt :mrgreen:

DeddyH 6. Jun 2008 13:15

Re: ComboBox per Hand füllen
 
Der finally-Block wird auf jeden Fall angesprungen. Nimmst Du nun das Erzeugen der Ini mit in den try-Block und das geht schief, wird anschließend versucht, ein Objekt freizugeben, das gar nicht existiert -> Folgefehler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 3 von 4     123 4      

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