![]() |
Alle Buttons auf Form -> Enabled := FALSE ?
Hallo zusammen,
wie kann ich alle Buttons auf einer Form -> Enabled := FALSE machen ? Hierbei:
Delphi-Quellcode:
... macht er bei "TBit.enabled := FALSE;" einen Fehler mit Zugriffsverletzung ...
var
TBit: TBitBtn; ... //Alle Buttons enabled = FALSE For I := 0 to FormTerMaS.ComponentCount - 1 do begin if AnsiLowerCase(FormTerMaS.Components[I].ClassName) = AnsiLowerCase('TBitBtn') then begin TBit := TBitBtn(FindComponent(FormTerMaS.Components[I].Name)); TBit.enabled := FALSE; end; end; Was muss ich tuen ? Gruss Holger |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Delphi-Quellcode:
if FindComponent(FormTerMaS.Components[I].Name) is TBitButton then
(FindComponent(FormTerMaS.Components[I].Name) as TBitButton).Enabled := False; |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Müsste auch ohne Name und FindComponent gehen.
Delphi-Quellcode:
for i := 0 to MyForm.ComponentCount-1 do
if MyForm.Components[i] is TBitBtn then (MyForm.Components[i] as TBitBtn).Enabled:=false; |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Vielen dank an euch beide.
Der obere Code funktioniert nicht (auch bei Austausch von BitButton gegen BitBtn). Der untere klappt super. Gruss Holger |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Jetzt bräuchte ich aber doch die funktion des ersten Codes. Habe nun den Namen des Objectes und möchte nur dieses Enabled := TRUE setzen.
Nur funktioniert das ja oben nicht ? Gruss holger |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Dafür sollte eigentlich FindComponent genau das richtige tun
Delphi-Quellcode:
liefert dir ein TObject, heißt dein Button also zB BitBtn1, müsste
FindComponent('irgendein string, zB Edit1')
Delphi-Quellcode:
funktionieren.
(FindComponent('BitBtn1') as TBitBtn).Enabled:=false;
Wenn du viele BitBtn hast, wäre es aber vielleicht besser die in einem Array zu verwalten oder gleich eine Containerklasse zu schreiben, die dir das Verwaltet, denn FindComponent ist ineffektiv. |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Vielen dank,
jetzt noch das letzte: Ich möchte auf einer Form ein TabSheet finden und auf diesem TabSheet alle BitnBtn enabled := TRUE setzen ? Gruss Holger |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Nimm den Source von inherited (#3) und ersetze MyForm durch den Namen des Tabsheets.
|
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Dann habe ich aber wieder das anfangsproblem:
Delphi-Quellcode:
... Zugriffsverletzung kommt dann bei for ...
var
TSheet: TTabSheet; ... TSheet := (FindComponent('TabSheet1') as TTabSheet); for I := 0 to TSheet.ComponentCount - 1 do begin if TSheet.Components[I] is TBitBtn then (TSheet.Components[I] as TBitBtn).Enabled := TRUE; end; Gruss Holger |
Re: Alle Buttons auf Form -> Enabled := FALSE ?
Zitat:
Delphi-Quellcode:
for i := 0 to MyForm.ComponentCount-1 do
if MyForm.Components[i] is TBitBtn then TBitBtn(MyForm.Components[i]).Enabled:=false; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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-2025 by Thomas Breitkreuz