Einzelnen Beitrag anzeigen

Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#1

eigenem Objekt Ereignisse hinzufügen

  Alt 13. Nov 2008, 22:37
Hi

Ich beschäftige mich gerade etwas näher mit OOP. Funktioniert auch soweit ganz gut. Jetzt hätte ich gern gewußt, wie man seinem eigenen Objekt Ereignisse spendieren kann.
In der Hilfe stand irgendwas von TNotifyEvent, nur leider ist da bei mir Feierabend.
Nehmen wir einfach mal an, daß ein Ereignis ausgelöst werden soll, wenn der Name der Person geändert wird. Was müßte ich da machen?

Delphi-Quellcode:
unit Unit_Main;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TPerson = class
  private
    Name:string;
    FirstName:string;
  public
    constructor Create();
    procedure setName(newName:string);
    procedure setFirstName(newFirstname:string);
    function getName():string;
    function getFirstName():string;
  end;

var
  Form1: TForm1;
  Person:TPerson;

implementation

{$R *.dfm}

constructor TPerson.Create;
begin
  inherited create;
  Name:='';
  FirstName:='';
end;

procedure TPerson.setName(newName:string);
begin
  Name:=newName;
end;

procedure TPerson.setFirstName(newFirstName:string);
Begin
  FirstName:=newFirstName;
End;

function TPerson.getName():string;
Begin
  result:=Name;
end;

function TPerson.getFirstName():string;
Begin
  result:=FirstName;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Person:=TPerson.Create;
  Person.setName('Test_Nachname');
  Person.setFirstName('Test_Vorname');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Listbox1.Clear;
  Listbox1.Items.add(Person.getName());
  Listbox1.Items.add(Person.getFirstName());
end;

end.
  Mit Zitat antworten Zitat