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 Liste mit TSpeedButton Komponenten ? (https://www.delphipraxis.net/62202-liste-mit-tspeedbutton-komponenten.html)

Karstadt 1. Feb 2006 09:24


Liste mit TSpeedButton Komponenten ?
 
hallo. Ich habe ein TForm mit x Speedbuttons wie kann ich per code rausfinden wieviel Speedbuttons ich insgesammt habe und jeden Speedbuttons anprechen kann. Danke

Der_Unwissende 1. Feb 2006 09:28

Re: Liste mit TSpeedButton Komponenten ?
 
Hi,
wenn die einfach direkt auf dem Form liegen kannst du mit der Eigenschaft Controls direkt auf alle Controls deines Forms zugreifen. Dabei musst du nur für alle Controls schauen, ob sie vom Typ TSpeedbutton sind (is TSpeedButton). Fertig.

Gruß der Unwissende

Karstadt 1. Feb 2006 11:41

Re: Liste mit TSpeedButton Komponenten ?
 
kannst du mir bitte en beispielcode zeigen :oops:

Angel4585 1. Feb 2006 11:57

Re: Liste mit TSpeedButton Komponenten ?
 
Delphi-Quellcode:
Anzahl:=0;
for i:= 0 to Pred(Form.ComponentCount) do
 if Form.Components[i] is TSpeedButton then
  inc(Anzahl);
Sorry das ich mich einmische.

Der Code ist ungetestet, sollte aber so ungefähr aussehen und funktionieren.

marabu 1. Feb 2006 12:30

Re: Liste mit TSpeedButton Komponenten ?
 
Noch ein Code:

Delphi-Quellcode:
procedure AddControls(
  wc: TWinControl;          // start container
  s: TStrings;              // capture list
  c: TClass;                // class filter
  recurse: boolean = false  // optional recursion
);
var
  i: Integer;
  cc: TWinControl;
begin
  for i := 0 to Pred(wc.ControlCount) do
  begin
    cc := wc.Controls[i] as TWinControl;
    if cc is c then
      s.AddObject(cc.Name, cc);
    if recurse and (cc.ControlCount > 0) then
      AddControls(cc, s, c, recurse);
  end;
end;
Kann so benutzt werden:
Delphi-Quellcode:
procedure TDemoForm.Button3Click(Sender: TObject);
begin
  with ListBox do
  begin
    Items.Clear;
    AddControls(self, Items, TButton, true);
  end;
end;
Grüße vom marabu

Karstadt 1. Feb 2006 12:50

Re: Liste mit TSpeedButton Komponenten ?
 
Zitat:

if Form.Components[i] is TSpeedButton then
FMeldung ungültige Typumwandlung :(

Angel4585 1. Feb 2006 12:56

Re: Liste mit TSpeedButton Komponenten ?
 
Huch.. sorry

Delphi-Quellcode:
Anzahl:=0;
for i:= 0 to Pred(Form.ControlCount) do
if Form.Controls[i] is TSpeedButton then
  inc(Anzahl);
Controls anstatt Components...


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