Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text in Richedit anklicken (https://www.delphipraxis.net/137004-text-richedit-anklicken.html)

Stormy 13. Jul 2009 12:36

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

XXcD 13. Jul 2009 12:39

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?

Stormy 13. Jul 2009 12:50

Re: Text in Richedit anklicken
 
Wenn du den String hast über dem deine Maus ist dann kannst du mit
Delphi-Quellcode:
JvRichEdit1.Lines.IndexOf(DEIN_STRING)
feststellen welcher Zeilenindex das ist.


Gruß
Stormy

XXcD 13. Jul 2009 12:54

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.

Stormy 13. Jul 2009 13:07

Re: Text in Richedit anklicken
 
Ja habe ich dir doch in meinem vorherigen Post schon beantowrtet wie du das machen kannst.


Gruß
Stormy

Lannes 13. Jul 2009 13:13

Re: Text in Richedit anklicken
 
Hallo,


Zitat:

Zitat von XXcD
Ich brauche das aber bei move.

in dem Tipp von den Schweitzern Link findest du die Prozedur GetWord(...)

Stormy 13. Jul 2009 13:23

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:
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;
Edit: man könnte den auch mal etwas anschaulicher Formatieren (Styleguide) :roll:


Gruß
Stormy

XXcD 13. Jul 2009 13:36

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.

Stormy 13. Jul 2009 13:49

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:

XXcD 13. Jul 2009 13:54

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 14:30 Uhr.
Seite 2 von 4     12 34      

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