Re: Text in Richedit anklicken
Hi,
Wenn dein String so aussieht "Mustermann: test text bla bla" dann prüfe doch mit Pos(':', String) wo der erste Doppelpunkt ist und alles von 1 bis dahin ist dann der Name. Dazu solltest du dann nur vermeiden das man im Namen auch Doppelpunkte verwenden kann aber das sollte ja kein Problem sein. Gruß Stormy |
Re: Text in Richedit anklicken
Jo gute Idee dann mache ich das so.
Kann ich denn auch irgendwie rausfinden mir mousemove in welcher Zeile die maus gerade ist? |
Re: Text in Richedit anklicken
Wenn du den String hast über dem deine Maus ist dann kannst du mit
Delphi-Quellcode:
feststellen welcher Zeilenindex das ist.
JvRichEdit1.Lines.IndexOf(DEIN_STRING)
Gruß Stormy |
Re: Text in Richedit anklicken
Ich habe ein Problem damit rauszufinden in welcher Zeile die Mausgerade ist.
Habs so probiert geht aber nur wenn ich geklickt habe: Zeile := JvRichEdit1.CaretPos.y; Ich brauche das aber bei move. |
Re: Text in Richedit anklicken
Ja habe ich dir doch in meinem vorherigen Post schon beantowrtet wie du das machen kannst.
Gruß Stormy |
Re: Text in Richedit anklicken
Hallo,
Zitat:
|
Re: Text in Richedit anklicken
Keine Ahnung ob es geht oder ob es das ist was du wolltest aber hab deinen Code mal etwas abgeändert.
Delphi-Quellcode:
Edit: man könnte den auch mal etwas anschaulicher Formatieren (Styleguide) :roll:
var Test : TSize;
Rect1 : TRect; TextHoehe : Integer; Zeile : Integer; Text1 : String; begin for Zeile := 1 to JvRichEdit1.Lines.Count do begin //Zeile in der der Text steht (Index der Linesliste +1 des RichEdits) Text1 := 'Hi'; //Text, der angeklickt werden soll GetTextExtentPoint32(GetDC(JvRichEdit1.Handle), PChar(Text1), Length(Text1), Test); //WinApi Funktion, welche die Höhe und die Breite des Textes ausgibt TextHoehe := -JvRichEdit1.Font.Height; //Höhe der Schrift allgemein Rect1 := Rect(0,(Zeile-1)*TextHoehe,Test.cx,Zeile*TextHoehe + Test.cy); //Bereich festlegen, wo der Text ist, dabei sit vorausgesetz das der Text immer vorne steht if (y >= Rect1.Top) and (y+TextHoehe <= Rect1.Bottom) and (x <= Rect1.Right) then //Überprüfung ob die Mouse in Rect (speicher am besten x,y von MouseMove und setze //die Variable für X und Y ein, wenn du die Anweisung hier in DbClick einfügst begin //hier der Code, wenn die Mouse auf dem Text ist. //z.b. JvRichEdit1.SelStart := 0; JvRichEdit1.SelLength := Length(Text1); if not (fsUnderline in JvRichEdit1.SelAttributes.Style) then begin JvRichEdit1.SelAttributes.Style := JvRichEdit1.SelAttributes.Style + [fsUnderline]; end; JvRichEdit1.Cursor:=crHandpoint; Caption := IntToStr(Zeile); // die Zeile über der die Maus ist break; end else begin //und hier schreibste rein wie er normal aussehen soll. //z.b. JvRichEdit1.SelStart := 0; JvRichEdit1.SelLength := Length(Text1); if fsUnderline in JvRichEdit1.SelAttributes.Style then begin JvRichEdit1.SelAttributes.Style := JvRichEdit1.SelAttributes.Style - [fsUnderline]; JvRichEdit1.Cursor:=crDefault; end; end; end; end; Gruß Stormy |
Re: Text in Richedit anklicken
Ja aber das ist wieder das problem dafür müsste ich wissen was in der zeile steht das weiß ich ja nicht.
|
Re: Text in Richedit anklicken
Was genau geht denn jetzt nicht? Ich kann dir gerade nicht folgen und im Code steht doch alles drinne
was du brauchst oder verstehe ich was falsch? :roll: |
Re: Text in Richedit anklicken
Das Problem ist ich schreibe einen Chat und in jeder Zeile steht ein Name davor.
Natürlich nicht in jeder Zeile der selbe. In Jeder Zeile soll der Name gehighlightet werden. Wenn das erstmal geschafft ist kann man ja auch ganz einfach einen Code darauf setzen, also beim anklicken. Und das ist das Problem ich muss ja individiuell herausfinden was der Name ist und dann herausfinden wenn man mit der Maus darüber ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz