Hallo SearchBot,
wenn du einen Handler für
TStatusBar.OnHint definierst, dann mußt du dort die Ausgabe des Hinweistextes selbst übernehmen bzw. veranlassen, beispielsweise durch eine Zuweisung zu TStatusBar.SimpleText. Ist kein Handler definiert, dann übernimmt die TStatusBar selbst diese Ausgabe.
Für die Umsetzung deines Vorhabens benötigst du lediglich einen Handler für das Ereignis
TApplication.OnShowHint, dort kannst du alle notwendigen Aktionen durchführen. Der Beispielcode zeigt, wie ein Hint für
Button1 in Abhängigkeit seines Tag-Wertes definiert werden kann.
Delphi-Quellcode:
type
TForm1 = class (TForm)
{...}
private
procedure ShowMyHint (var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
Application.OnShowHint := ShowMyHint;
end;
procedure TForm1.ShowMyHint (var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
var
s : string;
begin
if (HintInfo.HintControl = Button1) then
begin
case HintInfo.HintControl.Tag of
0: s := 'normaler Modus|Der Tag-Wert ist 0';
1: s := 'wird bearbeitet|Der Tag-Wert ist 1';
else
s := '';
end;
HintInfo.HintControl.Hint := s;
HintStr := GetShortHint(s);
end;
end;
Delphi4 habe ich auf meinem PC nicht installiert, ich konnte den Code nur mit Delphi6 testen.
Gruß Hawkeye