![]() |
TRichEdit und Link (URL) mit Leerzeichen
Hallo,
ich habe TRichEdit um das Hervorheben von URLs und Mailadressen ![]()
Code:
anspreche.
\\Rechner\Freigabe\Verzeichnis\Datei
Leider habe ich nicht herausfinden können, wie das mit Dateien geht, die auf meinem eigenen Rechner ohne Freigabe liegen. Wenn ich also jemandem einen Link zu z.B.
Code:
schicken möchte.
%SystemRoot%\system32\calc.exe
Zudem wüsste ich gern, ob man irgendwie Leerzeichen handeln kann. So klappt z.B.
Code:
nicht, weil nach dem Wort langes der Link nicht mehr markiert wird und ich bei einem Klick den Rest nicht mitgeliefert bekomme.
\\Rechner\Freigabe\langes Verzeichnis\Datei
Gibt es da Möglichkeiten Gruß, Alex |
AW: TRichEdit und Ling (URL) mit Leerzeichen
Das Problem mit den Leerzeichen musst du via Anführungszeichen (oder einem anderen Zeichenpaar lösen). Die Eingabeaufforderung von Windows macht ja auch automatisch welche wenn du Tab drückst, bzw. benötigt eben welche. Sonst kann man sowas nicht sinnvoll parsen.
Und sowas hier %SystemRoot%\system32\calc.exe wird immer etwas problematisch sein, da %SystemRoot% ja eine Umgebungsvariable ist. Auslesen lässt sich das sicherlich irgendwie. Musst es halt dann passend einbauen. |
AW: TRichEdit und Ling (URL) mit Leerzeichen
Liste der Anhänge anzeigen (Anzahl: 1)
Danke erst einmal für die Antwort.
Naja %SystemRoot% war nur ein (möglicherweise wenig durchdachtes) Beispiel. Aber C:\WINDOWS\system32\calc.exe funktioniert eben auch nicht. Es werden nur freigabebasierte Links ohne Leerzeichen erkannt. Das Ersetzen (noch von Hand) des Leerzeichens durch %20 wie im Browser bringt auch nichts. Im Moment löse ich das rein über Messages. Ich habe mal die Unit angefügt, damit niemand den Quellcode von meinem Link abtippen, kopieren oder sonstwas muss. In Bezug darauf würde das bedeuten, dass ich entweder
Delphi-Quellcode:
den gesamten Text durchsuchen und (keine Ahnung wie das geht), gefundene Links markieren...
TRichEdit.Lines
Ich hatte auf eine einfachere Lösung gehofft, die jemand der schlauer ist als ich, kennt.:lol: Gruß, Alex |
AW: TRichEdit und Link (URL) mit Leerzeichen
Ein Link zu einer Datei ist ja eigentlich so aufgebaut:
Code:
das sollte eigentlich funktionieren
file://C:\Windows\System32\calc.exe
Und bei einer Freigabe mit Leerzeichen so
Code:
So müsstest du diese Links schon vorbereitet übergeben, denn ein Leerzeichen ist nun mal schwer zu interpretieren, weil nicht eindeutig.
file://Rechner/Freigabe/Langes%20Verzeichnis/Datei
%SystemRoot% ist eigentlich auch kein Problem, da man hier die Environment-Variablen benutzen möchte. Also entweder alle Environment-Variablen im Text ersetzen lassen
Delphi-Quellcode:
oder eine Funktion schreiben
MyText := StringReplace( MyText, '%' + EnvVarName + '%', EnvVarVal, [ rfReplaceAll, rfIgnoreCase ] );
Delphi-Quellcode:
und dann mit StringReplace im Text ersetzen.
EnvVarName := StringBetween( MyText, '%', '%' );
Variante1 ist aber wesentlich einfacher und weniger fehlerbehaftet umzusetzen (dafür aber mehr Rechenaufwand). Man könnte diesen Teil aber auch in die Routine auslagern, die den Link aufruft und dann nur dort beim Aufruf ersetzen lassen, denn sonst werden ja auch evtl. Teile ersetzt, die gar nicht ersetzt werden sollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz