bir metinin içinde yazı bulma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
myalcin
Üye
Mesajlar: 63
Kayıt: 11 Mar 2008 03:45

bir metinin içinde yazı bulma

Mesaj gönderen myalcin »

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:

Resim

ve ayrıca bunları yaptığım zaman bulunan metni istediğim bir metinle nasıl değiştirebilirim? Teşekkürler.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: bir metinin içinde yazı bulma

Mesaj gönderen Laz61 »

Selam

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

Selamlar
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
myalcin
Üye
Mesajlar: 63
Kayıt: 11 Mar 2008 03:45

Re: bir metinin içinde yazı bulma

Mesaj gönderen myalcin »

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.
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Re: bir metinin içinde yazı bulma

Mesaj gönderen Jire »

Kod: Tümünü seç

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
Buldum, sanırsam :D
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: bir metinin içinde yazı bulma

Mesaj gönderen Laz61 »

Selamlar

Oldu mu? Olmadiysa, Yapman gereken sey, Editin yerine memo veya richedit yazman.

Selamlar
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
myalcin
Üye
Mesajlar: 63
Kayıt: 11 Mar 2008 03:45

Re: bir metinin içinde yazı bulma

Mesaj gönderen myalcin »

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.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: bir metinin içinde yazı bulma

Mesaj gönderen Laz61 »

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Text:='';
end;
end.

Böyle bir seymi?
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
myalcin
Üye
Mesajlar: 63
Kayıt: 11 Mar 2008 03:45

Re: bir metinin içinde yazı bulma

Mesaj gönderen myalcin »

Memo1.clearselection;

Teşekkürler.
Cevapla