Thema: Delphi Statusbar-OnHint-Bug?

Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Statusbar-OnHint-Bug?

  Alt 17. Jul 2007, 23:40
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 Delphi-Referenz durchsuchenTApplication.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
  Mit Zitat antworten Zitat