TZahlungsartObjListe =
class(TObjectList)
private
FOnChange : TZahlungsartListeAddEvent;
FModifyAction : TModifyActionList;
FNewRecord : Boolean;
procedure DeleteRecord(Klasse: TZahlungsart);
protected
function getItem(
Index: Integer): TZahlungsart;
virtual;
procedure setItem(
Index: Integer; Objekt: TZahlungsart);
virtual;
procedure Notify(Ptr: Pointer; Action: TListNotification);
override;
public
function Add(Objekt: TZahlungsart): Integer;
virtual;
function NewRecord(Objekt: TZahlungsart): Integer;
virtual;
function Remove(Objekt: TZahlungsart): Integer;
virtual;
function IndexOf(Objekt: TZahlungsart): Integer;
virtual;
procedure Insert(
Index: Integer; Objekt: TZahlungsart);
virtual;
property Items[
index: Integer]: TZahlungsart
read getItem
write setItem;
default;
property ModifyAction : TModifyActionList
read FModifyAction
write FModifyAction;
property OnChange: TZahlungsartListeAddEvent
read FOnChange
write FOnChange;
end;
{ TZahlungsartObjListe }
function TZahlungsartObjListe.Add(Objekt: TZahlungsart): Integer;
begin
FNewRecord := False;
Result :=
inherited Add(Objekt);
end;
procedure TZahlungsartObjListe.DeleteRecord(Klasse: TZahlungsart);
begin
with DM_Main.UniQuery_Zahlungsart
do
begin
SQL.Text := '
DELETE FROM Zahlungsarten WHERE ID = :ID AND Zahlungsart = :Zahlungsart;';
ParamByName('
ID').AsInteger := Klasse.FID;
ParamByName('
Zahlungsart').AsString := Klasse.FZahlungsart;
Execute;
end;
end;
function TZahlungsartObjListe.getItem(
Index: Integer): TZahlungsart;
begin
Result := TZahlungsart(
inherited Items[
Index]);
end;
function TZahlungsartObjListe.IndexOf(Objekt: TZahlungsart): Integer;
begin
Result :=
inherited IndexOf(Objekt);
end;
procedure TZahlungsartObjListe.Insert(
Index: Integer;
Objekt: TZahlungsart);
begin
inherited Insert(
Index, Objekt);
end;
function TZahlungsartObjListe.NewRecord(Objekt: TZahlungsart): Integer;
begin
FNewRecord := True;
Result :=
inherited Add(Objekt);
end;
procedure TZahlungsartObjListe.Notify(Ptr: Pointer; Action: TListNotification);
begin
if (Assigned(FOnChange))
and (FNewRecord)
and (Action <> lnDeleted)
then
begin
FNewRecord := False;
FOnChange(Self, TZahlungsart(Ptr));
end;
if (FModifyAction = lnDelete)
then
begin
DeleteRecord(TZahlungsart(Ptr));
end;
inherited Notify(Ptr, Action);
end;
function TZahlungsartObjListe.Remove(Objekt: TZahlungsart): Integer;
begin
Result :=
inherited Remove(Objekt);
end;
procedure TZahlungsartObjListe.setItem(
Index: Integer;
Objekt: TZahlungsart);
begin
inherited Items[
Index] := Objekt;
end;