Sien ook Pieter Blignaut se notas oor
OOP Programmering in
Delphi
'n Objek word gereken as 'n voorbeeld ('instance') van 'n klas. Daarom kan
'n klas as 'n raamwerk van 'n objek beskou word.
Klasse word gedefinieer as volg:
type
TKlasnaam = class
fVeldnaam1 : datatipe;
fVeldnaam2 : datatipe;
procedure Prosedurenaam;
function Funksienaam : Datatipe(s);
end;
var
Objeknaam : TKlasnaam
Hierdie voorbeeld maak gebruik van 'n klas TMovies wat die velde fName,
fGenre en fDuration (in minute) insluit. Dit sluit ook 'n funksie
getDuration in wat die duur in ure en minute bepaal.
As 'n klas gebruik word, word hierdie stappe tipies gevolg:
- Voeg die klasdefinisie in
- Skep 'n verwysing van die beskrywing van die objek
- Skep 'n objek
- Skep funksies en prosedures
- Gee waardes vir objek
- Roep die funksie/prosedure en vertoon
- Maak spasie in geheue vry
Volg die stappe om jou eie eenheid ('unit')
te skep:
- Skep 'n nuwe eenheid
- Plaas die struktuur van die klas in die Interface-gedeelte van
die eenheid
- Plaas die kode vir die metode(s) in die Implementation-gedeelte
- Voeg nuwe eenheid tot die hoofprogram se uses-gedeelte.
- Stoor en voer uit
|

HOOFPROGRAM:
Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ComCtrls, Spin, MoviesClass;
//Voeg nuwe eenheid by
type
TfrmFilms = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
SpinEdit1: TSpinEdit;
Button1: TButton;
RichEdit1: TRichEdit;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmFilms: TfrmFilms;
Movies : TMovies;
implementation
{$R *.dfm}
{ TMovie }
procedure TfrmFilms.FormCreate(Sender: TObject);
begin
Movies := TMovies.Create;
end;
procedure TfrmFilms.Button1Click(Sender: TObject);
begin
Movies.fName := Edit1.Text;
Movies.fGenre := Edit2.Text;
Movies.fDuration := SpinEdit1.Value;
end;
procedure TfrmFilms.Button2Click(Sender: TObject);
var
sOutput : String;
begin
sOutput := Movies.getDuration;
RichEdit1.Lines.Add(sOutput);
end;
procedure TfrmFilms.Button3Click(Sender: TObject);
begin
Movies.Free;
//Destruktor: maak geheue
skoon
Application.Terminate;
end;
end.
KLAS IN EIE EENHEID: MovieClass.pas
unit MoviesClass;
//Skep 'n nuwe eenheid
interface
uses SysUtils;
//Voeg by sodat IntToStr gebruik kan word
type
//Struktuur van klas in Interface-gedeelte
TMovies = class
fName : String[25];
fGenre : String[10];
fDuration : Integer;
function getDuration: String;
constructor Create;
end;
implementation //Kode
vir metode(s) in Implementation-gedeelte
constructor TMovies.Create;
//Maak geheue beskikbaar
begin
inherited Create;
fName := '';
fGenre := '';
fDuration := 0;
end;
function TMovies.getDuration: String;
var
iHour, iMin : Integer;
sDuration : String;
begin
iHour := fDuration DIV 60;
iMin := fDuration - (iHour * 60);
sDuration := IntToStr(iHour) + ' hours and ' + IntToStr(iMin) + '
Minutes.';
Result := fName + #9 + fGenre + #9 + sDuration;
end;
end. |
Sien ook die voorbeeldvraag sowel
as vraag 12 in die
Graad 12 voorbeeldvraestel.
Bronne raadgepleeg:
- Object Oriented Programming in Delphi - A Guide for Beginners
http://www.webtechcorp.co.uk/web-developer-training-delphi-article-oop.htm
- Object Oriented Programming in Delphi. Pieter Blignaut (Jan. 2008)
- Enjoy Delphi. Part 2. A. Bezuidenhout, K. Gibson, C. Noomè, U.
Wassermann, M. Zeeman (S. Jacobs, ed.) (2005) - p. 207-252
- Creative Programming in Delphi. Part 2. M. Havenga & C. Moraal. (2007) -
p. 135-156
- Introducing Delphi Programming: Theory through practice. J. Barrow, L.
Miller, K. Malan & H. Gelderblom. (2005) – p. 486-520 |