Czy mogłby mi ktoś udzielić porady jak w każdym programie wyświetlić własnego hinta nad określonym elementem. Konkretnie chodzi mi o wyświetlenie hinta nad konkretnym tekstem a w praktyce wyświetlenie np. Idea, Era lub Plus jeżeli np. pod kursorem znajduje się ciąg cyfr który zaczyna sie od 605 to pokazuje sie hint Plus, itd.
W praktyce prawie każdy komponent w Delphi ma właściwość Hint i tam możesz to wpisać,. Więc w czym problem?
Chodzi o coś innego. W kazdym programie pod kursorem czyli np. klikniesz start -> uruchom -> wpiszesz 693683935 najedziesz na to kursorem i hint bedzie "plus" ..
Full kodzik, tylko nie wiem (w Delphi rzadko piszę), jak na początku DisplayHint sprawdzić, czy aktualnie wyskakujący hint jest od naszego Edit1 czy od innego obiektu.
I oczywiście włącz ShowHint dla Edita :-)
procedure TForm1.DisplayHint(Sender: TObject);
begin
if Length(Edit1.Text) = 9 then begin
if Edit1.Text[1] = '6' then begin //era lub plus
if (Edit1.Text[2] = '0') or (Edit1.Text[2] = '9') then //era lub plus
if (StrToInt(Edit1.Text[3]) and 1) = 1 then //plus
Edit1.Hint := 'Plus'
else //era
Edit1.Hint := 'Era';
end else
if (Edit1.Text[1] = '5') and ((Edit1.Text[2] = '0') or (Edit1.Text[2] = '9')) then //idea
Edit1.Hint := 'Idea';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint := DisplayHint;
end;
Ale mu chodzi o inny program...
Mozesz shookowac wiadomosc MOUSEMOVE (nie pamietam aliasu), gdy taka przyjdzie odczytujesz edita (tez na to jest wiadomosc) i w jakis sposob wyswietlasz hinta Application.ShowHint, albo cos innego...
Wreszcie Wolverine mnie zrozumiał tylko jak byś mogł troche bardziej to rozwinać ...
WM_GETTEXT
WM_MOUSEMOVE
F1+Hooks