excel tarzı otomatik tamamlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

excel tarzı otomatik tamamlama

Mesaj gönderen huseyinert »

s.a arakadaşlar elimde bi kod var ama tam olarak işimi görmüyor kayıtlı olmayan bir şey yazılsa kayıtta olana konumlanıyor

Kod: Tümünü seç

procedure Tperakende_form.Edit2Change(Sender: TObject);
var
 metin, bulunan: STRING;
  secim: integer;

BEGIN
  IF btus = True THEN
  BEGIN
    btus := false;
    exit;

  END;

  data.stok_kayit.Locate('ADI', edit2.Text, [lopartialkey, locaseinsensitive]);
  metin := edit2.Text;

  edit3.Text:=data.stok_kayitSTOK_KODU.AsString;
  edit4.Text:=data.stok_kayitBARKOD.AsString;
  edit8.Text:='1';
  edit9.Text:=data.stok_kayitBIRIM1.AsString;
  edit10.Text:=data.stok_kayitKDV.AsString;
  edit11.Text:=data.stok_kayitSAT_FIY1.AsString;

  bulunan := data.stok_kayit.FieldValues['ADI']; //.asinteger;
  IF secim > 0 THEN
  BEGIN
    edit2.Text := bulunan;
    edit2.SelStart := length(metin);
    edit2.SelLength := secim;

  END;
 end;

Kod: Tümünü seç

procedure Tperakende_form.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 IF (key = vk_delete) OR (key = vk_back) THEN
    btus := true
end;
btus değişkeni
var
perakende_form: Tperakende_form;
btus:boolean;


IMPLEMENTATION

burda tanımlanıyor


arkadşalar bu kodu daha kullanışlı nasıl yapabiliriz...
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Kod: Tümünü seç

data.stok_kayit.Locate('ADI', edit2.Text, []); 
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

hocam bu şekilde hiç çalışmıyor
hep aynı kaydı buluyor
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Locate bir fonksiyondur. sen kodunu şöyle değiştirirsen daha mantıklı kullanabilirsin.

Kod: Tümünü seç

var bulunduMu : Boolean;

bulunduMu := data.stok_kayit.Locate('ADI', edit2.Text, [])
ek olarak lopartialkey, locaseinsensitive opsiyonlarını bence delphinin helpinden güzelce oku.
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

hocam gönderdiğim kod parçalarına yerleştiripte yazsanız daha anlaşılır olacak...tam olarak uygulayamıuorum...
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Kullanıcı avatarı
huseyinert
Üye
Mesajlar: 233
Kayıt: 19 Nis 2005 06:49
Konum: Bartın

Mesaj gönderen huseyinert »

arkadaşlar kodu buldum hatasızı çalışıyor

Kod: Tümünü seç

procedure Tperakende_form.Edit20KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  VAR
theText : string;
p : integer;
begin
With TEdit(Sender) do
case key of
8, 46, 37..40, 112..123: ; // backspace, f keys
13: SelStart := Length(Text);
else
begin
P := SelStart;
TheText := copy(Text, 0, p);
If DATA.stok_kayit.Locate('ADI', THETEXT, [loPartialKey,locaseinsensitive]) then
begin // veritabanında pozisyon aldığında...
Text := DATA.stok_kayit.FieldByName('ADI').AsString;
SelStart := p;
SelLength := Length(Text) - SelStart;
end; // If
end; // else
end; // Case
end;
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Cevapla