Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hint Ausgabe abschalten + umleiten auf eine Statusbar (https://www.delphipraxis.net/45020-hint-ausgabe-abschalten-umleiten-auf-eine-statusbar.html)

AirJordan 28. Apr 2005 09:09


Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Hallo,

ich habe meine OnHint der Applikation so umgeleitet, das sie in einer Statuszeile angezeigt wird. Klappt zwar noch nicht bei allen Componenten, liegt aber daran das diese zb kein ParentShowHint haben etc. Jetzt möchte ich aber die "normale" Anzeige des Hinttextes abschalten. Soll ja nicht doppelt angezeigt werden.

Delphi-Quellcode:
procedure TfrmBVSHHaupt.FormCreate(Sender: TObject);
begin
  ..
  Application.OnHint := DisplayHint;
  { Ereignis OnHint einer Procedure zuordnen }
  ..
end;

Und in der Procedure DisplayHint wird dann der Status Panel angesprochen:

Delphi-Quellcode:
procedure TfrmBVSHHaupt.DisplayHint(Sender: TObject);
begin
  spBVSHOfficeStatusbar.Panels.Items[4].Text := Application.Hint;
  { Das Ereignis OnHint wird mit dem Text an den Panel der Statusbar weiter
    gereicht }
end;

Nur wie schalte ich jetzt das kleine gelbe Hinweisfenster am Mousecursor ab? Hat einer eine Idee dazu? Thx.

Kroko1999 28. Apr 2005 09:11

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Application.ShowHint oder TForm.ShowHint

alcaeus 28. Apr 2005 09:11

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Hallo AirJordan,

du koenntest Application.Hint auf einen Leerstring setzen. Ist aber mal nur geraten...

Greetz
alcaeus

Lannes 28. Apr 2005 09:35

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Hallo,

Generell umstellen in FormCreate:
Delphi-Quellcode:
Application.ShowHint := False;
kann aber auch Situationsabhängig genutzt werden.

AirJordan 28. Apr 2005 09:42

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Ok, danke ersteinmal für die Hinweise. Ich werde das mal mit ShowHint der Application probieren. :???:

Schwedenbitter 29. Mai 2007 08:03

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Die geposteten Quelltexte funktionieren bei mir prima. Ich habe nur ein Problem damit:

In der StatusBar soll bei mir ein feststehender Text angezeigt werden. Solange ich keinen Hint angezeigt bekomme, klappt das auch. Nachdem der Hint wieder weg ist, ist die StatusBar aber leer. Wie kann ich den ursprünglichen Text wieder sichtbar machen?

Muetze1 29. Mai 2007 08:08

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Na du hast doch die Zuweisung von Application.Hint. Dann schau einfach ob der String leer ist und weise dann halt nicht Application.Hint zu sondern deinen Standardtext...

Schwedenbitter 29. Mai 2007 08:32

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Zitat:

Zitat von Muetze1
... schau einfach ob der String leer ist und weise dann ... deinen Standardtext (zu)

Danke für die schnelle Antwort. Hört sich logisch an. Das müsste ich doch dann aber regelmäßig abfragen z.B. über einen Timer. Und da stellt sich das Problem, ob mein Programm dann noch ausreichend schnell läuft.

toms 29. Mai 2007 08:38

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Zitat:

Zitat von Schwedenbitter
Zitat:

Zitat von Muetze1
... schau einfach ob der String leer ist und weise dann ... deinen Standardtext (zu)

Danke für die schnelle Antwort. Hört sich logisch an. Das müsste ich doch dann aber regelmäßig abfragen z.B. über einen Timer. Und da stellt sich das Problem, ob mein Programm dann noch ausreichend schnell läuft.


Die Hint Zuweisung erfolgt ja in der Procedure DisplayHint. Dort kannst du auch die Abfrage machen.

marabu 29. Mai 2007 08:45

Re: Hint Ausgabe abschalten + umleiten auf eine Statusbar
 
Hallo,

ich würde es so angehen:

Delphi-Quellcode:
procedure TDemoForm.ApplicationEventsActionExecute(Action: TBasicAction;
  var Handled: Boolean);
begin
  if Action is THintAction then
    with THintAction(Action) do
      if Hint = '' then
      begin
        Hint := PermaHint();
        Handled := True;
      end;
end;
Grüße vom marabu


Nachtrag:

Vielleicht sollte ich noch auf die Eigenschaft AutoHint der Komponente TStatusBar hinweisen, die eigenen Code zur Behandlung von Hints oft überflüssig macht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz