ورود

View Full Version : آموزش: جستجوی پیشرفته با ادیت باکس



فتح الله زاده
دوشنبه 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;

delphiprog3000
پنج شنبه 21 اردیبهشت 1391, 10:04 صبح
دوستان از این کد میتونین برای جستجوی پیشرفته استفاده کنین ،
نزدیک‌ترین کلمه به حروف تایپ شده رو در ادیت میاره و به غیر از حروف تایپ شده
الباقی رو سلکت میکنه .

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;



با سلام دوست گرامی میتونی کامل ترش رو بگی یعنی جستجو با چند فیلد میخوام ببینم راه حلی داری در این باره؟ که این بحث رو کامل ترش کنیم

فتح الله زاده
چهارشنبه 27 اردیبهشت 1391, 09:26 صبح
در مورد جستجو با چند فيلد قبلا صحبت شده ، اما اگر جستجو شبيه گوگل خواستين
ميتونين نتيجه Query رو تو يه ليست باكس بريزين و نشون بدين بعد انتخاب كاربر ميتونين ليست باكس رو بردارين