AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klick auf Button mit enabled=false

Ein Thema von eike42 · begonnen am 1. Jun 2010 · letzter Beitrag vom 2. Jun 2010
Antwort Antwort
Seite 1 von 2  1 2      
eike42

Registriert seit: 9. Mär 2010
18 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 08:05
Moin moin,

ich habe ein eigentlich ziemlich einfaches Problem, habe aber noch keine Lösung gefunden.

Problem: Ich möchte ein Control (in meinem Fall ein TAdvToolbarButton aus TMS, ist aber egal) "ausgrauen", aber trotzdem das Mouse-Event abfangen. Ja, ist nicht meine Idee, es soll halt so.

Allerdings sind alle Mouse-Events deaktiviert, solange ich enabled auf true habe.

Mein Workaround wäre, das Aussehen des Buttons so zu verändern, dass er "disabled" aussieht, aber es nicht ist.

Gibt es noch eine andere Möglichkeit, von der ich nichts weiss? Kann man einem Control sagen, dass es im "disabled"-Zustand noch auf Events reagieren soll?

Vielen Dank für eure Hilfe!
Eike
Eike
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 08:07
Wenn ein Control deaktivuiert ist, ist es nunmal nicht mehr bedienbar. das ist der Sinn des Deaktivieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#3

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 08:23
Zitat von mkinzler:
Wenn ein Control deaktivuiert ist, ist es nunmal nicht mehr bedienbar. das ist der Sinn des Deaktivieren.
Exakt!

Um es deutlich zu machen, hier ein Auszug aus der Windows-API-Dokumentation:

Zitat:
EnableWindow Function
Enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input.
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 08:25
Es gibt zwar zwei halbwegs einfache Möglichkeiten, um hier an die Mouse-Events zu gelangen,

aber erstmal 'ne Frage:


wozu möchtest/mußt du diese denn nutzen?
Eventuell gibt es für dein Vorhaben ja einen "besseren" Weg.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
eike42

Registriert seit: 9. Mär 2010
18 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 14:42
Ein Toolbar-Button soll, wenn keine Lizenz für das Addon vorhanden ist, disabled sein, damit ein normaler User sieht, dass man da nicht klicken kann. Allerdings soll trotzdem, wenn ein User trotzdem draufklickt, eine Meldung angezeigt werden ("Extra-Lizenz benötigt, bitte kaufen, blabla").

Ich werde dann wohl das Image vom Button durch das disabled-image ersetzen, die Schriftfarbe auf "grau" setzen und die Events drauflassen. Da es in der Toolbar ist, geht sowas wie transparentes Control drüberlegen oder so natürlich auch nicht...
Eike
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 14:52
Zitat von eike42:
Da es in der Toolbar ist, geht sowas wie transparentes Control drüberlegen oder so natürlich auch nicht...
TPaintBox hätte sich gut gemacht, aber bei dem Ort des Buttons isses wirklich blöd.

OnMouseClick des übergeordneten Controls und prüfen ob auf den Button geklickt wurde

Delphi-Quellcode:
procedure TForm1.ToolBar1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if PtInRect(Button1.BoundsRect, Point(X, Y))
      and not Button1.Enabled then
    ShowMessage('nee, is nich');
end;
@Mithrandir: wie kommst du nur darauf?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#7

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 14:52
So einen Schwachsinn kann sich doch nur eine Marketingabteilung ausgedacht haben.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 14:54
Ich finde es schon interessant, wie jeder über fehlende UI-Standards bei Windows (im Vergleich zu MacOS) redet aber trotzdem werden (die wenigen Standards) missachtet. Ein deaktivierter Button sollte imho nicht bedienbar sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#9

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 15:17
Zitat von mkinzler:
Ich finde es schon interessant, wie jeder über fehlende UI-Standards bei Windows (im Vergleich zu MacOS) redet aber trotzdem werden (die wenigen Standards) missachtet.
Also die "Windows User Experience Guidelines" sind mehrere hundert Seiten und beschreiben alles ziemlich gut.
Ich glaub nur eher, dass da noch nie jemand weiter reingeschaut hat. http://msdn.microsoft.com/en-us/library/aa511258.aspx
(merk ich vorallem, wenn ich Crossplatform-Programm wie InkScape nutze und da immer die "Schliessen, Speichern, Abbrechen"-Knoepfe verdreht sind.)
Manuel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Klick auf Button mit enabled=false

  Alt 1. Jun 2010, 15:18
Diese kamen aber erst mit Vista
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:21 Uhr.
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