Link in RTF ?

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Link in RTF ?

Beitrag von AUGE_OHR »

hi

wenn ich dies in eine RTF Datei schreibe

Code: Alles auswählen

Link in RTF https://www.xbaseforum.de
wird es beim beim abspeichern zu
{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss\fprq2\fcharset0 System;}}
\viewkind4\uc1\pard\f0\fs20 Link in RTF https://www.xbaseforum.de\b\f1\fs20\par}
nun wird der Link im RTF von meine Xbase++ App nicht "angezeigt" und ist nicht "aktiv" ... :(

---

wenn ich nun die Datei mit WordPad.EXE öffne "sehe" ich den Link und "öffnet damit die Website
RTF_WWW.JPG
RTF_WWW.JPG (21.14 KiB) 1809 mal betrachtet
wenn ich die Datei verlasse ohne zu speichern "verändert" isich nichts aber bei "save" entsteht das
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1031{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss\fprq2\fcharset0 System;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\f0\fs20 Link in RTF {{\field{\*\fldinst{HYPERLINK https://www.xbaseforum.de }}{\fldrslt{https://www.xbaseforum.de\ul0\cf0}}}}\f0\fs20\par
\b\f1\par}
wenn ich das in mein RTF von der Xbase++ App lade sehe ich keinen Link ... :angry4:

---

es gibt die Konstanten

EM_AUTOURLDETECT
https://docs.microsoft.com/de-de/window ... ourldetect

EM_GETAUTOURLDETECT
https://docs.microsoft.com/de-de/window ... ourldetect

wie bekomme ich unter Xbase++ einen Link "angezeigt" der auch "aktive" ist :idea:
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Link in RTF ?

Beitrag von AUGE_OHR »

hi,

habe die Notify Konstante EN_LINK gefunden welcher für die "Action" genutzt werden kann wenn man auf einen Link im RTF File klicked.

ich habe probiert ob es mit dem RICHTX32.OCX, welches XbpRTF() verwendet, funktioniert

Code: Alles auswählen

#define WM_USER                  0x0400
#define EM_AUTOURLDETECT         (WM_USER + 91)
#define EM_GETAUTOURLDETECT      (WM_USER + 92)
#define EN_LINK                  0x070b

STATIC DLLFUNCTION SendMessageA( nHWND, nMsg, nMp1, nMp2 )        ;
       USING STDCALL                                              ;
       FROM  USER32.DLL

METHOD RtfForm:create( oParent, oOwner, aPos, aSize, aPP, lVisible )
LOCAL nHwnd

   // Event "SelChange"
   ::oRtf:SelChange := { || ::Refresh() }
   // enable URL Style
   nHwnd := ::oRtf:GetHWND()
   RichEditBox_SetAutoURLDetect ( nHwnd, .T. )

Code: Alles auswählen

FUNCTION RichEditBox_SetAutoURLDetect ( hWndControl, lLink )
   SendMessageA( hWndControl, EM_AUTOURLDETECT, lLink, 0 )
RETURN nil

FUNCTION RichEditBox_GetAutoURLDetect ( hWndControl ) // --> return lLink
LOCAL lLink := SendMessageA( hWndControl, EM_GETAUTOURLDETECT, 0, 0 )
RETURN lLink
soweit so gut, jetzt wird die URL als Link dargestellt.

nun geht es um "Action" mit der Notify Konstante EN_LINK ... aber es gibt im RICHTX32.OCX keinen Event dazu ... :(
RTF_Events.JPG
RTF_Events.JPG (60.04 KiB) 1750 mal betrachtet
Frage : kann man, mit "pure" Xbase++, ein ActiveX "erweitern" :?:
gruss by OHR
Jimmy
Antworten