Porozumění metodám třídy Delphi

click fraud protection

v Delphi, metoda je procedura nebo funkce, která provádí operaci s objektem. Metoda třídy je metoda, která pracuje s odkazem na třídu namísto odkazem na objekt.

Pokud čtete mezi řádky, zjistíte, že metody třídy jsou dostupné, i když jste nevytvořili instanci třídy (objekt).

Metody třídy vs. Metody objektů

Pokaždé, když vytvoříte Komponenta Delphi dynamicky, používáte třídní metodu: Konstruktor.

Konstruktor Create je metoda třídy, na rozdíl od prakticky všech ostatních metod, se kterými se setkáte v programování Delphi, což jsou objektové metody. Metoda třídy je metoda třídy a objektová metoda je dostatečně metoda, kterou lze vyvolat instancí třídy. To nejlépe ilustruje příklad s třídami a objekty zvýrazněnými červeně pro přehlednost:

myCheckbox: = TCheckbox. Vytvořit (žádné);

V tomto případě je před voláním Create vytvořen název třídy a tečka („TCheckbox“). Je to metoda třídy, běžně známá jako konstruktér. Toto je mechanismus, kterým se vytvářejí instance třídy. Výsledkem je instance třídy TCheckbox. Tyto instance se nazývají objekty. Porovnejte předchozí řádek kódu s následujícím:

instagram viewer
myCheckbox. Překreslit;

Zde se nazývá metoda překreslení objektu TCheckbox (zděděná z TWinControl). Volání Repaint předchází proměnná objektu a tečka ("myCheckbox.").

Metody třídy lze volat bez instance třídy (např. „TCheckbox“). Vytvořit"). Metody třídy lze také volat přímo z objektu (např. "MyCheckbox"). Jméno třídy"). Metody objektu však lze vyvolat pouze instancí třídy (např. „MyCheckbox“). Překreslit “).

Za scénami je konstruktor Create přidělení paměti pro objekt (a provedení jakékoli další inicializace, jak je specifikováno TCheckboxem nebo jeho předky).

Experimentování s vlastními metodami třídy

Myslete na AboutBox (vlastní formulář „O této aplikaci“). Následující kód používá něco jako:

procedura TfrMain.mnuInfoClick (Sender: TObject);
začít
AboutBox: = TAboutBox. Vytvořit (žádné);
Snaž se
AboutBox. ShowModal;
Konečně
AboutBox. Uvolnění;
konec;
konec;
Toto je samozřejmě velmi pěkný způsob, jak dělat práci, ale jen aby byl kód snáze čitelný (a spravován), bylo by mnohem efektivnější jej změnit na:
procedura TfrMain.mnuInfoClick (Sender: TObject);
začít
TAboutBox. Ukaž se;
konec;
Výše uvedený řádek volá metodu třídy „ShowYourself“ třídy TAboutBox. "ShowYourself" musí být označeno klíčovým slovem "třída":
třídní postup TAboutBox. Ukaž se;
začít
AboutBox: = TAboutBox. Vytvořit (žádné);
Snaž se
AboutBox. ShowModal;
Konečně
AboutBox. Uvolnění;
konec;
konec;

Co byste měli mít na paměti

  • Definice metody třídy musí zahrnovat vyhrazenou třídu slov před klíčovým slovem procedura nebo funkce, které začíná definici.
  • Formulář AboutBox není vytvořen automaticky (možnosti projektu).
  • Dejte jednotku AboutBox do klauzule použití hlavního formuláře.
  • Nezapomeňte deklarovat postup v rozhraní (veřejné) části jednotky AboutBox.
instagram story viewer