Thema: Delphi Abhakliste

Einzelnen Beitrag anzeigen

Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Abhakliste

  Alt 10. Jun 2007, 18:33
Also ich habe 2 Procedures zum lesen und schreiben in/aus Inis:
Delphi-Quellcode:
{-----------------------------------------------------------------------------
  Description:  Schreibt in eine INI
  Procedure:    schreibeini
  Arguments:    pfad:string
  Result:      None
  Detailed description:
-----------------------------------------------------------------------------}

procedure schreibeini(pfad:string);
const endung='.ini';
var ini:TInifile;
     i:integer;


    procedure writeValues(comp:Tcomponent);
    var i:integer;
    begin
      with comp do
        for i:=0 to ComponentCount -1 do
          begin
          if Components[i] is TCheckBox then
            ini.WriteBool(comp.Owner.Name+' '+comp.Name+' '+Components[i].ClassName,Components[i].Name,TCheckBox(Components[i]).Checked);
          end;
    end;
begin
  try
    if pfad='then
      pfad:=ExtractFilePath(Application.ExeName)+dateToStr(now)+' '+inttostr(hourof(now))+' Uhr und '+inttostr(minuteof(now))+' Minuten'+endung
    else //macht doppelte endungen weg
      DelDubbleExtension(pfad,endung);

  //hier schreibt er alle Einstellungen in die Ini Datei,
  // egal ob die Datei vorher schon Existiert hat, es wird einfach überschrieben
  //hier in der ersten zeile wird die Ini datei mit create kreiert
    ini:=tinifile.Create(pfad);

    //hier läuft er alle Komponenten von Form1 durch und speichert die Werte
    writeValues(form1);

  except
    showmessage('Es konnte keine Datei erstellt werden!'+chr(13)+
          'Falls Sie das Programm von CD Starten kopieren Sie bitte die *.exe auf ihre Festplatte und starten Sie erneut!');
  end;
  ini.Free;
end;





{-----------------------------------------------------------------------------
  Description:  Liest aus einer INI
  Procedure:    leseini
  Arguments:    pfad:string
  Result:      None
  Detailed description:
-----------------------------------------------------------------------------}

procedure leseini(pfad:string);
var ini:TInifile;
     i:integer;


    procedure readValues(comp:Tcomponent);
    var i:integer;
    begin
      with comp do
        for i:=0 to ComponentCount -1 do
          begin
          if Components[i] is TCheckBox then
            TCheckBox(Components[i]).Checked:=ini.readBool(comp.Owner.Name+' '+comp.Name+' '+Components[i].ClassName,Components[i].Name,TCheckBox(Components[i]).Checked);
          end;
    end;
begin
  ini:=tinifile.Create(pfad);
  try
    if fileexists(pfad) then
      begin
      //hier läuft er alle Komponenten durch und liest die Werte
      readValues(form1);
      end;
  except
    showmessage('Es konnte keine Datei erstellt werden!'+chr(13)+
          'Falls Sie das Programm von CD Starten kopieren Sie bitte die *.exe auf ihre Festplatte und starten Sie erneut!');
  end;
  ini.Free;
end;
So jetzt musst du nur die Procedure aufrufen, einen Pfad angeben und die Sacher ist gegessen.
Im OnShow und im OnClose würde ich die Procedure leseini, bzw. schreibeini ausführen.

Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat