Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einstellungen speichern/laden (https://www.delphipraxis.net/62567-einstellungen-speichern-laden.html)

Knotti2005 6. Feb 2006 16:15


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...

pacman1986 6. Feb 2006 16:17

Re: Einstellungen speichern/laden
 
dann benutz doch die inis :)

Die Muhkuh 6. Feb 2006 16:18

Re: Einstellungen speichern/laden
 
Hi,

Hier im Forum suchendpCollection dpCollectiondpCollection

Knotti2005 6. Feb 2006 16:27

Re: Einstellungen speichern/laden
 
Die Ini-Sache ist zwar ganz schön aber für einen Anfänger wie mich sehr kompliziert...

pacman1986 6. Feb 2006 16:32

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;

Knotti2005 6. Feb 2006 16:46

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;

Thorben77 6. Feb 2006 16:54

Re: Einstellungen speichern/laden
 
Das geht auch einfacher :wink: :
Delphi-Quellcode:
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;
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.

MfG

marabu 6. Feb 2006 17:21

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:
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.
Freundliche Grüße vom marabu

Knotti2005 6. Feb 2006 17:23

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:

zer00 6. Feb 2006 17:27

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.
Seite 1 von 3  1 23      

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