otomatik tamamlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

otomatik tamamlama

Mesaj gönderen sako »

Arkadaşlar EXCEL de daha önceden yazılmış bilgi ilk harfe basınca çıkıyor. Bunu delphide nasıl yapabilirim. Yani editte falan yapılır ama DBGRİD te ilgili alana geldiğimde o alana daha önceden girdiğim bilgi otomatik olarak nasıl getirebilirim veriyi girdiğim satır-sütüna...


kolay gelsin...
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

Sanırım query kullanarak bunu yapabiliriz.
İlgili girişin change olayında yazılmış olan yazıyı bi değişkene atarak
queryden o alanda uyuşan listeyi like parametresi ile aldırırız sonrasında ise giriş yaptığımız satıra bunu yazdırırız.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

Kod: Tümünü seç

PROCEDURE TKAYIT.Edit1Change(Sender: TObject);

VAR
  metin, bulunan: STRING;
  secim: integer;
BEGIN
  IF btus = True THEN
  BEGIN
    btus := false;
    exit;
  END;

  table1.Locate('MERNISNO', edit1.Text, [lopartialkey, locaseinsensitive]);
  metin := edit1.Text;
  bulunan := table1.FieldValues['MERNISNO']; //.asinteger;
  IF secim > 0 THEN
  BEGIN
    edit1.Text := bulunan;
    edit1.SelStart := length(metin);
    edit1.SelLength := secim;

  END;
END;

Kod: Tümünü seç

PROCEDURE TKAYIT.Edit1KeyDown(Sender: TObject; VAR Key: Word;
  Shift: TShiftState);
BEGIN
  IF (key = vk_delete) OR (key = vk_back) THEN
    btus := true
END;
bu kod tam senin istediğin işi yapıyor
En son ALUCARD tarafından 17 Nis 2006 06:23 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
Master_Yoda
Üye
Mesajlar: 35
Kayıt: 13 Ara 2005 12:57

Mesaj gönderen Master_Yoda »

esnek editörler için developer express öneririm. normal dbgrid bu konuda biraz ketum.

ancak isteğin kaynağı önemli . Yani bu gridden uzun bir liste girilirken gereki olabilecek bir talep gibi göründü. bunu ise dataset ile biraz basitleştirebilirsin.
Örneğin afterpost içinde son değerleri saklar ve onnewrecord da bu değerleri defaul olarak doldurursan bir rahatlama sağlayabilirsin.

Ayrıca datasetfieldın settext event'i format, düzenleme, tamamlama , lookup gibi olaylar için ideal bir eventtin field.value:='xxx'; field.asstring:='xxx' gibi atamalarda tetiklenmez sadece field.text:='xx' gibi bir olayda tetiklenir ve data aware componentler (dbedit, dbgrid v.s.) hep field.text e atama yapar. settext eventini yazdı isen gelen text i field'a kendin atarsın bu aşamada da auto complete / look up v.s. yapabilrsin. tabiki exceldeki gibi olmaz ama işe yarar ..
sako
Üye
Mesajlar: 477
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

Ben bu işlemi editte zaten yapabiliyorum.
Ama mesela DBGRİD in column[3] üne bilgi girerken yapmasını istersem nasıl yapcam onu öğrenmek istiyorum.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Cevapla