2014-04-04 10 views
5

Szukałem, ale nie mogę znaleźć rozwiązania, więc pomyślałem, że powinienem po prostu go opublikować.Wymuszenie nie blokowania tymczasowego okna podpowiedzi w Delphi

Oto, co chciałbym robić w Delphi (2009):

W pewnym momencie w mojej aplikacji, chciałbym pokazać wiadomość do użytkownika.

Powinno to być normalne okno podpowiedzi, które automatycznie znika po zwykłym zastosowaniu zdefiniowanej przerwy w podpowiedzi, z niestandardową wiadomością (i automatycznie zmień wielkość itp. Itd.).

Nie powinno to być blokowanie, jak w przypadku zwykłej podpowiedzi, nie zależne od bieżącej kontroli ani żadnych innych elementów.

"Po prostu pokaż ten przeklęty komunikat", w oknie Wskazówka do aplikacji i kontynuuj.

Jakieś wskazówki?

+0

Jeśli masz kontrolki DevEx, możesz rzucić okiem na menedżera alertów. –

+0

Spróbuj użyć tHintWindow: –

Odpowiedz

9

Można użyć CustomHint:

with TCustomHint.Create(Self) do begin 
    Title := 'temporary message'; 
    Delay := 0; 
    HideAfter := 2000; 
    ShowHint(Point(X, Y)); 
end; 

Jednak nie ulega zniszczeniu w czasie jest ukryty, ale gdy jej właściciel (Self) jest zniszczona. Ale możesz oczywiście ponownie użyć tej samej instancji podpowiedzi.

+1

Po prostu eksperymentowałem z tym, działa prawie dokładnie tak, jak chcę! Dziękuję, jeszcze nie wiedziałeś o tej klasie. Wspaniale dzięki! –

0

Możesz użyć do tego THintWindow. Utwórz instancję THintWindow i gdy chcesz wyświetlić wywołanie okna ActivateHint. Kiedy będziesz gotowy zamknąć okno, zadzwoń: ReleaseHandle. Jeśli chcesz zamknąć okno podpowiedzi po pewnym czasie, będziesz chciał uruchomić zegar, aby umożliwić Ci ReleaseHandle, gdy czas się skończy.

+0

cóż, o to chodzi - nie chcę śledzić utworzonych okien podpowiedzi i wypuszczać je samodzielnie, chcę, aby aplikacja to robiła, ponieważ ma wszystkie funkcje. –

+0

Kto będzie śledził okno podpowiedzi, jeśli tego nie zrobisz? –

+2

To było częścią pytania: pokaż to w oknie podpowiedzi aplikacji, nie musisz tworzyć własnego okna podpowiedzi, w tym kolorów itp. I śledzić z timerem podpowiedzi, unikając podwójnych podpowiedzi od kontrolek itp. Byłbym zasadniczo w trakcie TApplication już robi! –