AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

Ein Thema von HolgerCW · begonnen am 7. Mär 2008 · letzter Beitrag vom 10. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2   
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:01
Hallo zusammen,

wie kann ich alle BitBtn auf einem TTabSheet auf enabled := FALSE setzen ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:07
Versuch es mal so:
Delphi-Quellcode:
var i: integer;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Parent = TabSheet1) then
      TBitBtn(Components[i]).Enabled := false;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:12
Das sieht schon ganz gut aus. Nur ist das Problem, das auf dem TabSheet mehrere GroupBoxen sind und in diesen GroupBoxen dann die BitBtns.

Wie bekomme ich es nun hin, das alle BitBtns in den GroupBoxen enabled = TRUE werden ?

Gruss

Holger
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:16
Zitat von HolgerCW:
Das sieht schon ganz gut aus. Nur ist das Problem, das auf dem TabSheet mehrere GroupBoxen sind und in diesen GroupBoxen dann die BitBtns.

Wie bekomme ich es nun hin, das alle BitBtns in den GroupBoxen enabled = TRUE werden ?

Gruss

Holger
Das wird kompliziert^^
Nimm dir doch nen Array und speicher bei Programmanfang alle Referenzen von den BitBtns in dem Array... dann brauchst du nur noch das Array duchzugehen

edit: oder so:
Delphi-Quellcode:
var i: integer;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Parent.Parent = TabSheet1) then
      TBitBtn(Components[i]).Enabled := false;
end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:17
Versteh ich nicht. Bist Du sicher, dass die BitBtns in den GroupBoxen liegen und nicht davor?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:25
Ja,

wenn ich die Struktur in Delphi oben links mir anschaue, sind die BitnBtns in der GroupBox. So habe ich das auch gewollt.

So funktionierts:

Delphi-Quellcode:
MeineGroupBox := TGroupBox(FindComponent('GB1'));

for I := 0 to Form1.ComponentCount - 1 do
begin

 if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Parent = MeineGroupBox) then
 begin

  TBitBtn(Components[i]).Enabled := TRUE;

 end;

end;
Nur wollte ich das TabSheet angeben, nicht die einzelnen GruopBoxen auf dem TabSheet.

Was ich bräuchte ist:

1. TabSheetname ist als String bekannt.
2. Auslesen der GroupBoxen durch Parent
3. Auslesen der BitBtns in den GroupBoxen durch Parent
4. Alle ausgelesenen BitBtns auf enabled = TRUE setzen

Ist das möglich ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:31
Nächster Versuch:
Delphi-Quellcode:
var i: integer;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Parent is TGroupBox) and
       Assigned(TBitBtn(Components[i]).Parent.Parent) and
       (TBitBtn(Components[i]).Parent.Parent = TabSheet1) then
      TBitBtn(Components[i]).Enabled := true;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:33
Zitat:
Assigned(TBitBtn(Components[i]).Parent.Parent) and
(TBitBtn(Components[i]).Parent.Parent = TabSheet1)
Die zweite Abfrage reicht, denn Assigned prüft ja nur auf <> nil.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#9

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 14:42
Hallo,

ich hätte mit einer Lösung ja nicht mehr gerechnet, aber das klappt nun einwandfrei.

Vielen dank für eure mühen.

Gruss und ein schönes Wochenende

Holger
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
333 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Alle BitBtn auf einem TTabSheet enabled = FALSE setzen

  Alt 7. Mär 2008, 23:07
Du kannst auch einfach recursiv suchen.
Ein TabSheet oder eine Groupbox basieren auf TWinControl. Alle Objekte die auf TWinControl basieren können Controls aufnehmen.
Der Aufsetzpunkt ist das Tabsheet. Immer wenn du ein Control findest was auf TWinControl basiert, startest du deine Funktion mit dem neuen Aufsetzpunkt.

Alternativ könntest du auch für alle Buttons Actions vergeben mit einer Kategorie, und diese dann einfach deaktivieren.
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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