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:
Ich muss aber leider gleich los und kann dann wohl erst später weitermachen :cry:
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; Bis später, Karsten |
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...
|
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?
|
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.
|
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.
|
Re: ComboBox per Hand füllen
Versteh ich jetzt nicht. Versuch doch mal, ob die Schleife zum Speichern im OnClose funktioniert (sollte sie eigentlich).
|
Re: ComboBox per Hand füllen
So hab ichs in ne anwendung von mir gemacht. Ich vieleicht Verbesserungs- und Vereinfaschungsfähig.
Delphi-Quellcode:
oder wenn du die Anwendung beendest werden alle Forms destroyed.
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. Deshalb OnDestroy :mrgreen: |
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:
Frage noch: warum kommt das "ini:=TIniFile.create(~" vor das "try"? Ich hatte es bisher immer mit ins try reingenommen.
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; |
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:
|
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. |
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