فتح الله زاده
دوشنبه 18 اردیبهشت 1391, 22:08 عصر
دوستان از این کد میتونین برای جستجوی پیشرفته استفاده کنین ،
نزدیکترین کلمه به حروف تایپ شده رو در ادیت میاره و به غیر از حروف تایپ شده
الباقی رو سلکت میکنه .
procedure TForm1.Edit1Change(Sender: TObject);
var
St:string;
begin
if (trim(Edit1.Text)<>'') and (Edit1.Focused) then
begin
Edit1.OnChange:=nil;
St:=Edit1.Text;
data1.QSerch.Close;
ADOQuery1.SQL.Text:='select Field1 from TestDataBase1 '+
' WHERE Field1 like N'+QuotedStr(Edit1.Text+'%');
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin
Edit1.Text:=
trim(ADOQuery1.FieldByName('Field1').AsString);
Edit1.SelStart:=Length(St);
Edit1.SelLength:=(Length(Edit1.Text)-Length(st));
end;
ADOQuery1.Close;
Edit1.OnChange:=Edit1Change;
end;
end;
این فراموش نشه
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Ord(Key)=8) then // BACKSPACE
begin
Edit1.Text:=
Copy(Edit1.Text,0,(Length(Edit1.Text)-Edit1.SelLength)-1);
end;
if Ord(Key)=46 then // Delete
begin
Edit1.ClearSelection;
Key:=32
end;
end;
نزدیکترین کلمه به حروف تایپ شده رو در ادیت میاره و به غیر از حروف تایپ شده
الباقی رو سلکت میکنه .
procedure TForm1.Edit1Change(Sender: TObject);
var
St:string;
begin
if (trim(Edit1.Text)<>'') and (Edit1.Focused) then
begin
Edit1.OnChange:=nil;
St:=Edit1.Text;
data1.QSerch.Close;
ADOQuery1.SQL.Text:='select Field1 from TestDataBase1 '+
' WHERE Field1 like N'+QuotedStr(Edit1.Text+'%');
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin
Edit1.Text:=
trim(ADOQuery1.FieldByName('Field1').AsString);
Edit1.SelStart:=Length(St);
Edit1.SelLength:=(Length(Edit1.Text)-Length(st));
end;
ADOQuery1.Close;
Edit1.OnChange:=Edit1Change;
end;
end;
این فراموش نشه
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Ord(Key)=8) then // BACKSPACE
begin
Edit1.Text:=
Copy(Edit1.Text,0,(Length(Edit1.Text)-Edit1.SelLength)-1);
end;
if Ord(Key)=46 then // Delete
begin
Edit1.ClearSelection;
Key:=32
end;
end;