![]() |
Werte in .ini speichern?
Hallo,
ich möchte wie folgt Werte in eine .ini Speichern:
Delphi-Quellcode:
Die Fehlermeldungen scheinen logisch zu sein, aber
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var Ini: TIniFile; begin Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini'); try Ini.WriteInteger('Default', 'Volume', TrackBar1.Position); // hier wird kein Fehler verursacht Ini.WriteInteger('Default', 'Proxy', CheckBox1.Checked); // hier ein Fehler - Inkompatible Typen: Integer und Boolen Ini.WriteInteger('Default', 'ProxyIP', Edit1.Text); // und hier in Fehler - Inkompatible Typen: Integer und Boolen finally Ini.Free; end; Action:=caFree; end; ![]() |
Re: Werte in .ini speichern?
schau mal in deine OH, da gibt es noch was anderes außer WriteInteger :zwinker:
ist auch im verlinkten Thread zu sehn ... |
Re: Werte in .ini speichern?
Hallo,
zum Speichern von Strings ist ![]() ![]() Grüße, Matze Edit: Och Mönsch. Himi war nur 'ne zehntel Sekunde schneller. *g* |
Re: Werte in .ini speichern?
Boah..... war ich blind oder was??? :mrgreen: Hab vor dem Posten noch extra alles schön durchgeguckt und doch den Unterschied nicht gesehen. Pardo... :lol:
|
Re: Werte in .ini speichern?
Kann mir jemand sagen wie ich diese drei Werte auslesen muss?
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
ini : TIniFile; begin ini:=TIniFile.Create('config.ini'); try TrackBar1.Position := Ini.ReadInteger('Default', 'Volume', ????); cbDirectConnection.Checked := Ini.ReadBool('Default', 'Proxy', ????); ed_ProxyServer.Text := Ini.ReadString('Default', 'ProxyIP', ????); finally ini.free; end; end; |
Re: Werte in .ini speichern?
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var // Wo war das? ini : TIniFile; begin ini:=TIniFile.Create('config.ini'); try TrackBar1.Position := Ini.ReadInteger('Default', 'Volume', -1); // Defaultwert, falss der Eintrag nicht vorhanden cbDirectConnection.Checked := Ini.ReadBool('Default', 'Proxy', 'none'); // -"- ed_ProxyServer.Text := Ini.ReadString('Default', 'ProxyIP', '0.0.0.0'); // -"- finally ini.free; end; end; |
Re: Werte in .ini speichern?
Hm.. irgendwie funktionierte das nicht... :gruebel:
aber hab die Zeile
Delphi-Quellcode:
durch diese
Ini:=TIniFile.Create('config.ini');
Delphi-Quellcode:
ersetzt und auf ein mal geht's :thumb:
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');
|
Re: Werte in .ini speichern?
Hallo,
nur der Richtigkeit halber, das kann nicht gehen: Zitat:
wie im Beispiel gezeigt ein String. |
Re: Werte in .ini speichern?
Das nennt man selbstverarschung - wird das zusammengeschrieben :gruebel:
|
Re: Werte in .ini speichern?
Ja das mit dem
Delphi-Quellcode:
hab ich kopiert und schon längst geändert. Aber sagt ihr zum Post #7? :gruebel:
cbDirectConnection.Checked := Ini.ReadBool('Default', 'Proxy', 'none'); // -"-
|
Re: Werte in .ini speichern?
Naja, ohne Pfadangabe speichert Windows die Datei im aktuellen Arbeitsverzeichnis und das muss nicht das Programmvereichnis sein.
|
Re: Werte in .ini speichern?
Ja und wieso werden die Werte mit diesem Code nicht geladen?
Delphi-Quellcode:
Ini:=TIniFile.Create('config.ini');
|
Re: Werte in .ini speichern?
Vielleicht hat sich der Arbeitspfad geändert, wer weiß.
Nimm generell absolute Pfade, dann passiert sowas nicht. |
Re: Werte in .ini speichern?
Weil das aktuelle Verzeichnis in dem Moment ein anderes sein kann als beim Speichern. Und dann wird im Zweifelsfalle einfach die Datei nicht gefunden und duster is'.
|
Re: Werte in .ini speichern?
Soll ich dann den Code
Delphi-Quellcode:
beim Schreiben der .ini und Lesen benutzen, oder nur beim Lesen?
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');
|
Re: Werte in .ini speichern?
Bei beidem natürlcih. :roll:
|
Re: Werte in .ini speichern?
Bei Ini.Create wird nicht wie sonst üblich das aktuelle verzeichnis genommen, sondern es wird standardmäßig ins windows-verzeichnis gespeichert.
|
Re: Werte in .ini speichern?
solche "Kleingikeiten" würde ich nur noch so speichern :-) *grins*
Delphi-Quellcode:
unit Unit9;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, uBase_XMLSerializer; type TForm9 = class(TForm) btn1: TButton; tb1: TTrackBar; chk1: TCheckBox; edt1: TEdit; procedure btn1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; type TSaveValues = class(TPersistent) private FPosition : Integer; FProxyIP: string; FProxyChecked: Boolean; published property Position : Integer read FPosition write FPosition; property Checked : Boolean read FProxyChecked write FProxyChecked; property Text : string read FProxyIP write FProxyIP; end; var Form9: TForm9; implementation {$R *.dfm} procedure TForm9.btn1Click(Sender: TObject); var value : TSaveValues; begin value := TSaveValues.Create; value.CopyPupProperiesFrom(tb1); value.CopyPupProperiesFrom(chk1); value.CopyPupProperiesFrom(edt1); value.SaveToXML('Settings.xml'); value.Free; end; end. ![]() . |
Re: Werte in .ini speichern?
Delphi-Quellcode:
//==============================================================================
// oder so noch einfacher die kompletten Komponenten .. ohne TSaveValues :-) //============================================================================== procedure TForm9.btn2Click(Sender: TObject); begin tb1.SaveToXMLContainer('trackbar'); chk1.SaveToXMLContainer('Checkbox'); edt1.SaveToXMLContainer('Edit'); end; |
Re: Werte in .ini speichern?
Und wieso ist dein Vorschlag besser als .ini?
|
Re: Werte in .ini speichern?
Zitat:
Schreibarbeit gespart = Zeitersparnis .. schneller flexibler geht für alles |
Re: Werte in .ini speichern?
Hm...ok..hört sich interessant an, muss ich mal gucken, vllt werd das nutzen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr. |
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-2025 by Thomas Breitkreuz