Meget simpelt. FarvShape proceduren er ikke en del af din TForm1 klasse, det betyder at components ikke findes i dens scope(Hvad den kan "se"). Der er tre måder at fixe dette på:
1: Du kan given FarvShape proceduren en parameter med en pointer til components arrayet.
2: Du kan bruge Form1.Components. Form1(Forudsat at du ikke har ændret dens navn) er en variabel der henviser til en instans af din TForm1.
3: (Nemmeste) Gør FarvShape til en del af din TForm1, dvs. kald den TForm1.FarvShape og tilføj den til din TForm1's private eller public sektion, alt efter hvor du gerne vil have den. Dette betyder dog at du bliver nød til at have noget at referere til når du vil kalde FarvShape, dvs. f.eks. Form1.FarvShape(...).
Lige som en sidenote:
Det er en god ide at tjekke at componentet du caster som et TShape og sætter farven på rent faktisk er et TShape. Dette kan gøres med:
if components[i] is TShape then begin
...
end;
Hvis jeg husker rigtigt altså. Er ikke så meget inde i det Delphi noget mere.
Indlæg senest redigeret d. 14.03.2006 09:20 af Bruger #2330