richedit mousemove

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

richedit mousemove

Mesaj gönderen sr1111 »

s.a
richedite yazilan yazinın(text olarak) ustune mouse ile gelince yazinin altinda, daha once clipboarda yapistirdigim yazi ciksin istiyorum nasil yapabilirim.

richeditmousemove nasil bir komut yazmam lazim. asagidaki komut ile yazilari caption da cikardim. ama ben yazilarin hemen altinda istiyorum.

yapmak istedigim ornek burada. yardimci olursaniz sevinirim.
http://www.islamharfleri.com/risale/ris ... _6_01.html


procedure TForm1.richedit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
iCharIndex, iLineIndex, iCharOffset, i, j: Integer;
Pt: TPoint;
s: string;
begin
with TRichEdit(Sender) do
begin
Pt := Point(X, Y);
iCharIndex := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@Pt));
if iCharIndex < 0 then Exit;
iLineIndex := Perform(EM_EXLINEFROMCHAR, 0, iCharIndex);
iCharOffset := iCharIndex - Perform(EM_LINEINDEX, iLineIndex, 0);
if Lines.Count - 1 < iLineIndex then Exit;
s := Lines[iLineIndex];
i := iCharOffset + 1;
while (i > 0) and (s <> ' ') do Dec(i);
j := iCharOffset + 1;
while (j <= Length(s)) and (s[j] <> ' ') do Inc(j);
Caption := Copy(s, i, j - i);
end;
end;
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: richedit mousemove

Mesaj gönderen Battosai »

Richedit bulunduğun satırın altında belirsin istiyorsan hint ile yapman daha kolay ve mantıklı...Örnek uygulamada olduğu olması için bir satır boşluk olması icab edecektir.Yanılmıyorsam sen bir hint çıksın istiyorsun...
aşağıdaki örneği incele....

Kod: Tümünü seç

With (Sender as TRichEdit) do
Begin
ShowHint:=true;
Hint:=Lines.Strings[Perform(EM_LINEFROMCHAR,SelStart,0)] ;
End;
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: richedit mousemove

Mesaj gönderen sr1111 »

aslinda tam yazi seklinde istiyordum hint iyi olmuyor. veya hint yerine label kullanabilirmiyim bilmiyorum.
label kullanirsam acaba o satirin altina nasil taşırım.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: richedit mousemove

Mesaj gönderen Battosai »

Şöyle olabilir alttaki satırları bir aşağı kaydırıp arada kalan yere formatlı bir şekilde mesela rengi değişik bir satır halinde ekleyip silebilirsin...Ama satır sayısı çoook fazla olursa yavaşlama belirgin olacaktır. Buda bir fikirdir yani... :) Yada cursorun bulunduğu yere göre bir tane label create edebilirsin...
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: richedit mousemove

Mesaj gönderen sr1111 »

şu label i tam olarak nasil satirin ustune veya altina getirebilirim ugrastim ama yapamadim.
hinti getirdim label gelmiyor.
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: richedit mousemove

Mesaj gönderen sr1111 »

canvas.textout u kullanabilirmiyim bu proje icin ve nasil kullanirim.
Cevapla