Autor |
Beitrag |
wasabi
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 23.03.11 11:19
Hi,
ich habe das Problem, dass ein ausgegrauter Button (Button.Enable = false) sich nicht mit einem Tooltip versehen lässt, bzw. dieser nicht angezeigt wird wenn der Button "ausgegraut" ist.
Ziel ist, dass der User weiss was er tun muss um den Button zu aktivieren.
Kann mir da jemand eine elegante Lösung ausführlich erklären? Ich hab schon mit ner PictureBox experimentiert das aber nicht hinbekommen.
Grüße
Wasabi
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 23.03.11 12:04
Wenn der Button nicht Enabled ist löst er auch keine Events mehr aus so viel ist klar.
Was mir jetzt an Lösungen einfällt ist aber auch nicht wirklich elegant:
a) Den Enabled nicht auf false setzen sondern nur den Clickeventhandler vom Clickevent des Buttons lösen (und eventuell den Style des Buttons anpassen damit mans auch sieht).
b) Beim MouseLeave-Event des Parentcontrols könnte man über die MousePosition überprüfen ob die Maus über einen deaktivierten Button ist und dann den Tooltip selbst anzeigen.
|
|
Horschdware
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Mi 23.03.11 12:09
Alternativ würde mir noch ein Kunstgriff einfallen:
Beim Disabled-Setzen des Buttons eine Transparente Komponente über den Button legen und deren Event nutzen.
Ich meine mich aber daran erinnern zu können, vor Urzeiten mal eine "Popup- und Hilfen-Komponente" genutzt zu haben, die auch diese Hints für deaktivierte Controls möglich machte. Das hatte wenn mich nicht alles täuscht mit den Komponenten des Programms "Help and Manual" zu tun.
Vllt kann man sich ja abgucken, wie die das machen?
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
Th69
      

Beiträge: 4796
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 23.03.11 12:26
Hi zusammen,
die Variante mit einem transparenten Control hat jemand unter Tooltips für deaktivierte Controls ausprogrammiert.
|
|
wasabi 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 23.03.11 12:59
bakachan hat folgendes geschrieben : |
a) Den Enabled nicht auf false setzen sondern nur den Clickeventhandler vom Clickevent des Buttons lösen (und eventuell den Style des Buttons anpassen damit mans auch sieht).
|
wie genau würde diese Variante denn aussehen?
wie löse den Clickeventhandler vom Clickevent?
Mfg
Wasabi
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 23.03.11 13:07
ähnlich wie man einen Eventhändler anhängt nur mit einem - anstelle eines +
also:
C#-Quelltext 1:
| button1.Click -= new EventHandler(button1_Click); |
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.03.11 13:11
Das würde ich aber nicht machen, denn niemand rechnet damit, dass ein Button deaktiviert ist, wenn er nicht so aussieht.
|
|
wasabi 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 23.03.11 14:10
Ok soweit klappt das mal.
Jetzt würde ich halt gerne noch den Button "ausgrauen"
1) Die Schrift des Buttons ist kein Problem
2) Wenn ich die Maus über den Button ziehe, dann wird der Button "blau" umrandet wie verhindere ich das? welche Eigenschaft muss ich diesbzgl. anpassen?
Mfg
Wasabi
|
|