aranan kelimeyi secili olarak gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
turkisch
Üye
Mesajlar: 13
Kayıt: 27 Şub 2004 02:52
Konum: ist
İletişim:

aranan kelimeyi secili olarak gösterme

Mesaj gönderen turkisch »

hani bi text dosyasını actıgınızda bul diye bi komut var ya bi kelime bulununca onu secili bicimde bize gösteriyor ya.. iste edit kurusuna yazılan kelime de dmmemo kutusunda bulundugunda yine secili olarak gösterilsin. yani mesela arana kelime "köprü" olsun db memo icinde köprü kelimesi, "fatih köprüsünün acılısı" diye bi cümlede bulunmus olsun. istedigim sey cümle icinde köprü kelimesini secili olarak görebileyim...
umarım simdi daha iyi anlatabilmisimdir....
cok tşk...
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Arama işlemini POS fonksiyonu ile yapabilirsin.

Kod: Tümünü seç

 a := POS('köprü','fatih köprüsünün acılısı');
buradaki a integer bir değişken, "köprü" kelimesinin arandığı cümle içindeki pozisyonunu verir. Yani burda a 7 olur. Sen de bu cümlenin 7.karakterinden itibaren aradığın kelimenin length i kadarını (köprü için bu değer 5 olur) seçili yapabilirsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

yaw arkadaşlar biraz help kurcalayın yaa. Ingilizce bilmiyosanız alın bir sözlük tercüme edin. walla ben ilk başladığımdan beri hep böyle yaptım.Hem programcılık öğrendim hemde ingilizce. Aşağıdaki örnek help ten.

Kod: Tümünü seç

procedure TForm1.FindDialog1Find(Sender: TObject);

var
  I, J, PosReturn, SkipChars: Integer;
begin
  for I := 0 to Memo1.Lines.Count do
  begin
    PosReturn := Pos(FindDialog1.FindText,Memo1.Lines[I]);
    if PosReturn <> 0 then {found!}
    begin
      SkipChars := 0;
      for J := 0 to I - 1 do
        SkipChars := SkipChars + Length(Memo1.Lines[J]);
      SkipChars := SkipChars + (I*2);
      SkipChars := SkipChars + PosReturn - 1;

      Memo1.SetFocus;
      Memo1.SelStart := SkipChars;
      Memo1.SelLength := Length(FindDialog1.FindText);
      Break;
    end;
  end;

end;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
turkisch
Üye
Mesajlar: 13
Kayıt: 27 Şub 2004 02:52
Konum: ist
İletişim:

teşekkür

Mesaj gönderen turkisch »

ilginizden dolayı teşekkür ederim.
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

Kod: Tümünü seç

procedure TForm1.FindDialog1Find(Sender: TObject);

var
  I, J, PosReturn, SkipChars: Integer;
begin
  for I := 0 to Memo1.Lines.Count do
  begin
    PosReturn := Pos(FindDialog1.FindText,Memo1.Lines[I]);
    if PosReturn <> 0 then {found!}
    begin
      SkipChars := 0;
      for J := 0 to I - 1 do
        SkipChars := SkipChars + Length(Memo1.Lines[J]);
      SkipChars := SkipChars + (I*2);
      SkipChars := SkipChars + PosReturn - 1;

      Memo1.SetFocus;
      Memo1.SelStart := SkipChars;
      Memo1.SelLength := Length(FindDialog1.FindText);
      Break;
    end;
  end;

end;
kolay gele[/quote]

bu kodu denedim ben fakat sadece bir tanesini buluyor. Diğerlerine geçmiyor...
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

sako yazdı:bu kodu denedim ben fakat sadece bir tanesini buluyor. Diğerlerine geçmiyor...
Memo yerine richedit koy, (adını memo1 yap :D )

Kod: Tümünü seç

      .......................
      Memo1.SetFocus;
      Memo1.SelStart := SkipChars;
      Memo1.SelLength := Length(FindDialog1.FindText);
      Memo1.SelAttributes.Style:=[fsBOLD]; 
      // Break; <<<--- Bu break,başına // koy, üstüne gelip F1 e bas :))
      //orda detaylı yazar 
    end;
  end;
 .............................
Cevapla