Wyświetlanie podpowiedzi w edytorze RichEdit w zdarzeniu OnMouseMove

0

Witam, mam wyświetlanie podpowiedzi w edytorze RichEdit w zdarzeniu OnmouseMove. Po najechaniu na tekst wyskakuje podpowiedz, problem jest taki że pokazuje tylko pierwszy, następne dopiero po kliknięciu myszką lub po ponownym najechaniu na edytor i tekst. Mam ustawioną hintpause:=100 i hinthidepause:=3000. Jaką funkcję zastosować która zakończy wyświetlanie poprzedniego hinta aby płynnie poruszając się po tekstcie wyskakiwały następne oczywiście po zwłoce hintpause:=100. Podobnie jak podpowiedzi w edytorze Delphi. Dziękuję za każdą pomoc.

0

Najprościej: dokładnie pod kursor myszy podstaw TLabel 1x1 i natychmiast go schowaj.

2

@_13th_Dragon: nie sugeruj nikomu takiego badziewia. Tym bardziej że TLabel to kontrolka graficzna, a TRichEdit jest komponentem okienkowym, więc etykieta nigdy nie wskoczy nad edytor. Zresztą to ”rozwiązanie” i tak jest na tyle absurdalne, że komentować nie trzeba.

@loza: w klasie TApplication są różne metody, w tym ActivateHint do manualnego pokazania dymku w określonym miejscu ekranu, a także CancelHint i HideHint, które umożliwiają jego zamknięcie w dowolnym momencie.

0
furious programming napisał(a):

do manualnego pokazania dymku w określonym miejscu ekranu, a także CancelHint i HideHint, które umożliwiają jego zamknięcie w dowolnym momencie.

Po czym automatyczna aktywacja hinta nie będzie działać dopóki nie zejdziesz z kontrolki.

furious programming napisał(a):

Tym bardziej że TLabel to kontrolka graficzna, a TRichEdit jest komponentem okienkowym, więc etykieta nigdy nie wskoczy nad edytor.

O tym zapomniałem, dopiero teraz przypomniałeś mi czemu w podobnym rozwiązaniu użyłem TStaticEdit.

furious programming napisał(a):

Zresztą to ”rozwiązanie” i tak jest na tyle absurdalne, że komentować nie trzeba.

Poproszę o działający przykład nie absurdalnego rozwiązania, w TRichEdit trzy słowa:- "pies kot koń" po najechaniu w dymku masz tłumaczenie "dog cat horse".
Na pozostałe słowa nie reagować. Uwaga nie możesz użyć mojego "absurdalnego" rozwiązania, anie dopuścić do mrugania kontrolki.

furious programming napisał(a):

@_13th_Dragon: nie sugeruj nikomu takiego badziewia.

No cóż wyzwanie w akapicie wyżej, zobaczymy jak wygląda nie badziewie.

0

Wyraźnie napisałem co jest rozwiązaniem – ActivateHint i CancelHint.

Po to podałem dwie metody, jedną do pokazywania i drugą do chowania dymku, aby z obu skorzystać. Bo rozwiązaniem nie jest jedynie ukrywanie hinta, ale też jego pokazywanie w odpowiednim momencie. Do tego wbudowany mechanizm absolutnie się nie nadaje i zamiast doklejać protezy parcianym lepcem, należy zaimplementować w całości własny mechanizm.


Zresztą sam taki mechanizm implementowałem swego czasu na potrzeby formatowalnej etykiety, w której linków może być bądź ile, a każdy z nich posiada swój własny dymek (gdzie czas wyzwalania i okres widoczności dymku może być różny dla linków w obrębie tego samego komponentu). Działa wyśmienicie. Wykorzystany został m.in. w demówce, którą przedstawiłem w wątku Własny interfejs aplikacji – przegląd kontrolek i test działania (w załącznikach jest spakowana binarka, można się pobawić).

0
furious programming napisał(a):

Wyraźnie napisałem co jest rozwiązaniem – ActivateHint i CancelHint.

Napisałeś owszem wyraźnie, ale najwyraźniej nie sprawdziłeś jak to zadziała.

1 użytkowników online, w tym zalogowanych: 0, gości: 1