DBLookupComboBox1 Eşitlemek !!

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

DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Arkadaşlar Merhaba;
Programa ilk giriş de Tablo daki şirketleri bulduruyorum ve seçerek giriş yapıyorum. Yapmak istediğim seçtiğim şirketi default getirtmek
PARAM Tablosunda şirket alanını EPARAM_2 olarak tutuyorum bu şirketi DBlookupComboBox1 buldurup nasıl eşitleyebilirim ki sürekli şirket seçmek zorunda kalmayayım?

Kod: Tümünü seç

PARAM.Open;
     PARAM.Locate('EPARAM_2');
Kullanıcı avatarı
KoPilot
Üye
Mesajlar: 185
Kayıt: 05 Eki 2007 08:02

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen KoPilot »

ozcank yazdı: 20 Oca 2019 10:30 Arkadaşlar Merhaba;
Programa ilk giriş de Tablo daki şirketleri bulduruyorum ve seçerek giriş yapıyorum. Yapmak istediğim seçtiğim şirketi default getirtmek
PARAM Tablosunda şirket alanını EPARAM_2 olarak tutuyorum bu şirketi DBlookupComboBox1 buldurup nasıl eşitleyebilirim ki sürekli şirket seçmek zorunda kalmayayım?

Kod: Tümünü seç

PARAM.Open;
     PARAM.Locate('EPARAM_2');
Default şirketin id sini .ini dosyasında sakla ve açılışta oku.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

KoPilot kardeşim birşey soracam DBLookupComboBox1 de şirket bilgilerini listeliyor ve ilgili şirketi seçtiğim zaman tamam buttonuna basıyorum bu seçmiş olduğum şirket ismini kaydedebileceğim bir kod örneği var mı elinde ? Gönderebilir misin?
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen yusuf simsek »

Standart INIFILE işlemleri,

Giriş Yap butonu tıkladığında seçili olan şifkeri INIFILE dosyasına kaydedeceksin,

Giriş ekranı açılışında DbLookupCombobox doldurduktan sonra INIFILE den kaydettiğin şirket bilgisini okuyup DbLookupCombobox.Items ten seçeceksin...

Bunu anlatmak yerine kodu paylaşmak çok daha hızlı ve pratik ( kopyala - yapoıştır ) olurdu, ama sana iyilikten çok kötülük yapmış olurduk...

Bahaneyle INIFILE kullanmayı pekiştirmiş olursun

İyi çalışmalar
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Merhaba ; Yusuf Kardeşim ben şöyle bir şey yaptım ,
SaveToFile ile c:\SIRKET diye bir dosyaya şirketin adını yazdırdım sonra LoadFromFile ile de okuyorum ShowMessage(DATA) ile baktığım da şirket ismide geliyor ama ne yaptıysam bir türlü DBLookupComboBox1.Text eşitleyemedim bur da yardımcı olur musun ?

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
Var
DATA:String;
SirketGetirme : TStringList;
begin
SirketGetirme := TStringList.Create;
SirketGetirme.LoadFromFile('C:\SIRKET.DLL');
DATA:= SirketGetirme.strings[0];
   memo1.Lines.LoadFromFile('C:\dataconnection.txt');
   memo2.Lines.LoadFromFile('C:\\userconnection.txt');
   ADOConnection1.ConnectionString := memo1.Text;
   ADOConnection2.ConnectionString := memo2.Text;
   ADOConnection1.Connected := true;
   ADOConnection2.Connected := true;
   Sirket.Active := True;
   DATA:=DBLookupComboBox1.Text;
   ADOConnection1.Connected:=False;
   ADOConnection1.DefaultDatabase:=DATA;
   ADOConnection1.Connected:=True;
   DATA:=DBLookupComboBox1.Text;
   DBLookupComboBox1.ListFieldIndex:=0;
   RegKontrol;  //Lisans
 //  Button1.
SirketGetirme.Free;
   end;
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen yusuf simsek »

@ozcank Eline Sağlık,

Kodunda gördüğüm herhangi bir aksaklık yok, DBLookupCombobox nesnesinin dataset ve field bağlantısı yoksa bununda ilgili bir aksaklık olabilir... field bağlantısı yoksa text değerini okuyamayabilir, db nesnelerini çok kullanmadığımdan tam emin değilim...

DBLookupCombobox yerine standart Combobox kullanırsan sorun yaşamayacağını düşünüyorum...

Kod: Tümünü seç

procedure TFrm_Giris.FormShow(Sender: TObject);
var
  reg : TRegIniFile;

  iRegHatirla : integer;

  sRegUser,
  sRegPass,
  sRegSirket : string;

begin

  reg := TRegIniFile.Create;
  reg.RootKey:=HKEY_CURRENT_USER;
  reg.OpenKey( cRegKey, True);

  iRegHatirla := reg.ReadInteger('Ayarlar','Hatirla', -1);

  chkHatirla.Checked := iRegHatirla <> 0;

  sRegSirket  := reg.ReadString('Ayarlar','SonSirket','');
  sRegUser    := reg.ReadString('Ayarlar','user','');
  sRegPass    := reg.ReadString('Ayarlar','pass','');

  reg.CloseKey;
  reg.Free;

  bSirketDegistir := False;
  bGiris := False;

  with QrySabit do
    begin
      listSirket.Items.Clear;
      cmbSirket.Items.Clear;

      SQL.Text := ' SELECT SirketAdi, SirketAck '+
                  ' FROM Sirket ';
      Open;
      while not Eof do
        begin
          listSirket.Items.Add( FieldByName('SirketAdi').AsString );
          cmbSirket.Items.Add(  FieldByName('SirketAck').AsString );

          Next;
        end;

      if sRegSirket = '' then
          cmbSirket.ItemIndex := 0
      else if iRegHatirla <> 0 then
          cmbSirket.ItemIndex := cmbSirket.Items.IndexOf( sRegSirket );

      if iRegHatirla = 0 then
          begin
              txtKullaniciAdi.Text  := '';
              txtSifre.Text         := '';
          end
      else
          begin
              txtKullaniciAdi.Text := IIf( sRegUser <> '', sRegUser, '' );
              txtSifre.Text        := IIf( sRegPass <> '', sRegPass, ''  );
          end;

      Free;
    end;
end;
ben giriş formu OnShow olayında Şirketleri Combobox.Items kendim dolduruyorum...


Kullanıcı adı, Şifre ve seçmiş olduğu şirket bilgisini de Kullanıcı Bilgilerini Hatırla checkbox işaretli ise Regetid'e yazıyorum... Eskiden inifile dosyasındaydı, sonradan regedit'e kaydetmeyi tercih ettim...

İyi çalışmalar dilerim
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Yusuf Kardeşim; Şunu denedim bir tane Edit1 ekledim ve eşitledim baktım ki buraya da gelmedi şirket bilgisi acaba kaydederken mi hata yapıyorum;


Kaydetme bölümüm;

Kod: Tümünü seç

SirketKayit:= TStringlist.create;
SirketKayit.Add(Edit2.Text);
SirketKayit.SaveToFile('C:\SIRKET.DLL');
Geri çağırma kodlarım;

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
Var
DATA:String;
SirketGetirme : TStringList;
begin
/////////////////////
SirketGetirme := TStringList.Create;
SirketGetirme.LoadFromFile('C:\SIRKET.DLL');
ShowMessage(SirketGetirme.strings[0]);
Edit1.Text:=SirketGetirme.strings[0];
/////////////////////
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen yusuf simsek »

https://dm7blog.wordpress.com/2012/01/0 ... kullanimi/

TStringlist kullanmak yerine Inifile yapısı kullanarak işlem yapmayı deneyebilir misin...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Yusuf Kardeşim ; Emeğine ve yüreğine sağlık yardımların için çok teşekkür ediyorum. Bu şekilde halletim ve bur da paylaşıyorum;

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
Var
SirketGetirme : TStringList;
begin
SirketGetirme := TStringList.Create;
SirketGetirme.LoadFromFile('C:\SIRKET.DLL');
DBLookupComboBox1.KeyValue:=SirketGetirme.strings[0];
SirketGetirme.Free;
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Tekbir sorunum kaldı;
İlgili şirketi getirttim tamam peki Nasıl Click yaptırabilirim çünkü seçim yapmadan bilgiler gelmiyor;
Bu şekilde olmadı :(

Kod: Tümünü seç

procedure TForm1.FormActivate(Sender: TObject);
Var
ilkacilis:integer;
Begin
if ilkacilis<>1 then
Begin
DBLookupComboBox1.OnClick;
ilkacilis:=1;
End;
End;
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen yusuf simsek »

Neden Israrla DbLookupCombobox kullanmak istiyorsunuz?

DB nesneleri ile aram çok iyi değil...

Nacizane Giriş ekranında Şirket Seçim işlemi için DbLookupComboboxdogru bir tercih değil...

Tıklama olayına gelince bağlı olan DataSet nesnesi OnChange olayında yakalayabilirsiniz diye düşünüyorum...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen yusuf simsek »

DBLookupCombobox harici bir nesne kullanmanızı teşvik ederken haddimizi aştıysak özür dileriz... Bir projede bir component değişiklik yapmak çok zordur, bunu çok iyi biliyorum...

Formda kayıt işlemleri için DataSource ile bağlantılı DbEdit, DbCombobox vs.. nesneler ile çalışırken DBLookupCombobox hayat kurtaran bir nesnedir...

Ör: Müşteri Kayıt Ekranında [ Müşteri Tipi ] alanın verisini [ Tanımlar ] Tablosundan kod yazmaya gerek kalmadan çekmek için DBLookupCombobox nesnesi bulunmaz bir nimettir...

Datasource -> Müştreri Kart Tablosu, DataSet -> Müşteri Tip Alanı
MasterSource( ListSoruce) - Tanım Tablosu, ListField -> Tip Adı Alanı

bu şekilde bir tanımlama ile MasterSource bağlı olan Query aktif ettiğinde ItemList otomatik dolacaktır... Seçtiğin Items' de otomatik olarak Müşteri Tip alanına yazacaktır...

Sizin ihtiyacınız ise sadece Çalışacağı şirketi seçtirmek ve ilgili connection bağlantısını seçilen veritabanına göre düzenlemek...

DBLookupCombobox burada size sadece ItemList dolduruyor... Bunun yanında size verdiği zahmete bakarsanız o fayda da devede kulak kalıyor...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen ozcank »

Merhaba; Yusuf Kardeşim çok teşekkür ederim bilgilendirmen için.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: DBLookupComboBox1 Eşitlemek !!

Mesaj gönderen kahraman1285 »

Özcan bey inifile ile çalışsanız daha kolay işinizi halledersiniz diye düşünüyorum.
bi örnek inifile çalışması aşağıdaki gibidir:

Kod: Tümünü seç

uses inifiles;

Kod: Tümünü seç

procedure TfrmAnasayfa.inifileoku;
var
IniGorunum:TIniFile;
begin
 try
   IniGorunum:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.ini');
   Layout_Stil:=IniGorunum.ReadString('Skin','Layout','');
   Menu_Stil  :=IniGorunum.ReadString('Skin','Menu','rs2007') ;
   KurPeryod:=IniGorunum.ReadInteger('Kur','Peryod',0);
   YedeklemeYolu:=Inigorunum.ReadString('Backup','Yol','');

   IniGorunum.Free;
 end;
Kaydetmek için:

Kod: Tümünü seç

   IniGorunum:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\Settings.ini');
   IniGorunum.WriteString('Skin','Layout',cmbLayout.Text);
   IniGorunum.WriteString('Skin','Menu',cmbMenu.Text);
   IniGorunum.Free;
Cevapla