ComboBox1 İçeriğini Kaydetmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

ComboBox1 İçeriğini Kaydetmek

Mesaj gönderen ozcank »

Arkadaşlar Merhaba; ComboBox1 içerisinde 4 Adet alanım var;

RAPOR_KODU5
ACIK1
ACIK2
ACIK3

ComboBox1 de hangi alanı seçersek programa her girdiğinde seçmiş olduğu alanın gelmesini nasıl sağlarım?


Mesela ;

ACIK2 seçildi her programa girdiğinde ACIK2 gelecek.
veya
RAPOR_KODU5 seçti programdan çıkıp girdiğinde RAPOR_KODU5 gelecek.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: ComboBox1 İçeriğini Kaydetmek

Mesaj gönderen mkysoft »

Uygulamadan çıkarken son seçimi bir ini dosyasına ya da windowsun register'sine kaydedebilirsiniz. Uygulama açılırken de bu değerleri okuyup ilgili nesneleri atayabilirsiniz. Bunu dinamik bir şekilde yapabilirsiniz. Örneğin nesnelerin tag özelliğini kullanıp, tag değeri 1 olanların hepsinin saklanmasını veri yüklemesini sağlamak mümkün.

Kod: Tümünü seç

procedure TMyForm.FormShow(Sender: TObject);
var
  line: string;
  exfile: TextFile;
  i:integer;
begin
  try
    if FileExists(ExtractFilePath(Application.ExeName)+'Ayarlar') then
    begin
      AssignFile(exfile,ExtractFilePath(Application.ExeName)+'Ayarlar');
      Reset(exfile);
      for i:=0 to ComponentCount-1 do
      begin
        if Components[i].Tag = 1 then
        begin
          readln(exfile,line);
          TEdit(Components[i]).Text := line;
        end
        else if Components[i].Tag = 2 then
        begin
          Readln(exfile,line);
          TRadioGroup(Components[i]).ItemIndex := strtoint(line);
        end
        else if Components[i].Tag = 3 then
        begin
          Readln(exfile,line);
          TCheckBox(Components[i]).Checked := StrToBool(line);
        end;
      end;
      CloseFile(exfile);
    end;
  except
    CloseFile(exfile);
    DeleteFile('Ayarlar');
  end;
end;

procedure TMyForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  exfile: TextFile;
  i:integer;
begin
  if (MessageDlg('Parametreleri kaydetmek istiyor musunuz?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  begin
    AssignFile(exfile,ExtractFilePath(Application.ExeName)+'Ayarlar');
    Rewrite(exfile);
    for i:=0 to ComponentCount-1 do
    begin
      if Components[i].Tag = 1 then
        Writeln(exfile,TEdit(Components[i]).Text)
      else if Components[i].Tag = 2 then
        Writeln(exfile,inttostr(TRadioGroup(Components[i]).ItemIndex))
      else if Components[i].Tag = 3 then
        Writeln(exfile,BoolToStr(TCheckBox(Components[i]).Checked,true));
    end;
    CloseFile(exfile);
  end;
end;
Cevapla