Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.628 Beiträge
 
Delphi 12 Athens
 
#2

Re: speichern von daten aus edits in abhängigkeit von einer

  Alt 22. Jan 2008, 16:13
Zitat von Bx3:
lasst euch mitn beantworten zeit, bin erst gegen 20:30 wieder da^^
Da fällt mir (wenn es einfach sein soll) eine Möglichkeit mit einer IniFile ein. Poste ich aber erst später, da ich noch auf Arbeit bin (hab ja noch Zeit bis 20:29 ).

[edit] Hier mal die angesprochene Möglichkeit mittels TMemIniFile:
Delphi-Quellcode:
unit IniDemo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IniFiles;

type
  TForm1 = class(TForm)
    cbbOption: TComboBox;
    edt1: TEdit;
    edt2: TEdit;
    edt3: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure cbbOptionChange(Sender: TObject);
    procedure cbbOptionSelect(Sender: TObject);
    procedure edt1Change(Sender: TObject);
  private
    { Private-Deklarationen }
    TheIni: TMemIniFile;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  //Ich bin gerade zu faul, daher ins Programmverzeichnis
  //(soll man aber eigentlich nicht tun)
  TheIni := TMemIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));
  for i := 0 to Pred(ComponentCount) do
    if Components[i] is TEdit then
      TEdit(Components[i]).Text := TheIni.ReadString(cbbOption.Items[cbbOption.ItemIndex],
                                   TEdit(Components[i]).Name,
                                   'Noch nix drin');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  //Änderungen auf HD schreiben
  TheIni.UpdateFile;
  TheIni.Free;
end;

procedure TForm1.cbbOptionChange(Sender: TObject);
begin
  //da nicht klar ist, welches Ereignis ausgelöst wird (vom Style der ComboBox
  //abhängig), einfach in beiden Ereignissen deklarieren
  cbbOptionSelect(Sender);
end;

procedure TForm1.cbbOptionSelect(Sender: TObject);
var i: Integer;
begin
  //Ini-Einträge zum gewählten Eintrag auslesen und anzeigen
  for i := 0 to Pred(ComponentCount) do
    if Components[i] is TEdit then
      TEdit(Components[i]).Text := TheIni.ReadString(cbbOption.Items[cbbOption.ItemIndex],
                                   TEdit(Components[i]).Name,
                                   'Noch nix drin');
end;

procedure TForm1.edt1Change(Sender: TObject);
begin
  //Änderungen in der Ini festhalten
  TheIni.WriteString(cbbOption.Items[cbbOption.ItemIndex],
                     TEdit(Sender).Name,
                     TEdit(Sender).Text);
end;

end.
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat