Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Combobox Einstellungen Speichern

  Alt 20. Okt 2004, 19:06
Hey alle da drausen!

Ich bin auch neu hier, aber ich programmiere schon etwas länger mit
Delphi! Delphi ist einfach sau geil.*g*

Ich hatte mal das gleiche Problem und ich hoffe, dass ich helfen kann.

Ich weiß leider nicht genau was du haben willst aber ich glaub ich habe eine
Lösung.

Es gibt die Möglichkeit, den Text der ComboBox1 zu speichern bzw. zu laden.
Ist ganz einfach: Ich erklär mal ganz kurz:

einal für das Speichern:

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject);
var inidat : TInifile;
begin
      IniDat := TIniFile.Create('.\Farbeneinstellungen.Ini');
      with inidat do begin
           WriteString('Einstellungen','Farbe',ComboBox1.Text);
      end;

end;

und natürlich zum Laden:


Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var inidat : TInifile;
begin
      IniDat := TIniFile.Create('.\Farbeneinstellungen.Ini');
      with inidat do begin
           ComboBox1.Text := ReadString('Einstellungen','Farbe',ComboBox1.Text);
      end;

end;
Jetzt brauchst du nur noch eine Prozedur zum Auswerten.

Es gibt auch noch eine andere, wahrscheinlich bessere Lösung:

Durch Ordinaltypen!!!

Ich stelle einfach mal den kompletten Quelltext rein.
Den hab ich extra schnell entworfen. Extra für dich!

Delphi-Quellcode:
unit Unit1;

interface

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

type TFarben = (TF_blau, TF_gelb, TF_rot, TF_gruen);

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Farbe : TFarben;
    procedure setzeFarbe;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.setzeFarbe;
begin
     case Farbe of
     TF_blau: Memo1.Color := clblue;
     TF_gelb: Memo1.Color := clYellow;
     TF_gruen: Memo1.Color := cllime;
     TF_rot: Memo1.Color := clred;
     end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var inidat : TInifile;
begin
     inidat := TInifile.Create('.\Test.Ini');
     with inidat do begin
          WriteInteger('SpTest','SpTest', Ord(Farbe));
     end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var inidat : TInifile;
var auswahl : integer;
begin
     inidat := TInifile.Create('.\Test.Ini');
     with inidat do begin
     auswahl := ReadInteger('SpTest','SpTest', Ord(Farbe));
     end;
     case auswahl of
     0: begin Farbe := TF_blau;
                 ComboBox1.Text := 'BLAU';
                 end;
     1: begin Farbe := TF_gelb;
                 ComboBox1.Text := 'GELB';
                 end;
     2: begin Farbe := TF_rot;
                 ComboBox1.Text := 'ROT';
                 end;
     3: begin Farbe := TF_gruen;
                 ComboBox1.Text := 'GRÜN';
                 end;
     end;
     setzeFarbe;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
     if ComboBox1.Text = 'BLAUthen Farbe := TF_blau;
     if ComboBox1.Text = 'GELBthen Farbe := TF_gelb;
     if ComboBox1.Text = 'ROTthen Farbe := TF_rot;
     if ComboBox1.Text = 'GRÜNthen Farbe := TF_gruen;
     setzeFarbe;
end;

end.
Hier habe ich einfach einen Typ dekleriert.
Nicht vergessen: Die Ordinaltypen fangen immer bei 0 an!

Ich kann das jetzt leider nicht ganz erklären. Wenn jemand
Hilfe braucht, soll er mir einfach eine E-Mail schreiben : ich@patti-k.de!
Viel Spaß!
Ich hoffe ich habe keine Fehler gemacht! Schreibt mir halt einfach, ob es hinhaut
oder nicht.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat