Ich verwende (wie schon x-mal im gleichen Projekt) die FindComponent-Methode um mittels Schleife Objekte zu manipulieren.
Doch diesmal findet diese Konstruktion
Code: Alles auswählen
for a := 3 to 6 do
begin
SB := (GroupBox1.FindComponent('SpeedButton'+IntToStr(a)) as TSpeedButton);
if SB.Caption = ComboBox1.Text then ...
SB ist nach dem Aufruf nil.
Die vier SpeedButtons SpeedButton3 bis SpeedButton6 hab ich zur Entwicklungszeit eingefügt und wenn ich sie mit
Code: Alles auswählen
for a := 0 to ( GroupBox1.ControlCount - 1 ) do Memo1.Lines.Add(GroupBox1.Controls[a].Name);
Der Quelltext der Methode sieht auch unverdächtig (heißt: wie bei den funktionierenden Aufrufen) aus:
Code: Alles auswählen
Function TComponent.FindComponent(const AName: string): TComponent;
Var I : longint;
C : TComponent;
begin
Result:=Nil;
If (AName='') or Not assigned(FComponents) then exit;
For i:=0 to FComponents.Count-1 do
Begin
c:=TComponent(FComponents[I]);
If (CompareText(C.Name,AName)=0) then
Exit(C);
End;
end;
Was überseh' ich denn schon wieder?
Danke für's Lesen
Christian