DBComboBox Sonradan Veri Ekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
dkadir
Üye
Mesajlar: 40
Kayıt: 04 Oca 2014 06:44

DBComboBox Sonradan Veri Ekleme

Mesaj gönderen dkadir »

Selamun Aleyküm Sorum basit ama ben bilmiyorum.
DBComboBox'a programı yazarken items ekleyip kullanabiliyorum. Ancak tam olarak yapmak istediğim Ankara ,Kayseri,Yozgat elemanları kayıtlı iken kayıtlı olmayan bir il mesela İzmir yazdığında böyle bir kayıt yok elemek istermisiniz diyip kayıtlı illerin artık Ankara, Kayseri , Yozgat ,İzmir olması.
Ve her harfe bastığımda filtreleme yapması ilk harfleri girdiğimde gerisini tamamlaması lazım yardımlarınız için teşekkürler
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBComboBox Sonradan Veri Ekleme

Mesaj gönderen ertank »

A.S.,

Bildiğim kadarı ile Delphi ile gelen standard DBComboBox veya DBLookupComboBox istediğiniz gibi harfe basınca o harf(ler) ile başlayan seçenekleri filtrelenmiş şekilde göstermez. Bunun için ücretli Dev Express gibi bileşenleri kullanabilirsiniz. Bu bileşenlerde istediğiniz özellik parametre ile açılıp kapatılabilir olup normalde açık olur.

Sorunuzu sorarken kullandığınız Delphi sürümünü bildirmemişsiniz. Aşağıdaki kod örnekleri 2009 ve sonrası sürümlerde kullanılabilecek şekildedir.

ComboBox içinde olmayan bir kaydı bulmak için aşağıdaki gibi bir kod kullanabilirsiniz.

Kod: Tümünü seç

function IsInList(const Value: string; const List: TStrings; const CaseSensitive: Boolean = False): Boolean;
var
  i: Integer;
begin
  for i := 0 to Pred(List.Count) do
  begin
    if CaseSensitive then
    begin
      if List[i] = Value then Exit(True);
    end
    else
    begin
      if Value.ToUpper() = List[i].ToUpper() then Exit(True);
    end;
  end;
  Result := False;
end;
Yukarıdaki fonksiyonun kullanımı aşağıdaki gibi olacaktır

Kod: Tümünü seç

  if not IsInList(TempString, ComboBox1.Items) then
  begin
    ShowMessage('Girilen bilgi listede mevcut değil');
  end;
Liste içinde olmadığında eklenmesi uygulama kapatıp açıldığında yine bu eklenmiş bilginin listede olması anlamına gelir şeklinde yorumluyorum sorununuzu. Bu durumda aklıma gelen en basit yöntemlerden bir tanesi INI dosyası kullanmak. Ini dosyası içine kaç adet değer sakladığınızı ve bu değerleri kaydeder iseniz uygulama tekrar açıldığı zaman yine aynı INI dosyası içinden okuyabilirsiniz.

Yukarıdaki fonksiyon ve INI dosyası kullanım örneğini ekteki uygulama içinde bulabilirsiniz. Kullandığınız Database bağlantı bileşenini bilinmediği için örnek uygulama TComboBox kullanmaktadır. Ancak TDBComboBox kullanımı tamamen aynıdır.
Dosya ekleri
ComboBox1.rar
(1.51 KiB) 55 kere indirildi
dkadir
Üye
Mesajlar: 40
Kayıt: 04 Oca 2014 06:44

Re: DBComboBox Sonradan Veri Ekleme

Mesaj gönderen dkadir »

Yardımınız için teşekkür ediyorum Delphi Beriln 10.1 Kullanıyorum ayrıca Berlin 10.1 de raporlama nasıl yaparım bilginiz varmı
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBComboBox Sonradan Veri Ekleme

Mesaj gönderen ertank »

Raporlama için birçok araç mevcut.

http://www.quickreport.co.uk/
http://www.crystalreports.com/ (Delphi ile kullanım açıklaması: http://stackoverflow.com/questions/3780 ... pplication)
https://www.nevrona.com/
https://www.fast-report.com/en/

Delphi eskiden Quick Report ile birlikte gelirdi. Son sürümlerinde artık FastReport bulunuyor. Sizde FastReport kullanabilirsiniz.
Cevapla