/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Forskel på...
Fra : MSFrederiksen


Dato : 22-04-07 11:00

Hvad er forskellen på

TNyComponent = Class
og
TNyComponent = Class(TComponent)

(hvor TComponent kun er valgt som eksempel)



 
 
Uffe Kousgaard (22-04-2007)
Kommentar
Fra : Uffe Kousgaard


Dato : 22-04-07 11:23

"MSFrederiksen" <2584431m002@stofanet punktum Danmark.invalid> wrote in
message news:462b323a$0$4157$ba624c82@nntp02.dk.telia.net...
> Hvad er forskellen på
>
> TNyComponent = Class

Det her er det samme som

TNyComponent = Class(TObject)



MSFrederiksen (22-04-2007)
Kommentar
Fra : MSFrederiksen


Dato : 22-04-07 13:17

"Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
news:462b37c6$0$2084$edfadb0f@dtext02.news.tele.dk...
> "MSFrederiksen" <2584431m002@stofanet punktum Danmark.invalid> wrote in
> message news:462b323a$0$4157$ba624c82@nntp02.dk.telia.net...
>> Hvad er forskellen på
>>
>> TNyComponent = Class
>
> Det her er det samme som
>
> TNyComponent = Class(TObject)

Tak for svaret.

Hvis en komponent starter således

type
TNyComponent = class;

TDelComponent = class(TStringGrid)
private
protected
public
end;

osv.

Hvad vil det så sige?

Jeg tolker det som en TNyComponent, man bygger ud fra en TObject, som
indeholder flere typer / classes, herunder TDelComponent.

Korrekt?



Uffe Kousgaard (22-04-2007)
Kommentar
Fra : Uffe Kousgaard


Dato : 22-04-07 16:09

"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



nic@aub.dk (03-05-2007)
Kommentar
Fra : nic@aub.dk


Dato : 03-05-07 10:03

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.


Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste