Autor Beitrag
wasabi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 23.03.11 12:26 
Hi zusammen,

die Variante mit einem transparenten Control hat jemand unter Tooltips für deaktivierte Controls ausprogrammiert.
wasabi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 23.03.11 12:59 
user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 23.03.11 13:07 
ähnlich wie man einen Eventhändler anhängt nur mit einem - anstelle eines +
also:
ausblenden C#-Quelltext
1:
button1.Click -= new EventHandler(button1_Click);					
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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