Ik heb nu verschillende tutorials gelezen en gedaan. Wat me opvalt is dat er de ene keer gerefereerd wordt naar bijvoorbeeld een TForm1 en de andere keer naar een Form1 terwijl beide verwijzingen (volgens mij) naar hetzelfde item verwijzen. Wie, wat, waar en hoe laat?
TForm1 is de class (de T van type), en Form1 zal een instance zijn van TForm1.
Zoals je hier kunt zien is TForm1 een type, terwijl Form1 een variable (object) is.
code:
1
| Form1 : TForm1; |
Zoals je hier kunt zien is TForm1 een type, terwijl Form1 een variable (object) is.
https://fgheysels.github.io/
dus nadat je gedeclareert hebt dat Form1 een TForm1 is refereer je hoe dan ook voortaan altijd naar Form1?
Verwijderd
Ja. Het is trouwens niet zo dat een "TComponent" per definitie "Component1" moet heten, je kunt het ook best "Piet" noemen. Overigens bestaan er bepaalde aanbevelingen voor naamgeving van forms en components, zo zul je een form vaak aantreffen als "frmAbout" i.p.v. "Form3", of een label als "lbName" i.p.v. "Label42". Gewoon zoals je variabelen ook goede namen geeft, als in "rekeningnr" i.p.v. "ah7up".Verwijderd schreef op 28 augustus 2002 @ 11:31:
dus nadat je gedeclareert hebt dat Form1 een TForm1 is refereer je hoe dan ook voortaan altijd naar Form1?
nee
zoals whoami al zegt heb je instanties en declaraties.
je declareerd hoe het form er uit moet zien (class) das je TForm1.
Form1 is een pointer naar een object van het type TForm1. Een instantie. Form1.
Die moet je nog wel createn, maar default doet delphi dat al voor je.
Form1 refereert naar een mogelijke instantie van de classe TForm1
zoals whoami al zegt heb je instanties en declaraties.
je declareerd hoe het form er uit moet zien (class) das je TForm1.
Form1 is een pointer naar een object van het type TForm1. Een instantie. Form1.
Die moet je nog wel createn, maar default doet delphi dat al voor je.
Form1 refereert naar een mogelijke instantie van de classe TForm1
We adore chaos because we like to restore order - M.C. Escher
Meestal wel, tenzij je de naam niet weet van een variable.....
Stel, je hebt een procedure die er als volgt uit ziet:
Nu weet je wel dat sender een TObject is, maar aangezien TForm afgeleid is van TObject, kan sender dus eigenlijk ook een TForm zijn (een TForm1 bv).
Je kan dan bv hetvolgende doen:
Stel, je hebt een procedure die er als volgt uit ziet:
code:
1
| procedure DoeIetsMetEenWaarde ( sender : TObject); |
Nu weet je wel dat sender een TObject is, maar aangezien TForm afgeleid is van TObject, kan sender dus eigenlijk ook een TForm zijn (een TForm1 bv).
Je kan dan bv hetvolgende doen:
code:
1
2
3
4
5
| if Sender is TForm1 then begin // checken of Sender eigenlijk een Tform1 is
TForm1 (Sender).Edit1.Text := 'blaat'; // Hier ga je een TEditBox die Edit1 heet en die op een
// form staat van het type TForm1 (waarvan je de
// naam niet weet) op blaat zetten.
end; |
https://fgheysels.github.io/
Ah! Ok. Juist. Dat was dus de reden waarom er naar een TForm1 gerefereerd werd. Ik weet de exacte code niet precies meer, maar was inderdaad van gelijke strekking.
Dus eigenlijk zou ik ook:
Type
Yibbedi = class (TForm)
kunnen doen en dan
var
linuxaapform: Yibbedi
???
Nog een klein vraagje:
:= voor assignments
= voor vergelijk
tenminste, in delphi
Waarom is het dan wel:
TForm1 = class (TForm)
en
Form1: Tform1 ;
?????????? Das toch tegenstrijdig? of is dat zo omdat dat net "buiten" het standaard gebeuren valt?
Type
Yibbedi = class (TForm)
kunnen doen en dan
var
linuxaapform: Yibbedi
???
Nog een klein vraagje:
:= voor assignments
= voor vergelijk
tenminste, in delphi
Waarom is het dan wel:
TForm1 = class (TForm)
en
Form1: Tform1 ;
?????????? Das toch tegenstrijdig? of is dat zo omdat dat net "buiten" het standaard gebeuren valt?
Ja.Verwijderd schreef op 28 augustus 2002 @ 13:03:
Dus eigenlijk zou ik ook:
Type
Yibbedi = class (TForm)
kunnen doen en dan
var
linuxaapform: Yibbedi
Waarom?Nog een klein vraagje:
:= voor assignments
= voor vergelijk
tenminste, in delphi
Waarom is het dan wel:
TForm1 = class (TForm)
en
Form1: Tform1 ;
?????????? Das toch tegenstrijdig? of is dat zo omdat dat net "buiten" het standaard gebeuren valt?
Daarom.
Afspraken.
Trouwens, met dit:
code:
1
| TForm1 = class (TForm) |
wil men enkel aantonen dat TForm1 inherited van TForm. Men wil hier geen assignment mee aantonen. Het zou pas verwarrend zijn als je gebruik zou maken van de assignment operator om aan te tonen van welke class deze class inherit.
Bovenstaande regel is geen assignment.
https://fgheysels.github.io/
Pagina: 1