2013-04-17 3 views
5

Ho un'applicazione che consente agli utenti di immettere un'espressione regolare (che realizzano) per analizzare un repository di documenti. I risultati della ricerca vengono visualizzati in un controllo TTreeView. Voglio impostare la proprietà Hint di TreeView (non ogni Treenode) all'espressione regolare che è stata utilizzata, ma il problema che sto avendo è che l'espressione regolare può avere un carattere pipe (|) all'interno di esso (regex OR), che Delphi interpreta come la separazione tra il suggerimento e il suggerimento lungo. Ho provato a sostituire ogni occorrenza di | con || sperando che avrebbe lo stesso effetto di utilizzare && anziché & (come nelle voci di menu) senza alcun risultato.Come inserire una barra verticale letterale "|" nella proprietà Hint di un controllo?

C'è un modo per incorporare un | all'interno di un suggerimento senza che venga interpretato come separatore?

risposta

4

non è esatta ma forse abbastanza vicino

Component.Hint := Stringreplace(TheHintText,'|',#5,[rfReplaceAll]); 
+0

Questo ha funzionato perfettamente. Grazie. –

+4

Il carattere unicode U + 00A6 è il pipe interrotto, '|'. Forse utile come scambio di caratteri. –

+2

Invece di usare 'StringReplace()' come questo, dovresti usare l'evento 'TApplication.OnShowHint', o sottoclasse il' TTreeView.WindowProc' per intercettare il messaggio 'CM_HINTSHOW', per personalizzare il testo finale' THintInfo.HintStr' che viene mostrato nella finestra del suggerimento. –

Problemi correlati