DELPHI: Skep en gebruik van klasse
 

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

Terug na Delphi-hulpbronindeks




Terug na Tuisblad

© JAK Olivier (2008)

Webwerf: http://www.jako.nom.za/
E-pos: olivier@teachitza.com