2013-04-17 8 views
5

Mam aplikację, która pozwala użytkownikom wprowadzić wyrażenie regularne (które tworzą) do parsowania repozytorium dokumentów. Wyniki wyszukiwania są wyświetlane w kontrolce TTreeView. Chcę ustawić właściwość HintView drzewa (nie każdego Treenode) do wyrażenia regularnego, które było używane, ale mam problem, że wyrażenie regularne może zawierać znak (|) (regex OR), który Delphi interpretuje jako oddzielenie podpowiedzi od długiej wskazówki. Próbowałem zastąpić każde wystąpienie | z || mając nadzieję, że będzie to miało taki sam efekt jak użycie && niż & (na przykład w pozycjach menu) bez skutku.Jak umieścić dosłowny pionowy pasek "|" we właściwości podpowiedzi kontrolnej?

Czy istnieje sposób na wstawienie | w podpowiedzi bez interpretowania go jako separatora?

Odpowiedz

4

nie jest dokładna, ale chyba wystarczająco blisko

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

To działało idealnie. Dziękuję Ci. –

+4

Znak Unicode U + 00A6 jest przerwaną rurką, '|". Być może przydatne jako char char. –

+2

Zamiast używać 'StringReplace()' w ten sposób, powinieneś użyć zdarzenia 'TApplication.OnShowHint' lub podklasy' TTreeView.WindowProc', aby przechwycić komunikat 'CM_HINTSHOW', aby dostosować końcowy tekst' THintInfo.HintStr' zostanie wyświetlony w oknie podpowiedzi. –

Powiązane problemy