Herkese merhaba.
Memo nesnesinin içinde yazı bulmayla ilgili bir araştırma yaptım. Find dialog nesnesiyle ilgili örnek kodlar var. Ama Bu çok kısıtlı arama yapıyor mesela benim aradığım uzun 3-4 satırlık bir bölge bunu oraya yapıştırdığım zaman çok azını alıyor.Çünkü enter vs olduğu için yazıda finddialogdaki textbox onu algılayamıyor.
Mesela dreamweavwe programında onlarca satırlık metin aratıyorum hepsini buluyor. Örneği resimdeki gibi:
ve ayrıca bunları yaptığım zaman bulunan metni istediğim bir metinle nasıl değiştirebilirim? Teşekkürler.
Soruyu dogru anladiysam, Arama kutusunun 255 karakterle sinirlandirilmasinda kaynaklaniyor. Bu sinir asildiginda arama gerceklestirilmez.
Mesela Arama kutusunu edit degilde memo veya rich edit olarak dene. Ben yapmistim ve de olmustu
memo gibi bileşenlerle de denedim ama olmuyor.Bulamıyor. Baya bir araştırdım ama bulamadım.
tek istediğim iki tane memo olsun ben 1. sine aramak istediğim metni gireyim .Butona bastığımda memo2 deki metnin içinden bulup seçsin. Ayrıca dreamweaver da 255 değil binlerce harf bulabiliyor.Yardımcı olursanız sevinirim.
In many of my applications I must to work with MEMOS and accomplish search of text with the following procedure:
1. Put a Memo, this too is valid for a DBMEMO component.
2. Put a FindDialog component.
3. In the event OnFind of the component FindDialog put the following code:
procedure TForm1.FindDialog1Find(Sender: TObject);
var Buffer, Pos, tPointer : PChar;
BuffLength : Word;
begin
With Sender as TFindDialog do
begin
GetMem(tPointer, Length(FindText) + 1);
StrPCopy(tPointer, FindText);
BuffLength:= Memo1.GetTextLen + 1;
GetMem(Buffer,BuffLength);
Memo1.GetTextBuf(Buffer,BuffLength);
Pos:= Buffer + Memo1.SelStart + Memo1.SelLength;
Pos:= StrPos(Pos, tPointer);
if Pos = NIL then MessageBeep(0)
else
begin
Memo1.SelStart:= Pos - Buffer;
Memo1.SelLength:= Length(FindText);
end;
FreeMem(tPointer, Length(FindText) + 1);
FreeMem(Buffer,BuffLength);
Memo1.SetFocus; //This line highlight the found text
end;
end;
4. Call to the FindDialog1.Execute and see the results.
I hope this serve to you
Regards
olayı çözdüm. aradığım metini seçtirebiliyorum. Ama şöyle birşey yapmak istiyorum.Memo2 deki seçili olan metni buton1 e bastığım zaman silecek.
Ama ben hiçbir şekilde memo1 e müdahale etmeden. Teşekkürler.