Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

OOP--> Constructor richtig verwendet???

  Alt 4. Jan 2006, 12:41
Hallo,

ich bin gerade dabei mich so richtig intensiv mit OOP und Delphi zu beschäftigen. Ich habe mal versucht eine Klasse TNavi zu erzeugen. Die Klasse ist eine eigenständige klasse und wird nicht von einer anderen abgeleitet (vererbt)

dann habe ich noch einen constructor und eine Methode die einen button erzeugt. das funktioniert auch alles. meine frage ist jetzt nur, ob ich den construktor richtig verwendet habe??? ob ich seine eigentlich funktion richtig verwendet habe. Könnt ihr euch mal meinen code anschauen??? Für anregungen bin ich immer offen.

Hier mein Code:

Delphi-Quellcode:
unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UKlassen;

type
  TFMain = class(TForm)
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FMain: TFMain;

implementation

{$R *.dfm}

procedure TFMain.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if shift=[] then begin
    case key of
      27 : Close;
    end;
  end;
end;

procedure TFMain.FormCreate(Sender: TObject);
  var n : TNavi; // Menu
begin
  // Menu erzeugen
  n:=TNavi.Create(FMain, 'Button');
end;

end.
und hier die unit wo die klasse drinn ist.

Delphi-Quellcode:
unit UKlassen;

interface

uses
  Forms, StdCtrls;

type
  TNavi = class
    constructor Create(f : TForm; c : String);
    procedure Menu();
  private
    form : TForm;
    button : TButton;
    caption : String;
  public

  end;

implementation

constructor TNavi.Create(f : TForm; c : String);
begin
  form:=f;
  caption:=c;
  Menu();
end;

procedure TNavi.Menu();
begin
  button:=TButton.Create(nil);
  button.Caption:=caption;
  button.Top:=10;
  button.Left:=10;
  button.Parent:=form;
end;

end.
  Mit Zitat antworten Zitat