TGesellschafterChangeEvent =
procedure(Sender: TObject; Obj: TGesellschaftsname)
of object;
TGesellschafterObjListe =
class(TObjectList)
private
FOnChange : TGesellschafterChangeEvent;
protected
function getItem(
Index: Integer): TGesellschaftsname;
virtual;
procedure setItem(
Index: Integer; Objekt: TGesellschaftsname);
virtual;
public
function Add(Objekt: TGesellschaftsname): Integer;
virtual;
function NewRecord(Objekt: TGesellschaftsname): Integer;
virtual;
function Remove(Objekt: TGesellschaftsname): Integer;
virtual;
function IndexOf(Objekt: TGesellschaftsname): Integer;
virtual;
procedure Insert(
Index: Integer; Objekt: TGesellschaftsname);
virtual;
property Items[
index: Integer]: TGesellschaftsname
read getItem
write setItem;
default;
property OnChange: TGesellschafterChangeEvent
read FOnChange
write FOnChange;
end;
{...}
procedure TMainForm.GesellschafterListeChange(Sender: TObject; Obj: TGesellschaftsname);
begin
with DM_Main.UniQuery_Temp
do
begin
SQL.Text := '
EXECUTE PROCEDURE SP_NEW_GESELLSCHAFTER (:stammnr, :name, :B1, :B2, :D2);';
ParamByName('
StammNr').AsInteger := Obj.StammNr;
ParamByName('
Name').AsString := Obj.Gesellschaftername;
ParamByName('
B1').AsFloat := Obj.Zeichnungskapital;
ParamByName('
B2').AsFloat := Obj.ZahlenderBetrag;
ParamByName('
D2').AsDateTime := Obj.ZweiteZahlung;
Execute;
end;
end;
{...}
function TGesellschafterObjListe.Add(Objekt: TGesellschaftsname): Integer;
begin
Result :=
inherited Add(Objekt);
end;
function TGesellschafterObjListe.getItem(
Index: Integer): TGesellschaftsname;
begin
Result := TGesellschaftsname(
inherited Items[
Index]);
end;
function TGesellschafterObjListe.IndexOf(Objekt: TGesellschaftsname): Integer;
begin
Result :=
inherited IndexOf(Objekt);
end;
procedure TGesellschafterObjListe.Insert(
Index: Integer; Objekt: TGesellschaftsname);
begin
inherited Insert(
Index, Objekt);
end;
function TGesellschafterObjListe.NewRecord(Objekt: TGesellschaftsname): Integer;
begin
Result :=
inherited Add(Objekt);
if Assigned(FOnChange)
then
FOnChange(Self, Objekt);
end;
function TGesellschafterObjListe.Remove(Objekt: TGesellschaftsname): Integer;
begin
Result :=
inherited Remove(Objekt);
end;
procedure TGesellschafterObjListe.setItem(
Index: Integer; Objekt: TGesellschaftsname);
begin
inherited Items[
Index] := Objekt;
if Assigned(FOnChange)
then
FOnChange(Self, Objekt);
end;