Hallo,
gibt es für ein TMemo/TDBMemo eine Funktion, in der das Feld automatisch einen Link erkennt und dann z.B. den Internet Browser öffnet?
Im Angehängten Bild hatte ich mal was unter Delphi7/RX-Controls programmiert. Das TRxRichEdit erkennt automatisch einen Hyperlink sobald man ein "http://..." eingibt (oder ein "file:.." oder ein "mailto:..")
Wie kann ich sowas in ein TDBMemo / Lazarus bekommen?
Bzw. kann mir jemand einen Tipp geben wie ich das selbst progge?
Vielen Dank im Voraus.
Grüße Markus.
TMemo/TDBMemo mit Links?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
TMemo/TDBMemo mit Links?
- Dateianhänge
-
- Bild1.png (4.82 KiB) 1051 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TMemo/TDBMemo mit Links?
Das würde Theoretisch gehen. Ich habe mal diesen Tipp versucht nach Lazaurs zu portieren:
http://www.swissdelphicenter.ch/de/showcode.php?id=2150" onclick="window.open(this.href);return false;
leider ohne Erfolg. Weil die wm_paint(?) Botschaft, wird von der LCL anders oder jedenfalls nicht Richtig verarbeitet. Einige Parameter dort waren ungültig.
Du könntest es mit einem SynMemo versuchen. Dort gibt es zwar kein Automatischen Zeilenumbruch, aber dafür müsste es dort sehr viel leichter gehen.
http://www.swissdelphicenter.ch/de/showcode.php?id=2150" onclick="window.open(this.href);return false;
leider ohne Erfolg. Weil die wm_paint(?) Botschaft, wird von der LCL anders oder jedenfalls nicht Richtig verarbeitet. Einige Parameter dort waren ungültig.
Du könntest es mit einem SynMemo versuchen. Dort gibt es zwar kein Automatischen Zeilenumbruch, aber dafür müsste es dort sehr viel leichter gehen.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TMemo/TDBMemo mit Links?
Ja, das geht leider nicht, denn die WM-Messages sind nicht Betriebssystem unabhängig.
Und das TMemo bietet kein OnPaint Event, auf das man sich aufschalten könnte.
Ja, der TSynMemo hat ein OnPaint. Ich hab mal rein geschaut, aber irgendwie steige ich da auch noch nicht richtig durch.
Und das TMemo bietet kein OnPaint Event, auf das man sich aufschalten könnte.
Ja, der TSynMemo hat ein OnPaint. Ich hab mal rein geschaut, aber irgendwie steige ich da auch noch nicht richtig durch.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TMemo/TDBMemo mit Links?
Vieleicht eine leichtere Frage:
Mit:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
kann ich ja z.B. STRG+Maus einen Link einfach öffnen. Der Text muss ja nicht unbedingt farblich hinterlegt sein.
Wie bekomme ich aus X/Y die Cursorpos heraus?
Ich finde vom TMemo keine Passende Funktion.
Mit:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
kann ich ja z.B. STRG+Maus einen Link einfach öffnen. Der Text muss ja nicht unbedingt farblich hinterlegt sein.
Wie bekomme ich aus X/Y die Cursorpos heraus?
Ich finde vom TMemo keine Passende Funktion.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TMemo/TDBMemo mit Links?
Ok, das Wort bekomme ich heraus:
Ist natürlich "Unschön" aber eine Funktion "GetWordAt..." gibt es nicht
Code: Alles auswählen
Function TForm1.GetSelWord: String;
Var s: String;
i: Integer;
Begin
i := memo1.SelStart;
s := '';
Result := '';
Repeat
Result := s + Result;
s := Copy(memo1.Text, i, 1);
Dec(i);
until (s <= ' ') Or (i < 0);
i := memo1.SelStart + 1;
s := '';
Repeat
Result := Result + s;
s := Copy(memo1.Text, i, 1);
Inc(i);
until (s <= ' ') Or (i < 0) Or (s = '');
end;
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TMemo/TDBMemo mit Links?
Doch, was müsste es geben. Schau dir mal die Public Methoden in TSynMemo an. Wenn du in der IDE Strg+Maustaste drückst, wird auch jedes Wort unterstrichen.
Du könntest dir, die entsprechende Unit anschauen(Lazarus ist ja OpenSoruce*G*)
Du könntest dir, die entsprechende Unit anschauen(Lazarus ist ja OpenSoruce*G*)
MFG
Michael Springwald
Michael Springwald