Sto cercando di implementare il rilevamento degli URL per il componente TRichEdit utilizzando il messaggio EM_AUTOURLDETECT.
ho un problema con il seguente codice
Come rilevare i collegamenti URL dopo aver impostato EM_AUTOURLDETECT in TRichEdit?
procedure TForm1.Button1Click(Sender: TObject);
var Mask: Word;
begin
Mask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
SendMessage(Handle, EM_SETEVENTMASK, 0, Mask or ENM_LINK);
SendMessage(Handle, EM_AUTOURLDETECT, Integer(True), 0);
end;
Funziona se ma devo cambiare il testo del TRichEdit dopo queste impostazioni per ottenere il si di rilevare gli URL nel testo già scritto. E questo è il problema perché il mio TRichEdit è in modalità ReadOnly quando si applica questa funzione.
Cosa devo fare dopo aver eseguito questo codice per forzare TRichEdit a rilevare gli URL nel testo già scritto?
Stavo guardando lo documentation ma non si parla di qualcosa di simile.
Grazie
Grazie TLama ma non c'è più tecnica pulita per farlo? Qualche tipo di notifica singola? Sembra abbastanza "pesante" per cancellare e impostare il testo di TRichEdit. –
Nella documentazione è presente quanto segue: _Se il rilevamento URL automatico è abilitato, il controllo Rich Edit esegue la scansione di qualsiasi testo modificato per determinare se il testo corrisponde al formato di un URL._ quindi sembra che il testo debba essere modificato per ottenere questo formato, ma se c'è un modo più semplice (alcune notifiche come dici tu) per forzare il sistema ad applicare l'effetto 'CFE_LINK' per tutte le parole già presenti in Rich Edit che non conosco. – TLama
nessun'altra soluzione alternativa AFIK. un codice semplificato potrebbe essere: 'SendMessage (RichEdit1.Handle, WM_SETTEXT, 0, Longint (RichEdit1.Text));' dopo aver impostato 'EM_AUTOURLDETECT' – kobik