PDA

View Full Version : جستجو ی پیشرفته



pm_hamze
دوشنبه 20 خرداد 1387, 01:53 صبح
با سلام خدمت کلیه دوستان
نزدیک به 3 تا 4 ساع ت هم این سایت رو و همچنین بقیه سایت ها رو گشتم جواب سوالم رو بگیرم ولی سورس کدهای زیادی هم در این سایت و هم در جاهای دیگر پیدا کردم ولی هیچکدوم جواب ندادو خواهش می کنم از کلیه مدیران این تاپیک رو حذف نکنند چون من فهم دارم که این سوال قبلا پرسیده شده و دوستان جوابهای زیادی رو دادند ولی هیچکدوم از برنامه ها جواب نمیده چون ملاک جواب دادن یا گذاستن یه سورس کد در ناپیک نیست به نظر من ملاک جواب درسته و در تاپیک های قبل هیچ جواب درستی به جون خودم پیدا نکردم و حالا یه جواب می خام که کار بده
باتشکر از کلیه دوستان و مدیران زحمت کش سایت خوب خودمون
سوال1-:من میخام نوشته موجود در یک edit رو در memo یا richedit جستجو کنم و نوشته پیدا شده در memo یا richedit به یه رنگ دیگه در بیاد.
سوال2-:میخام ببینم آیتم خاصی از combobox اولی در combobox دومی وجود دارد یا نه اگه وجود داشت یه پیغام و اگه وجود نداشت یه پیغام دیگه بدهد.
با تشکر از همه عزیزان:تشویق:

B-Vedadian
دوشنبه 20 خرداد 1387, 08:16 صبح
بعضی از جوابهایی که میگید درست عمل نکردند رو خودم استفاده کردم، حتما تو نحوه استفاده مشکل دارید. بهتره بیشتر رو نحوه استفاده از کدها تجدید نظر کنید. (رنگی کردن متن پیدا شده توی RichEdit ربط مستقیمی به پیدا کردن متن توی اون نداره، یک کار مجزاست که باید بعد پیدا کردن متن پیدا شده و با استفاده از خاصیتهای SelStart و SelLength و SelAttributes این کار رو انجام بدید)

ali_sayahiyan
دوشنبه 20 خرداد 1387, 09:25 صبح
حمزه جان در رابطه سئوال اولت حق با آقای ودادیان هستش
اگه مشکلت بر طرف نشد بگو تا کدش و برات بگذارم
اما سئوال دومت این کدشه

روش اول:


Procedure Tform1.ComboSearch(Index:integer;Combo1,Combo2:TCo mboBox);
var
i:integer;
Result:Boolean;
begin
Result:=False;
for i:=0 to Combo2.Items.Count do
if (Combo1.Items[Index]=Combo2.Items[i]) then
Result:=true;
If Result then
Showmessage('Is Found')
else
showmessage('Not Found');
end;

index
شماره ایتمی است که از combo1داخل combo2 باید جستجو شود

روش دوم که خیلی ساده تر!


if Combobox1.Items.IndexOf(Combobox2.Items[1])>-1 then
showmessage('Is Found')
else
Showmessage('Is Not Found');
end

این کد ایتم 1 در combobox2 را در combobox1 جستجو مکند

پایدار باشید

Mah6447
دوشنبه 20 خرداد 1387, 11:07 صبح
سوال1-:من میخام نوشته موجود در یک edit رو در memo یا richedit جستجو کنم و نوشته پیدا شده در memo یا richedit به یه رنگ دیگه در بیاد.
با تشکر از همه عزیزان:تشویق:



procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.SelStart := pos(Edit1.Text, Memo1.Lines.Text) -1;
Memo1.SelLength := length(Edit1.Text);
Memo1.Perform(EM_SCROLLCARET, 0, 0);
Memo1.SetFocus;
end;

nassim_20
دوشنبه 20 خرداد 1387, 12:53 عصر
مشکل منهم جستجو در Richedit است
بااین تفاوت که متن مورد نظر هم انگلیسی دارد و هم فارسی در واقع متن html است که من می خواهم در این متن یک کلمه فارسی را جستجو کنم با استفاده از pos , حتی FindText این کار رو انجام دادم که با FindText اصلا کلمه رو پیدا نمیکنه ولی با pos پیدا میکنه ولی مکانش رو اشتباه نمایش می دهد مثلا 200 کارکتر بعدتر رو نشون میده؟چرا؟
علت چیست چجوری باید جستجو کنم؟

ali_sayahiyan
دوشنبه 20 خرداد 1387, 14:47 عصر
این روش جستجو در html هستش اگه richEdit خواستید بگید تا در اسرع وقت کدشو می نویسم، میگذارم


uses mshtml,ActiveX, OleCtrls, SHDocVw, StdCtrls
;
procedure TForm1.SearchAndHighlightText(WebBrowser:TWebBrows er;aText: string);
var
tr: IHTMLTxtRange;
begin
if not WebBrowser.Busy then
begin
tr := ((WebBrowser.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
while tr.findText(aText, 1, 0) do
begin
tr.pasteHTML('<span style="color: red; font-weight: bolder;">' +
tr.htmlText + '</span>');
tr.scrollIntoView(True);
end;
end;
end;

m-khorsandi
دوشنبه 20 خرداد 1387, 16:08 عصر
با سلام خدمت کلیه دوستان
نزدیک به 3 تا 4 ساع ت هم این سایت رو و همچنین بقیه سایت ها رو گشتم جواب سوالم رو بگیرم ولی سورس کدهای زیادی هم در این سایت و هم در جاهای دیگر پیدا کردم ولی هیچکدوم جواب ندادو خواهش می کنم از کلیه مدیران این تاپیک رو حذف نکنند چون من فهم دارم که این سوال قبلا پرسیده شده و دوستان جوابهای زیادی رو دادند ولی هیچکدوم از برنامه ها جواب نمیده چون ملاک جواب دادن یا گذاستن یه سورس کد در ناپیک نیست به نظر من ملاک جواب درسته و در تاپیک های قبل هیچ جواب درستی به جون خودم پیدا نکردم و حالا یه جواب می خام که کار بده
باتشکر از کلیه دوستان و مدیران زحمت کش سایت خوب خودمون
سوال1-:من میخام نوشته موجود در یک edit رو در memo یا richedit جستجو کنم و نوشته پیدا شده در memo یا richedit به یه رنگ دیگه در بیاد.
سوال2-:میخام ببینم آیتم خاصی از combobox اولی در combobox دومی وجود دارد یا نه اگه وجود داشت یه پیغام و اگه وجود نداشت یه پیغام دیگه بدهد.
با تشکر از همه عزیزان:تشویق:

مطمئنم جستجو نكردی،
مثال‌های زيادی وجود داره، هم تو اين سايت و هم تو سايتهایی مثل torry.net و swissdelphicenter.com، جستجو كن.