Entwickler-Ecke
Internet / Netzwerk - URL öffnen wir bei ICQ...
Scrat - Fr 11.04.03 12:31
Titel: URL öffnen wir bei ICQ...
Und noch ein Thread.... 8)
Also zusätzlich hab ich auch noch vor meinChat-Programm so einzurichten, dass wenn man eine URL eingibt, sich diese durch einen Mausklick im Internet-Browser öffnet...klappt aber noch nicht so.
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TChatForm.Memo2Click(Sender: TObject); begin if Memo2.Text='['+TimeToStr(Time)+'] '+Edit1.text+': '+'www.' then begin ShellExecute(Handle, 'open', PChar('http://www.'+text), nil, nil, SW_SHOW); end; end; |
PS:
Edit1.text //hier wird der Nickname eingetrgen
Ex0rzist - Fr 11.04.03 13:04
Wo weist du text einen Wert zu?
focus - Fr 11.04.03 13:13
ich denke ganz so einfach wird das wohl nicht werden....da
1)nicht immer der link alleine in einer zeile steht.
2)dir TChatForm.Memo2Click nicht nur eine zeile mit memo.text
gibt sondern alle zeichen..
Scrat - Fr 11.04.03 13:15
@Ex0rzist
MHHH...jetzt weis ich nicht ge´nau was du meinst...
Also ich hab auf meinem FORM folgende Komponenten:
1 x Edit1 //Hier wird der Nickname eingetragen
1 x Memo1 //Hier wird der zu sendende Text eingetippt
1 x Memo2 //Hier sollen die nachrichten vom
Server und vom Clienten erscheinen.
asooo..ja 'TEXT'...also nirgendwo wird da was zugewiesen.. :oops:
Also alles was nach dem Datum ('['+TimeToStr(Time)+']) und dem Nicknamen (Edit1.text) mit 'www.' anfängt soll bei einem Mouseklick (auf den entsprechenden Wortlaut) im Explorer geöffnet werden.
Scrat - Fr 11.04.03 13:16
@focus
aso...aber wie kann man sowas dann verwirklichen... :?:
UGrohne - Fr 11.04.03 13:17
Das kann so doch gar nicht funktionieren, da Memo1.Text ALLE Zeilen des Memos zurückgibt und außerdem nicht jeder Link nur www. heißt, was dahinter ist zählt ja auch :wink:
Du musst also jedes Zeichen einer Memo-Zeile durchgehen und dadurch dann die Charakteristika eines Links erkennen, also ob da http:// steht oder www.
focus - Fr 11.04.03 13:26
| UGrohne hat folgendes geschrieben: |
da Memo1.Text ALLE Zeilen des Memos zurückgibt
|
siehe oben ;-P
die idee mit dem parsen hatte ich zu anfang auch bis ich angefangen habe mit memo ein bisschen rumzuspielen....
das problem ist das du nicht sagen kannst WO im memo geklickt wurde (zumindest nicht einfach so) und wenn du dann ins memo geklickt hast und z.b. 2 links im feld sind kann nicht unterschieden werden welcher gemeint ist... ?!?!
gruss
michael
UGrohne - Fr 11.04.03 13:29
Irgendwo hier im Forum kam doch mal die Frage auf, wie man die Pixellänge eines Strings bekommen kann, einfach mal danach suchen, das ist Punkt 1. Und dann die Zeile rauszukriegen, dürfte auch net so das Problem sein....
foxy - Fr 11.04.03 18:54
das hier hilft dir weiter
http://www.swissdelphicenter.ch/de/showcode.php?id=1505
allerdings muss ich sagen, das es irgendwie nur ab win2k läuft ... ich weis nicht warum das so ist ... aber bei 98 bsp. zeigt er mir die urls nicht an :?
also ich muss noch kucken was das ist aber der hier tuts denke ich vorerst auch ;)
Scrat - Mi 16.04.03 13:25
Hi,
also bei mir erkennt das Programm die Befehle nicht [EM_GETEVENTMASK]:
Quelltext
1: 2: 3:
| mask := SendMessage(Richedit1.Handle, EM_GETEVENTMASK, 0, 0); SendMessage(Richedit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK); SendMessage(Richedit1.Handle, EM_AUTOURLDETECT, Integer(True), 0); |
Muss ich eine bestimmte USES hinzufügen???
MFG
Scrat
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!