![]() |
Einstellungen speichern/laden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute ich möchte gerne die getätigten Einstellungen welche ich in meinen Programm gemacht habe speichern und beim Laden wieder ausführen...
Ich hänge mein Programm mal an... Es geht hauptsächlich darum: 1. Welcher HotKey zugewiesen wurde (JvHotKey1, + Button1 zum setzten) 2. Welches Tapi gerät ausgewählt wurde (groupbox1) 3. Ob Tapi Aktiviert wurde.. (checkbox1) Wir mach ich das ich hab mir schon bei dsdt.de die Ini Sache angeschaut... |
Re: Einstellungen speichern/laden
dann benutz doch die inis :)
|
Re: Einstellungen speichern/laden
|
Re: Einstellungen speichern/laden
Die Ini-Sache ist zwar ganz schön aber für einen Anfänger wie mich sehr kompliziert...
|
Re: Einstellungen speichern/laden
Delphi-Quellcode:
uses ...,inifiles;
var ini : Tinifile; procedure .... begin ini := Tinifile.Create(ExtractFilePath(Application.Exename)+'Einstellungen\Einstellungen.dat'); ini.WriteString('tapi','aktiviert','Ja/nein'); ini.Free; end; procedure .... var aha :string; begin ini := Tinifile.Create(ExtractFilePath(Application.Exename)+'Einstellungen\Einstellungen.dat'); aha := ini.ReadString('tapi','aktiviert',''); ini.Free; if aha = 'Ja' then aktiviert:=true; end; |
Re: Einstellungen speichern/laden
So hier? Für die Checkbox?..
Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var s: string; begin if form1.CheckBox1.Checked = true then begin s:= 'yes'; end else begin s:= 'false'; end; ini := Tinifile.Create(ExtractFilePath(Application.Exename)+'Einstellungen.dat'); ini.WriteString('tapi','aktiviert',s); ini.Free; end; |
Re: Einstellungen speichern/laden
Das geht auch einfacher :wink: :
Delphi-Quellcode:
Am besten packst Du das ganze in einen try-finally-Block, damit die Ini auf jeden Fall freigegeben wird, auch wenn beim Schreiben in die Datei ein Fehler auftritt.
procedure SaveToIni;
var Ini: TIniFile; begin Ini := TIniFile.Create(ExtractFilePath(Application.Exename)+'Einstellungen.dat'); try Ini.WriteBool('TAPI', 'Aktiviert', CheckBoxXYZ.Checked); finally Ini.Free; end; end; MfG |
Re: Einstellungen speichern/laden
Warum muss der SettingsDialog unbedingt wissen, wie er seine Zustände persistent machen kann? Besser ist, man kapselt die Einstellungen und greift über properties auf sie zu. Ein wenig Code - nur um das Prinzip zu verdeutlichen:
Delphi-Quellcode:
Freundliche Grüße vom marabu
unit Config;
interface uses Classes, IniFiles; resourcestring GENERAL_SECTION = 'General'; SHORTCUT_KEY = 'ShortCut'; DEVICEINDEX_KEY = 'DeviceIndex'; ACTIVE_KEY = 'Active'; type TSettings = class(TMemIniFile) private function GetShortCut: TShortCut; procedure SetShortCut(ShortCut: TShortCut); function GetDeviceIndex: Integer; procedure SetDeviceIndex(DeviceIndex: Integer); function GetActive: Boolean; procedure SetActive(Active: Boolean); public property ShortCut: TShortCut read GetShortCut write SetShortCut; property DeviceIndex: Integer read GetDeviceIndex write SetDeviceIndex; property Active: Boolean read GetActive write SetActive; end; implementation uses Menus; function TSettings.GetShortCut: TShortCut; begin Result := TextToShortCut(ReadString(GENERAL_SECTION, SHORTCUT_KEY, '')); end; procedure TSettings.SetShortCut(ShortCut: TShortCut); begin WriteString(GENERAL_SECTION, SHORTCUT_KEY, ShortCutToText(ShortCut)); end; function TSettings.GetDeviceIndex: Integer; begin Result := ReadInteger(GENERAL_SECTION, DEVICEINDEX_KEY, -1); end; procedure TSettings.SetDeviceIndex(DeviceIndex: Integer); begin WriteInteger(GENERAL_SECTION, DEVICEINDEX_KEY, DeviceIndex); end; function TSettings.GetActive: Boolean; begin Result := ReadBool(GENERAL_SECTION, ACTIVE_KEY, false); end; procedure TSettings.SetActive(Active: Boolean); begin WriteBool(GENERAL_SECTION, ACTIVE_KEY, Active); end; end. |
Re: Einstellungen speichern/laden
Erstma vielen Dank f+r eure Ideen aber wie ich schon gesagt habe ich bin noch Anfänger und es muss nicht allzu kompliziert sein...
:roll: :oops: |
Re: Einstellungen speichern/laden
Wieso Speicherst Du die Einstellungen nicht in der Registry, ini-Files sind IMHO so was von lästig für die Anwender.
grz zer00 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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