Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu Actions: Controls werden Disabled ohne OnExecute (https://www.delphipraxis.net/124935-frage-zu-actions-controls-werden-disabled-ohne-onexecute.html)

Assertor 27. Nov 2008 14:55


Frage zu Actions: Controls werden Disabled ohne OnExecute
 
Hi,

mir ist gerade aufgefallen, daß wenn ich z.B. einer CheckBox eine Action zuweise die keine Execute Methode hat, die CheckBox nach dem ersten Anklicken ausgegraut wird (also Disabled ist). Gleiches gilt natürlich auch für Buttons etc.

Dies passiert nur, wenn die Action keine OnExecute Methode hat.

Nur aus Interesse, weiß jemand den Hintergrund, warum das so ist bzw. besser gesagt, warum das so gehandhabt wird?

Gruß Assertor

ChrisE 27. Nov 2008 15:40

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Reine Mutmaßung:

Eine Action die nichts macht sollte doch als Disabled dargestellt werden (keine Funktion -> kein Klick ;-) ).
Mir ist das aufgefallen bei dynamischer Zuweisung von OnExecute und ich fand das eigentlich immer praktisch (Wenn Funktion vorhanden in Lib dann Zeiger ansonsten OnExecute := nil).

Warum dieser Mechanismus aber erst greif wenn du das erste mal drauf klickst ist mir auch nicht klar.


Gruß, Chris

uligerhardt 27. Nov 2008 16:30

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Und für Spezialfälle kann man DisableIfNoHandler auf False setzen.

Assertor 27. Nov 2008 18:31

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Hi,

Zitat:

Zitat von ChrisE
Mir ist das aufgefallen bei dynamischer Zuweisung von OnExecute und ich fand das eigentlich immer praktisch (Wenn Funktion vorhanden in Lib dann Zeiger ansonsten OnExecute := nil).

Ja, stimmt das ist auch eine Möglichkeit.

Zitat:

Zitat von uligerhardt
Und für Spezialfälle kann man DisableIfNoHandler auf False setzen.

Gute Anregung, ich glaube, daß steht leider nicht in der OH.

Gruß Assertor

Christian Seehase 27. Nov 2008 19:12

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Moin Assertor,

bei D7 gibt es dieses Phänomen noch nicht.
Da ist, bei fehlender OnExecute-Methode, die Checkbox sofort beim Programmstart disabled.

Assertor 27. Nov 2008 19:37

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Hi Christian,

Zitat:

Zitat von Christian Seehase
bei D7 gibt es dieses Phänomen noch nicht.
Da ist, bei fehlender OnExecute-Methode, die Checkbox sofort beim Programmstart disabled.

Schön mal wieder von Dir zu lesen :)

Das erklärt einiges. Dann ist es ein über die Zeit eingeführtes "Feature". Ohne das D7 Verhalten zu kennen wirkte das unausgegoren.

Also Danke an alle für das Klären!

Gruß
Assertor

Sir Rufo 27. Nov 2008 21:47

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Assertor,

ich habe das hier mal versucht mit Delphi 2009 nachzuvollziehen ... aber keine Chance ... das Verhalten ist wie gewohnt ... kein Execute definiert dann auch das Control disabled, und zwar sofort!

siehe Anhang ... also nix Delphi Fehler ;)

cu

Oliver

Assertor 27. Nov 2008 21:53

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Hi Oliver,

Zitat:

Zitat von Sir Rufo
ich habe das hier mal versucht mit Delphi 2009 nachzuvollziehen ... aber keine Chance ... das Verhalten ist wie gewohnt ... kein Execute definiert dann auch das Control disabled, und zwar sofort!

siehe Anhang ... also nix Delphi Fehler ;)

Danke für den Test!

Ich muß jetzt auch sagen: Das Verhalten tritt nur auf, falls die Action zwar eine OnUpdate Methode hat, aber keine OnExecute Methode zugewiesen ist.

Das ist also im Ganzen wirklich kein Fehler, sondern ein spezialgelagerter Sonderfall in welchem das Verhalten der VCL verständlich und nachvollziehbar ist.

Gruß Assertor

Sir Rufo 27. Nov 2008 22:12

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Aha ... erwischt ;)

Dann fehlt uns ja nur noch die Gegenprobe, ob das Verhalten unter D2007,D2006,D7,... genauso ist, oder ob das Verhalten und D2009 wirklich neu ist.

cu

Oliver

Christian Seehase 27. Nov 2008 23:02

Re: Frage zu Actions: Controls werden Disabled ohne OnExecut
 
Moin Assertor,

Zitat:

Zitat von Assertor
Ich muß jetzt auch sagen: Das Verhalten tritt nur auf, falls die Action zwar eine OnUpdate Methode hat, aber keine OnExecute Methode zugewiesen ist.

Hättest Du das nicht eher sagen können...
Das ist bei D7 genauso...

Also alles beim Alten ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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 by Thomas Breitkreuz