Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - URL in RichText als 'link' darstellen


Lui - Mo 25.11.02 18:06
Titel: URL in RichText als 'link' darstellen
Hallo,

hab eine Frage.
In meiner RTF-Komponente sollen URLs (z.B. http://www.auq.de) als zugänglicher weblink dargestellt werden, wie <a href> in html, der auf einen weblink zu einer *html Seite verweist.

Da die Zeilen erst zur Laufzeit eingefügt werden und außerdem nicht vordefiniert sind(es handelt sich um ein Chatprogg) muß die Abfrage z.B. bei OnChange des RTF geschehen(sozusagen einfach den geschriebenen String auf 'www.irgendwas.de' also auf eine URL überprüfen und diesen im Falle 'true' wie in html als weblink darstellen und auch als solcher genutzt werden können.

Sorry wenns was umständlich beschrieben ist, kompakter hab ich es jetzt nicht hin bekommen. *g*

Über Antwort wäre ich sehr dankbar!


MfG

Lui

(26.11. 09:34 Tino) Topic verschoben.


DeCodeGuru - Mo 25.11.02 23:06

Hi,

dir ist hoffentlich klar, dass du ins FAQ gepostet hast :wink:

Such einfach in dem zu parsenden Text nach den Merkmalen, also zum Beispiel nach '<a href="'. Da musste nach dem abschließenden Zeichen '>' suchen und dann nach dem Schlusstag '</a>'. Den Text Zwischen dem '>' des Anfangstags und dem '</a>' kannste dann mit SelStart, SelLength, SelAttributes anders darstellen.

Wichtig ist dabei nur, dass du nit immer den gesamten Text ducrhsucht, sondern immer nur dem neu dazugekommenen.

Probiers mal selber. Wenn du's nit hinbekommst, kannste ja nochmal nachfragen :)


Alfons-G - Di 26.11.02 11:11

Das ist leider nur die halbe Miete ;)
Lui will ja einen anklickbaren Link erzeugen.
Theoretisch könnte man onClick benutzen und herausfinden, ob der Mauszeiger über dem Link steht.
Allerdings ist es auch möglich, einen Hyperlink im RTF-Format zu definieren.

Die Frage ist aber: Wäre es nicht einfacher, für den Chat statt eines RichEdit einen TWebBrowser verwenden und diesen mit einer dynamisch erzeigten HTML-Seite zu füllen?

:idea:


Delete - Di 26.11.02 12:10

Geht auch einfacher:

Quelltext
1:
SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(TRUE), 0);                    

Und die Unit RichEdit einbinden.

Wie man jetzt allerding das Klicken abfängt, weiß ich noch nicht.


Lui - Di 26.11.02 20:41
Titel: Danke!
Vielen Dank schonmal!

Habs zwar noch nicht getestet aber die SendMessage Methode scheint verständlich. Das mit dem OnClick bekomm ich auch noch hin.

Wenn ich den code hab wird gepostet.

Vielen Dank nochmal, kanns leider erst in den nächsten Tagen ausprobieren...muß noch was "studieren". *g*

MfG

Lui


Alfons-G - Mi 27.11.02 11:49

:wave:
Dieser Tipp ist ganz neu beim Swiss Delphi Center aufgetaucht:
Automatisches Formatieren von Links im Richedit - http://www.swissdelphicenter.ch/de/showcode.php?id=1505

:think: