PDA

View Full Version : درخواست کد مربوط به find dialog در notepad



farah_m
چهارشنبه 02 شهریور 1384, 09:06 صبح
سلام
میشه لطف کنید کد مربوط به find dialog در notepad رو برام بنویسید و کنار هر کدوم یه توضیح کوچیک هم اضافه کنید ! آخه من خودم کدشو می نویسم ولی جواب نمی ده وقتی در رویداد onfind با تابع posex یا حتی pos می خوام محل findtext رو پیدا کنم این تابع صفر برمی گردونه ! ممنون می شم که راهنماییم کنید .

vcldeveloper
پنج شنبه 03 شهریور 1384, 03:16 صبح
با استفاده از کامپوننت TReplaceDialog و رویداد OnReplace این کامپوننت می تونید کاری رو که می خوایید، انجام بدید:

از Help دلفی:


The following event handler searches a TMemo object called Memo1 and replaces FindText with ReplaceText. It uses TMemo’s SelStart, SelLength, and SelText properties.
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
var
SelPos: Integer;
begin
with TReplaceDialog(Sender) do
begin
{ Perform a global case-sensitive search for FindText in Memo1 }
SelPos := Pos(FindText, Memo1.Lines.Text);
if SelPos > 0 then
begin
Memo1.SelStart := SelPos - 1;
Memo1.SelLength := Length(FindText);
{ Replace selected text with ReplaceText }
Memo1.SelText := ReplaceText;
end
else MessageDlg(Concat('Could not find "', FindText, '" in Memo1.'), mtError, [mbOk], 0);
end;
end;

farah_m
جمعه 04 شهریور 1384, 17:14 عصر
مرسی از کمکتون . ولی این کد فقط اولی رو پیدا میکنه ؟

vcldeveloper
شنبه 05 شهریور 1384, 02:00 صبح
ولی این کد فقط اولی رو پیدا میکنه ؟
از PosEx بجای pos استفاده کن و هر بار مکان کلمه پیدا شده رو در یک متغیر ذخیره کن تا جستجوی بعدی روی ادامه متن صورت بگیره ، نه از اول متن.<!-- / message --><!-- message, attachments, sig -->