Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Hint im Statusbar anzeigen (https://www.delphipraxis.net/166684-hint-im-statusbar-anzeigen.html)

JKHero 24. Feb 2012 16:43

Hint im Statusbar anzeigen
 
Moin,

ich habe ein Problem mit meinem Statusbar. Ich habe zur Programmierung ein von Delphi vorbereitetes MDIAPP benutzt mit einem Statusbar auf der MainForm.
Dort wurden bis jetzt auch immer meine Hints angezeigt. Doch nun werden die Hints nicht mehr in dem Statusbar angezeigt sondern neben den Objekten selbst (ShowHint=True) ohne dass ich daran etwas verstellt habe.....
Gibt es da eine Einstellung, die ich grade irgendwie übersehe?

gruß und danke

pmoegenb 24. Feb 2012 17:05

AW: Hint im Statusbar anzeigen
 
Wenn in der Statusbar Autohint = true ist müsste beides angezeigt werden. In der Statusbar um Bruchteile früher.

Bernhard Geyer 24. Feb 2012 17:05

AW: Hint im Statusbar anzeigen
 
Kannst du einen Screenshot anzeigen damit wir sehen was du genau für ein Darstellungsproblem du hast.

JKHero 24. Feb 2012 18:25

AW: Hint im Statusbar anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
das autohint ist angeschaltet, aber da tut sich trotzdem nichts...
ich versuch das bild mal hochzuladen.
das rote quadrat ist nur aus urheberrechtlichen gründen dort.

ganz unten ist der statusbar, wo eigentlich die hints angezeigt wurden. das showhint habe ich eben noch auf false gesetzt, darum sieht man es jetzt nich mehr.

Perlsau 25. Feb 2012 09:21

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von JKHero (Beitrag 1152719)
Dort wurden bis jetzt auch immer meine Hints angezeigt.

Was meinst du mit Hints?

1. Das Property Hint, das sich bei zahlreichen visuellen Komponenten findet?
2. Einen Hinweis für den Anwender, den du bislang in der Statuszeile ausgegeben hattest?
3. Was soll uns die eingefügte Grafik mitteilen?

JKHero 25. Feb 2012 09:28

AW: Hint im Statusbar anzeigen
 
Ich meine den Hinweis für den benutzer, wenn er den cursor auf einen button bewegt, der ihm dann im statusbar anzeigt, was dieser button bewirkt.

die grafik wurde zwei antworten vorher gefordert...

pmoegenb 25. Feb 2012 09:51

AW: Hint im Statusbar anzeigen
 
Aus der Grafik geht hervor, dass Du in der StatusBar ein SimplePanel verwendest, dann muss die Eigenschaft SimplePanel = true sein.

JKHero 25. Feb 2012 10:11

AW: Hint im Statusbar anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ist und war eingestellt.....

habe auch eben mal ein neuen statusbar eingesetzt, aber auch kein erfolg

pmoegenb 25. Feb 2012 10:14

AW: Hint im Statusbar anzeigen
 
Aber ShowHint steht auf false.

JKHero 25. Feb 2012 10:23

AW: Hint im Statusbar anzeigen
 
ABER: showhint bewirkt ja nur, dass der hint neben dem cursor angezeigt wird. ich möchte aber, dass er in dem statusbar angezeigt wird, wie es vorher auch war..... :(

himitsu 25. Feb 2012 10:41

AW: Hint im Statusbar anzeigen
 
Nein, ShowHint gibt nur an, daß der Hint angezeigt werden soll.
Das Wo ist dabei nicht vorgegeben.

Standardmäßig eben als kleines Popup an der Komponente,
oder eben in der Statusbar, wenn man dieser sagt sie soll ihn "in sich" anzeigen.

JKHero 25. Feb 2012 17:34

AW: Hint im Statusbar anzeigen
 
Showhint bewirkt bei mir, dass die hints neben dem cursor angezeigt werden.
habe es auch bei einem neuen MDIAPP getestet und dort sind die gleich einstellungen wie bei meinem (unter anderem auch Showhint=false)

Perlsau 25. Feb 2012 18:10

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von JKHero (Beitrag 1152836)
Showhint bewirkt bei mir, dass die hints neben dem cursor angezeigt werden.
habe es auch bei einem neuen MDIAPP getestet und dort sind die gleich einstellungen wie bei meinem (unter anderem auch Showhint=false)

Wenn ShowHint = FALSE, wird der Hint nicht angezeigt, auch wenn du hundertmal das Gegenteil behauptest. Offenbar meinst du mit Hint, wie ich oben schon vermutete, einen Eintrag in deiner Statusbar. Das ist aber kein delphispezifischer Hint, obwohl es sich natürlich um einen Hinweis handeln kann (Button- und Label-Captions können aber auch Hinweise sein und sind es sogar allermeistens). Als Hint in Delphi bezeichnet man jedoch immer nur die kleinen Fähnchen, die erscheinen, wenn der Mauszeiger eine Zeit lang über einer Komponente schwebt, deren ShowHint-Property true ist und deren Hint-Property einen String enthält.

JKHero 25. Feb 2012 18:15

AW: Hint im Statusbar anzeigen
 
Gut, dann versuche ich mich noch einmal klar auszudrücken:
Ich habe bei meinem jetzigen Programm ShowHint=False. Bei der exe-Datei, die ich vor ein paar Tagen compiliert habe, werden diese Hints (oder wie auch immer man die jetzt nennen will) in dem Statusbar unten angezeigt. Da ich an dem StatusBar nie etwas geändert habe, gehe ich davon aus, dass bei der Exe-Datei auch ShowHint=False gesetzt ist. Und wie ich eben schon geschrieben habe, habe ich so ein von Delphi vorgefertigtes MDIAPP geladen, habe für das MainFormular bei "Hint" etwas eingetragen und wenn ich das Programm ablaufen lassen, werd der "Hint" im StatusBar angezeigt und nicht als Fähnchen neben dem Cursor. Auch bei diesem project ist ShowHint=false gesetzt.

Perlsau 25. Feb 2012 18:16

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von JKHero (Beitrag 1152791)
Ich meine den Hinweis für den benutzer, wenn er den cursor auf einen button bewegt, der ihm dann im statusbar anzeigt, was dieser button bewirkt.

Das ist kein Hint, sondern ein Statusbar-Eintrag. Wenn du verstanden werden möchtest, solltest du auch die korrekten Begriffe verwenden und nicht Äpfel als Birnen bezeichnen.

Zitat:

Zitat von JKHero (Beitrag 1152791)
die grafik wurde zwei antworten vorher gefordert...

Das war nicht meine Frage, sondern: "Was soll uns die eingefügte Grafik mitteilen?"

Wenn du erfolgreich kommunizieren möchtest, solltest du nicht auf Fragen antworten, die gar nicht gestellt wurden und am Ende gar noch erwarten, der Frager würde sich auch mit der Antwort auf eine andere Frage zufriedengeben.

Perlsau 25. Feb 2012 18:31

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von JKHero (Beitrag 1152840)
Gut, dann versuche ich mich noch einmal klar auszudrücken:
Ich habe bei meinem jetzigen Programm ShowHint=False. Bei der exe-Datei, die ich vor ein paar Tagen compiliert habe, werden diese Hints (oder wie auch immer man die jetzt nennen will) in dem Statusbar unten angezeigt. Da ich an dem StatusBar nie etwas geändert habe, gehe ich davon aus, dass bei der Exe-Datei auch ShowHint=False gesetzt ist. Und wie ich eben schon geschrieben habe, habe ich so ein von Delphi vorgefertigtes MDIAPP geladen, habe für das MainFormular bei "Hint" etwas eingetragen und wenn ich das Programm ablaufen lassen, werd der "Hint" im StatusBar angezeigt und nicht als Fähnchen neben dem Cursor. Auch bei diesem project ist ShowHint=false gesetzt.

Welches ShowHint hast du auf FALSE gesetzt? Das Programm selber hat kein ShowHint. Diverse Komponenten aber schon, auch die Form hat eines. Also welches?

Jetzt geht's also gar nicht mehr um die Statusbar, sondern um das Hint-Property deiner Form. Aha! Und du möchtest mir weismachen, ein Eintrag in das Hint-Property der Form würde trotz Form.Showhint := FALSE bewirken, daß dieser Eintrag im Hint der Statusbar angezeigt wird?

Oder du willst offenbar gar keine Hints verwenden, sondern Hinweise über die Statusbar ausgeben. Ich bitte dich noch einmal: Drücke dich korrekt aus, auch wenn dir das offensichtlich unangenehm zu sein scheint. Die Benennungen von Komponenten und Properties in Delphi ist nicht willkürlich und daher nicht davon abhängig, wie du sie gerne nennen würdest - also kein "oder wie auch immer man die jetzt nennen will". Wenn du Statusbar-Einträge als Hint bezeichnest, wird man dich nicht verstehen.

Weißt du überhaupt, wofür die Statusbar gut ist? Sicher nicht, um Statusmeldungen in deren Hint-Eigenschaft auszugeben. Lies doch einmal die Online-Hilfe zu TStatusbar, das bringt dich garantiert weiter ...

Meines Empfinden nachs schreibst du einen völligen Blödsinn ... Das ergibt einfach alles keinen Sinn: einmal ist der Hint des Programms False, obwohl es so einen Hint gar nicht gibt. Auch eine Exe-Datei verfügt nicht über das Property Hint. Ich glaube fast, du hast absolut keine Ahnung von Delphi und solltest dich erst einmal mit einem guten Anfänger-Tutorial befassen, bevor du hier weiter wirres Zeug schreibst ... Oder nimmst du im Leben auch die dritte und vierte Stufe vor der ersten?

JKHero 25. Feb 2012 22:16

AW: Hint im Statusbar anzeigen
 
Ich seh schon, das hat keinen sinn mehr eine vernünftige antwort von dir zu erwarten. Aber ich will mich nicht auf eine Level begeben, auf dem man dem anderen geschriebenen Blödsinnn und was weiß ich nicht unterstellt, denn schließlich sehe ich ja wo in welcher Eigenschaft ich was eingebe und wie die dann heißt und was dann passiert.
Daher sehe ich diesen Thread als geschlossen an!!!

einbeliebigername 25. Feb 2012 23:01

AW: Hint im Statusbar anzeigen
 
Hallo,

Zitat:

Zitat von Perlsau (Beitrag 1152843)
Jetzt geht's also gar nicht mehr um die Statusbar, sondern um das Hint-Property deiner Form. Aha! Und du möchtest mir weismachen, ein Eintrag in das Hint-Property der Form würde trotz Form.Showhint := FALSE bewirken, daß dieser Eintrag im Hint der Statusbar angezeigt wird?

Ja genau das will der TE. Und damit du auch siehst, dass das geht, hier mal ein kleines Formular ohne jeglichen Programcode wo das so funktioniert.
Delphi-Quellcode:
object Form1: TForm1
  Left = 0
  Top = 0
  Hint = 'Test1'
  Caption = 'Form1'
  ClientHeight = 293
  ClientWidth = 633
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -13
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 120
  TextHeight = 16
  object Label1: TLabel
    Left = 8
    Top = 8
    Width = 37
    Height = 16
    Hint = 'Test2'
    Caption = 'Label1'
  end
  object StatusBar1: TStatusBar
    Left = 0
    Top = 274
    Width = 633
    Height = 19
    Hint = 'Test3'
    AutoHint = True
    Panels = <>
    SimplePanel = True
  end
end
Zitat:

Zitat von JKHero (Beitrag 1152856)
Ich seh schon, das hat keinen sinn mehr eine vernünftige antwort von dir zu erwarten. Aber ich will mich nicht auf eine Level begeben, auf dem man dem anderen geschriebenen Blödsinnn und was weiß ich nicht unterstellt, denn schließlich sehe ich ja wo in welcher Eigenschaft ich was eingebe und wie die dann heißt und was dann passiert.
Daher sehe ich diesen Thread als geschlossen an!!!

Ne, dir wurde doch noch nicht geholfen. Aber bevor wir die Lösung für dein Problem finden können, brauchen wir noch ein wenig mehr Infos von dir. Mich speziell interessier der DFM-Code von der Statusbar (ähnlich Oben) und ob du noch im Code irgendetwas mit der Statusbar machst. Dann währe auch noch sehr hilfreich, zu wissen welche Delphi-Version du genau hast.

einbeliebigername.

pixfreak 26. Feb 2012 08:53

AW: Hint im Statusbar anzeigen
 
Moin,

vielleicht hilft es ja, das OnHint Event aus TApplication auf einen eigenen Hint-Handler verbiegen, der genau das macht, was Du möchtest... Also z.B. den Hinweistext in der Statusbar darzustellen...


VG Pixfreak

Perlsau 26. Feb 2012 08:55

AW: Hint im Statusbar anzeigen
 
Okay, du hast eine DFM-Darstellung hier reinkopiert. Gratulation. Und nun behauptest, daß der Eintrag Hint = 'Test1'; in der Form dazu führt, daß dieser Eintrag im Hint der Statusbar angezeigt wird? Wie soll der Eintrag da hin kommen? Etwa mittels Autohint := TRUE;?

Vom Property Autohint der Komponente TStatusBar war bislang aber nicht die Rede. Im Übrigen legt dieses Property fest, "ob der Text der Statusleiste automatisch auf den aktuellen Kurzhinweis gesetzt wird" - also genau anders herum, als gewollt. Wie gesagt, ich halte den TE und ebenso dich für blutige Anfänger, die erst einmal die wichtigsten Grundlagen der Programmierung mit Delphi erlernen sollten, bevor sie hier völlig sinnbefreite Fragen stellen und ebensolche Antworten liefern, die keiner versteht.

Perlsau 26. Feb 2012 08:58

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von JKHero (Beitrag 1152856)
Daher sehe ich diesen Thread als geschlossen an!!!

Mein lieber JKhero, weder du noch ich sind hier ermächtigt, eine Thread zu schließen.

einbeliebigername 26. Feb 2012 09:35

AW: Hint im Statusbar anzeigen
 
Hallo,

Zitat:

Zitat von Perlsau (Beitrag 1152867)
Okay, du hast eine DFM-Darstellung hier reinkopiert. Gratulation.

Gratulieren brauchst du mir nicht. Ich bin noch zu weitaus mehr fähig.

Zitat:

Zitat von Perlsau (Beitrag 1152867)
Und nun behauptest, daß der Eintrag Hint = 'Test1'; in der Form dazu führt, daß dieser Eintrag im Hint der Statusbar angezeigt wird? Wie soll der Eintrag da hin kommen? Etwa mittels Autohint := TRUE;?

Ja. Hast du es mal ausprobiert. Oder hätte ich für dich ein komplettes Projekt mit EXE anhängen müssen, damit du es nachvollziehen kannst.

Zitat:

Zitat von Perlsau (Beitrag 1152867)
Vom Property Autohint der Komponente TStatusBar war bislang aber nicht die Rede.

Antwort 2 und ganz wichtig 4.

Zitat:

Zitat von Perlsau (Beitrag 1152867)
Im Übrigen legt dieses Property fest, "ob der Text der Statusleiste automatisch auf den aktuellen Kurzhinweis gesetzt wird" - also genau anders herum, als gewollt.

Falsch, der TE will es genauso.

Zitat:

Zitat von Perlsau (Beitrag 1152867)
Wie gesagt, ich halte den TE und ebenso dich für blutige Anfänger, die erst einmal die wichtigsten Grundlagen der Programmierung mit Delphi erlernen sollten,

Wo liest du denn das heraus. Bloß weil der TE sich nicht so ausdrückt, dass du das verstehst, ist er noch lange kein Anfänger.

Zitat:

Zitat von Perlsau (Beitrag 1152867)
bevor sie hier völlig sinnbefreite Fragen stellen und ebensolche Antworten liefern, die keiner versteht.

Also ich habe ihn verstanden.

Hoffentlich hast du den TE nicht vergrault.

einbeliebigername.

JKHero 26. Feb 2012 10:23

AW: Hint im Statusbar anzeigen
 
ersteinmal einen großen dank an 'einbeliebigernam'. Du hast das problem verstanden. ich fand es jetzt auch nicht so schwer erklärt. aber wurscht....
habe auch mal deinen code umgesetzt und da funktioniert das auch wunderbar (ja perlsau, es funktioniert tatsächlich!!! kaum zu glauben, oder?)

Habe diese einstellungen auch bei meinem statusbar, allerdings läuft es trotzdem nicht. muss mir das nochmal genau anschauen, denn das erstellen eines neuen statusbar ändert auch nichts.

@perlsau: ich will auch gar nicht ermächtigt sein, einen thread zu schließen. aber wenn von jedem solche antworten wie von dir kommen, kann ich lieber die zeit investieren und mein komplettes programm nochmal schreiben. außerdem habe ich nicht geschrieben: "dieser thread ist geschlossen", sondern ICH SEHE diesen thread als geschlossen an (genau lesen!!!)

Perlsau 26. Feb 2012 10:52

AW: Hint im Statusbar anzeigen
 
Zitat:

Zitat von einbeliebigername (Beitrag 1152875)
Ja. Hast du es mal ausprobiert. Oder hätte ich für dich ein komplettes Projekt mit EXE anhängen müssen, damit du es nachvollziehen kannst.

In der Tat, ich habe es ausprobiert und - o Wunder - der Hinttext der Form wird in der Statusbar angezeigt! Es bleibt jedoch die Frage, wie der Hinttext der Form dort hinkommt? Es gibt zwar ein ParentShowHint, aber kein ParentHint. Zumindest ist diese Funktionalität nirgendwo dokumentiert ... Und in der OH steht ganz ausdrücklich, daß AutoHint festlegt, "ob der Text der Statusleiste automatisch auf den aktuellen Kurzhinweis gesetzt wird". Damit ist dann wohl nicht der aktuelle Kurzhinweis der Statusleiste gemeint, sondern der gerade irgendwo in der Form angezeigte Hint.

einbeliebigername 26. Feb 2012 12:30

AW: Hint im Statusbar anzeigen
 
Hallo,

Zitat:

Zitat von JKHero (Beitrag 1152888)
ersteinmal einen großen dank an 'einbeliebigernam'. Du hast das problem verstanden. ich fand es jetzt auch nicht so schwer erklärt. aber wurscht....
habe auch mal deinen code umgesetzt und da funktioniert das auch wunderbar (ja perlsau, es funktioniert tatsächlich!!! kaum zu glauben, oder?)

Habe diese einstellungen auch bei meinem statusbar, allerdings läuft es trotzdem nicht. muss mir das nochmal genau anschauen, denn das erstellen eines neuen statusbar ändert auch nichts.

Ich hätte mir gewünscht wenn du meine zwei Fragen beantwortest hättest. Also nochmal. Die genaue Delphi-Version (Nummer und ob mindestens Pro oder nicht) brauchen wir. Und dann markiere mal bitte deine Statusbar, drücke Strg+C und dann hier im Beitragseditor auf den Delphi-Helm und dann Strg+V. Sollte dann in etwa so aussehen.

Delphi-Quellcode:
object StatusBar1: TStatusBar
  Left = 0
  Top = 274
  Width = 633
  Height = 19
  Hint = 'Test3'
  AutoHint = True
  Panels = <>
  SimplePanel = True
end
Ich habe mir mal im Delphi XE angeschaut, wie der Hint-Text in die Statusbar kommt. In
Delphi-Quellcode:
TCustomStatusBar.ExecuteAction
wird, wenn die Übergebene Action eine
Delphi-Quellcode:
THintAction
ist, AutoHint der Statusbar gleich True und OnHint der Statusbar NIL ist, der Hint-Text aus der übergebenen Action in die Eigenschaft
Delphi-Quellcode:
SimpelText
der Statusbar oder in die Eigenschaft
Delphi-Quellcode:
Text
des ersten Statusbar-Panels gegeben. In meinem Beispielcode wird der Prozess durch
Delphi-Quellcode:
Application.Idle
angestoßen.
Allein nur auf dem Weg vom Idle bis zum TCustomStatusBar.ExecuteAction existieren ein halbes Dutzend Störquellen. Ich zähle mal einige auf: OnHint von Application ist gesetzt, OnActionExecute von Application liefert bei THintAction ein True, die Statusbar befindet sich gerade nicht auf dem aktiven Formular, usw.

Am einfachsten wäre es wenn du das mal durchdebuggst. Gute Stellen für Haltepunkte währen
Delphi-Quellcode:
TApplication.SetHint
,
Delphi-Quellcode:
TCustomStatusBar.ExecuteAction
und
Delphi-Quellcode:
TCustomForm.ActionExecute
. Bei
Delphi-Quellcode:
TCustomForm.ActionExecute
müsste man aber mit einer Haltepunkt-Bedingung alla
Delphi-Quellcode:
TBasicAction(Message.LParam) is THintAction
arbeiten.

einbeliebigername.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.

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