AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Gelöst: Schrott in der StatusBar

Ein Thema von MacGuyver · begonnen am 12. Nov 2018 · letzter Beitrag vom 13. Nov 2018
Antwort Antwort
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
284 Beiträge
 
Turbo Delphi für Win32
 
#1

Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 11:22
Moin Leute

Ich verwende ein TTntStatusBar in meinem Projekt. Ich zeichne dabei Panels selber um Grafiken und andere Hintergrundfarben verwenden zu können. Immer wieder kommt es vor, dass dort Text aus immer den gleichen Menüpunkten angezeigt werden. Ich hatte schon auf DoubleBuffered umgestellt, was keine Änderung brachte.

Eben bin ich drüber gestolpert und konnte den Fehler beheben: ShowHint war True und Hint war leer.



Das wars? Ja, ich setze nun "ShowHint := Hint > '';" und gut.

Ob der Fehler auch bei einem TStatusBar aufkommt, kann ich nicht sagen.
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
975 Beiträge
 
Delphi 7 Professional
 
#2

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 11:33
Den Fehler kenn ich schon von der Statusbar aus Delphi 7.

Nur, dass die Problemlösung so einfach ist, dadrauf bin ich noch nicht gekommen
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
643 Beiträge
 
#3

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 14:22
Mann-O-Mann....genau den Fehler hatte ich bis vor kurzem auch noch in einer alten D7-Anwendung. Hab ewig danach gesucht, weil ich es mir einfach nicht erklären konnte und vor allem der Fehler scheinbar recht sporadisch aufgetreten ist.
Aus lauter Verzweiflung habe ich dann die StatusBar rausgeschmissen und mir eine eigene Komponente dafür geschrieben. Hätte ich damals schon gewusst, dass die Lösung derart banal ist... Hat mich Tage gekostet
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.979 Beiträge
 
Delphi 7 Professional
 
#4

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 16:24
Moin, Moin,
dieser Fehler hat mich auch schon bei der TStatusbarPro zur Verzweiflung gebracht! Insbesondere, da er wirklich nur extrem sporadisch auftaucht. Nun gibt es eine Abhilfe - ok. Leider verstehe ich die Angabe zur Abhilfe nicht...

"ShowHint := Hint > '';"

Was will mir das sagen
Ralph
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
463 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 16:51
In Anwendungen mit TStatusBar steht bei mir irgendwo am Anfang der Anwendung
Application.Hint := '';

/Edit: oder meinst Menüpunkte aus deinem Programm? Ich kenne das Problem nur mit Menüpunkten aus Delphi, die beim Start meines Programms angezeigt werden.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
643 Beiträge
 
#6

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 17:09
Bei mir war das so, dass zur Runtime sporadisch in den Panels plötzlich nicht mehr das Gezeichnete war, sondern eben das Mainmenu der Application.

Aber eine Regelmäßigkeit konnte ich seinerzeit nicht wirklich ableiten. (Es wird aber eine gegeben haben)
"ShowHint := Hint > '';"

Was will mir das sagen
Möglicherweise, zumindest vermute ich das jetzt mal, soll das

StatusBar1.ShowHint := StatusBar1.Hint <>''; lauten. So würde es für mich Sinn ergeben.

Heißt wohl, dass wenn der HintString leer ist, greift die StatusBar auf irgendwas anderes zu.
Bei mir was das nur so, wenn ich die Panels selber gezeichnet habe. Es muss aber noch eine andere Abhängigkeit geben, denn ich habe das schon Jahrelang fehlerfrei genutzt, bis durch irgendeine Änderung der Fehler plötzlich "aktiv" war.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
975 Beiträge
 
Delphi 7 Professional
 
#7

AW: Gelöst: Schrott in der StatusBar

  Alt 12. Nov 2018, 17:21
Moin, Moin,
dieser Fehler hat mich auch schon bei der TStatusbarPro zur Verzweiflung gebracht! Insbesondere, da er wirklich nur extrem sporadisch auftaucht. Nun gibt es eine Abhilfe - ok. Leider verstehe ich die Angabe zur Abhilfe nicht...

"ShowHint := Hint > '';"

Was will mir das sagen
Naja, das Attribut ShowHint schaltet die automatische Anzeige von Hints ein oder aus.
Hier wird sie halt nur eingeschaltet, wenn der Inhalt des Attributes Hint größer als ein Leerzeichen ist, also irgendwas an Text enthält.

Das Problem liegt wohl in der automatischen Anzeige von Hints, wenn diese leer sind. Dann wird irgendein Menüeintrag des Programmes in irgendein Panel der Statusbar geschrieben - manchmal - manchmal auch nicht. Egal ob TStatusBar oder TStatusbarPro, bei beiden tritt dieses Problem auf.

Wobei ich das "ShowHint := Hint > '';" nicht nur auf die Hintanzeige der Statusbar "reduzieren" würde, sondern ganz allgemein. Probleme gibt es vor allem auch noch dann, wenn bei 'ner TStatusBar(Pro) AutoHint auf True steht. Irgendwas wird dann da sporadisch "gewürfelt".

Einziges nachvollziehbare dabei: In der StatusBar steht irgendwas aus dem MainMenü des Programmes. Was anderes, als Captions von Menüeinträgen, habe ich so in der Statusbar nie zu Gesicht bekommen.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.979 Beiträge
 
Delphi 7 Professional
 
#8

AW: Gelöst: Schrott in der StatusBar

  Alt 13. Nov 2018, 09:42
Moin,Moin,
da die StatusBarPro offenbar nicht ganz unbekannt ist. Möchte ich kurz über meine Versuche zur Abhilfe berichten: Die StatusBarPro gibt ja die Möglichkeit bereits im OI individuelle Hint-Text zu hinterlegen. Dies nutze ich auch, allerdings möchte ich die Möglichkeit haben nicht für jedes Panel eine Text anzeigen zu müssen.

Damit wird es ein wenig kompliziert. Einerseits muss StatusBarPro.ShowHint damit praktisch immer auf TRUE gesetzt werden um in den einzelnen Panels den Hint anzuzeigen. Um den "Anzeige-Schrott" zu unterbinden ist lt. McGyuver aber in diesem Fall zwingend ein Hint-Text für die (gesamte) Statusbar zu definieren. Dieser Text wird aber immer dann angezeigt, wenn für das einzelne Panel kein Text hinterlegt ist - das ist aber ja nicht gewollt.

Um auch diesen Fällen gerecht zu werden, habe ich die Komponente TStatusBarPro angepasst und in TStatusBarPro.CMHintShow() an das Ende die Zeile
if FMousePanel.Hint = '§§§then Message.HintInfo^.HintStr :=''; eingefügt. Diesen Text gebe ich nun im OI an, wenn das Panel keinen HintText anzeigen soll. Ob damit der "Schrott" wirksam verhindert werden kann ???

Da das alles nur "gebastel" ist, hab ich versucht, zu ergründen worin die Verbindung zum MainMenu liegen könnte, um die Frage zu klären wie es dazu kommen kann, dass der PanelText manchmal aus den Captions des MainMenu besteht - ich habe nichts gefunden. Schade.
Ralph

Geändert von taaktaak (13. Nov 2018 um 16:58 Uhr) Grund: Fehler beseitigt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf