On 22 Apr., 17:14, "Michael Sørensen" <.> wrote:
> "Uffe Kousgaard" <o...@no.no> skrev i en meddelelsenews:462b7acb$0$2108$edfadb0f@dtext02.news.tele.dk...
>
>
>
> > "MSFrederiksen" <2584431m002@stofanet punktum Danmark.invalid> wrote in
> > message news:462b525b$0$4163
>
> >> type
> >> TNyComponent = class;
>
> > Så er det en "forward" erklæring. Det bruges, hvis 2 klasser begge
> > refererer til hinanden. Så skriver man:
>
> > TClass1 = class;
> > TClass2 = class
> > public
> > f: TClass1;
> > end;
> > TClass1 = class
> > public
> > f: TClass2;
> > end;
>
> >> Jeg tolker det som en TNyComponent, man bygger ud fra en TObject, som
> >> indeholder flere typer / classes, herunder TDelComponent.
>
> >> Korrekt?
>
> > Næh
>
> Tak for svaret Uffe.
>
> Sidste spørgsmål i denne kategori. (Jeg er ved at læse om at lave
> komponenter, men der var få ting, jeg ikke forstod)
>
> Se nedenstående eksempel:
>
> Type
> TClass1 = class(TStringGrid)
> Private
> Protected
> Public
> constructor Create(aOwner: TComponent); override;
> Published
> End;
>
> Hvad vil det sige, at man i første linie skriver, at Class1 nedarves fra
> TStringGrid, men at man i constructeren refererer til TComponent i stedet
> for?
TClass1=Class(TStringGrid)
Din nye klasse "TClass1" nedarver fra TStringGrid, dvs alle de
procedurer og variable som er defineret (public, protected eller
published mener jeg) i TStringGrid vil kunne bruges i din nye klasse.
constructor Create(aOwner: TComponent); override;
Din constructor hedder ".Create" og tager et argument, nemlig et
objekt af klassen "TComponent". Den overrider den eksisterende,
nedarvede ".Create" (fra TStringGrid), dvs denne constructor vil
kaldes _istedet for_ TStringGrid.Create når man opretter et nyt
objekt. Constructoren fra TStringGrid kan kaldes fra denne ved at
skrive "inherited Create(aOwner);" hvis det er nødvændigt.
aOwner: TComponent har intet med klasserne "TClass1" eller
"TStringGrid" at gøre, det er i dette tilfælde den komponent
(TComponent er klassen for Delphi's komponenter) som skal "eje"
objektet.