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 Alle Hints ein-/ausschalten (https://www.delphipraxis.net/114219-alle-hints-ein-ausschalten.html)

taaktaak 21. Mai 2008 16:22


Alle Hints ein-/ausschalten
 
Moin, Moin,
kurze Frage: Muss alle Hints in allen Controls aller Formulare ein- bzw. ausschalten. Dazu nutze ich folgenden Code ...

Delphi-Quellcode:
procedure Tfo~~.SetAllHints(Switch:Boolean);
var i,j : Integer;
begin
  with Screen do
    for i:=0 to FormCount-1 do
      for j:=0 to Forms[i].ComponentCount-1 do
        with Forms[i] do begin
          if Components[j] is TButton    then TButton   (Components[j]).ShowHint:=Switch;
          if Components[j] is TToolButton then TToolbutton(Components[j]).ShowHint:=Switch;
          //..
          //..
          end
end;
Da insgesamt über ein Dutzend verschiedene Komponententypen zu berücksichtigen sind, ist das vorstehende Verfahren ziemlich blöd - geht es auch einfacher und universeller?

HalloDu 21. Mai 2008 16:24

Re: Alle Hints ein-/ausschalten
 
Ich bin mir nicht ganz sicher, aber kannst du nicht einfach auf TControl prüfen, davon haben die nämlich ShowHint geerbt. Und dann ShowHint für die allgemeine Klasse setzen.

taaktaak 21. Mai 2008 16:34

Re: Alle Hints ein-/ausschalten
 
Frederic, das ist genial!!!
Es funktioniert bei allen von mir verwendeten Controls. Vielen Dank! Das erspart ja doch 'ne Menge Arbeit :hi:

stahli 21. Mai 2008 16:35

Re: Alle Hints ein-/ausschalten
 
a)
Kannst Du nicht Application.ShowHint nutzen?

b) Bei unterschiedlichen Klassen kannst Du auf veröffentlichte Eigenschaften so zugreifen:
uses TypInfo;
if IsPublishedProp(MyComponent, DataName) then
Value := GetPropValue(MyComponent, DataName);

taaktaak 21. Mai 2008 16:41

Re: Alle Hints ein-/ausschalten
 
Hallo stahli,
nun fehlt mir fast das nächstfolge Superlativ!
Deine Variante a) ist nun wirklich "ober-genial"
Na, klar: kürzer geht's wohl nicht!
Ebenfalls Danke!
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 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