سلام
چطور میتونم در یک Memo یک کلمه رو جستجو کنم.
البته منظورم یه Function آماده ست !
ممنون
Printable View
سلام
چطور میتونم در یک Memo یک کلمه رو جستجو کنم.
البته منظورم یه Function آماده ست !
ممنون
یک راه است البته سخت اگه به نتیجه نرسیدی بهت یاد میدم
سلامنقل قول:
یک راه است البته سخت اگه به نتیجه نرسیدی بهت یاد میدم
یعنی خود عنصر Memo چنین تابعی نداره ؟!
اگه اینطوره خودم باید بنویسم.گفتم شاید امکان جستجو در Memo باشه؛فقط برای صرفه جویی در وقت می خواستم.
ممنون
دوست عزیز این کار توسط کد پاسکال است در ممو من همچنین کاری نکردم شاید دوستان دیگه بدونند اگه مشکلت حل نشد در خدمت هستم
موفق باشی
نمم تا اونجا كه ميدونم مموها چنين خاصيتي ندارن چون من خودم مدتي دنبالش مي گشتم ولي چيزي پيدا نكردم
بزارید نظر دوستان (مباح)و(سلجر)را ببینیم بعد اگه خواستید به شما طریقه جستجو را یاد میدهم
سلامنقل قول:
نوشته شده توسط Admiral
Memoدر واقع يك رشته بزرگ است. براي جستجوش مي تونيد از تابع Pos استفاده كنيد.
يك را هم استفاده از FindDialog است.
اين هم مثال براي FindDialog
فراموش نكنيد كه كامپوننت FindDialog و همچنين يك Memo روي فرم قرار دهيدکد:private
{ Private declarations }
FSelPos: integer;
کد:procedure TForm1.FindDialog1Find(Sender: TObject);
var
S : string;
startpos : integer;
begin
with TFindDialog(Sender) do
begin
{If the stored position is 0 this cannot be a find next. }
if FSelPos = 0 then
Options := Options - [frFindNext];
{ Figure out where to start the search and get the corresponding
text from the memo. }
if frfindNext in Options then
begin
{ This is a find next, start after the end of the last found word. }
StartPos := FSelPos + Length(Findtext);
S := Copy(Memo1.Lines.Text, StartPos, MaxInt);
end
else
begin
{ This is a find first, start at the, well, start. }
S := Memo1.Lines.Text;
StartPos := 1;
end;
{ Perform a global case-sensitive search for FindText in S }
FSelPos := Pos(FindText, S);
if FSelPos > 0 then
begin
{ Found something, correct position for the location of the start
of search. }
FSelPos := FSelPos + StartPos - 1;
Memo1.SelStart := FSelPos - 1;
Memo1.SelLength := Length(FindText);
Memo1.SetFocus;
end
else
begin
{ No joy, show a message. }
if frfindNext in Options then
S := Concat('There are no further occurences of "', FindText,
'" in Memo1.')
else
S := Concat('Could not find "', FindText, '" in Memo1.');
MessageDlg(S, mtError, [mbOK], 0);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FSelPos := 0;
FindDialog1.Execute;
end;
خوبه جناب نن فرس جواب شما رو دادند
امید وارم چندان سخت برای شما نباشد
نان فرس جان واقعاً ممنون من که قبل از اینکه عضوشم از هر کی پرسیدم گفت نمیشه
واقعاً دستت درد نکنه
خیلی ممنون از همگی بخصوص NoneForce.