Procedure definering

Tags:    delphi

Jeg har et problem med at få en defineret procedure med følgende funktionsprincip til at virke når jeg kalder den. Eksempel: (Bemærk parameteret '??????')


Fold kodeboks ind/udKode 


Jeg kan simpelthen ikke få dette kald til at virke.. Har prøvet at skrive alt i procedurens parameter, men det duer ikke. Håber i kan hjælpe.



Indlæg senest redigeret d. 14.03.2006 00:21 af Bruger #9682
3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
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:
Fold kodeboks ind/udKode 

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
TShape(componenets):=ClRed;

Er det meningen er der skal stå componenets, skal der ikke stå components?




Ja Decko. Sorry for sjuskefejlen ;)

MANGE Tak for svaret, The-Freak. Det prøver jeg lige at lege lidt med.



t