Witam, Napotkałem problem z którym nie mogę sobie poradzić. Mamy dwa komponenty edit i button. Chciałbym aby po kliknięciu button-a wyświetlił się hint pod editem lub w innym miejscu. Na określony czas po czym znika. I teraz niechcę używać właściwości hint juz z komponentu edit ale tworzyć nowego hinta gdzie mogę sobie deklarować długość jego wyświetlania i inne parametry.
Postanowiłem zrobić to za pomocą wątku, wiem że kod jest bardzo brzydki ale nie czas na razie na wskaźniki.
constructor TRafloHint.Create(AOwner: TComponent; PosX,PosY: Integer; Text : String);
begin
inherited Create(False);
FreeOnTerminate := True;
vOwner := aOwner;
vText := Text;
x := PosX;
y := PosY;
end;
procedure TRafloHint.ShowHint;
var
r : TRect;
begin
r.Left := X;
r.Top := Y;
r.Right := X + 100;
r.Bottom := Y+20;
h := THintWindow.Create(vOwner); //Było nil
h.ParentWindow := Application.Handle;
h.ActivateHint(r,vText);
end;
procedure TRafloHint.CloseHint;
begin
h.ReleaseHandle;
h.Free;
end;
procedure TRafloHint.Execute;
begin
Synchronize(ShowHint);
Sleep(1000); //Jak dlugo wyświetlany jest hint
Synchronize(CloseHint);
end;
Hint się pojawia i znika problem w tym że nie wiem jak go zaczepić o konkretny komponent. Próbowałem ustawić h.parent ale bez rezultatu. Jak przeciągnę formę programu to hint się nie przesuwa razem z formą. Co robię źle?
Na pytanie dlaczego jest wątek odpowiadam że po wyświetleniu hinta sam nie znika dopiero po jego zwolnieniu.