AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene TObjectList

Ein Thema von RWarnecke · begonnen am 23. Jan 2010 · letzter Beitrag vom 23. Jan 2010
 
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Eigene TObjectList

  Alt 23. Jan 2010, 17:08
Hallo zusammen,

ich habe nach dem Tutorial mir meine eigene TObjectList zusammengebaut :
Delphi-Quellcode:
TCustomObjectList = class(TObjectList)
  protected
    function getItem(Index: Integer): TKlasse; virtual;
    procedure setItem(Index: Integer; Objekt: TKlasse); virtual;
  public
    function Add(Objekt: TKlasse): Integer; virtual;
    function NewRecord(Objekt: TKlasse): Integer; virtual;
    function Remove(Objekt: TKlasse): Integer; virtual;
    function IndexOf(Objekt: TKlasse): Integer; virtual;
    procedure Insert(Index: Integer; Objekt: TKlasse); virtual;
    function First: TKlasse; virtual;
    function Last: TKlasse; virtual;
    property Items[index: Integer]: TKlasse read getItem write setItem; default;
  end;

  function TCustomObjectList.getItem(Index: Integer): TKlasse;
  begin
    Result := TKlasse(inherited Items[Index]);
  end;

  procedure TCustomObjectList.setItem(Index: Integer; Objekt: TKlasse);
  begin
    inherited Items[Index] := Objekt;
  end;

  function TCustomObjectList.Add(Objekt: TKlasse): Integer;
  begin
    Result := inherited Add(Objekt);
    Objekt.NewRecord := False;
  end;

  function TCustomObjectList.NewRecord(Objekt: TKlasse): Integer;
  begin
    Result := inherited Add(Objekt);
    Objekt.NewRecord := True;
  end;

  function TCustomObjectList.First: TKlasse;
  begin
    Result := inherited TKlasse(First());
  end;

  function TCustomObjectList.IndexOf(Objekt: TKlasse): Integer;
  begin
    Result := inherited IndexOf(Objekt);
  end;

  procedure TCustomObjectList.Insert(Index: Integer; Objekt: TKlasse);
  begin
    inherited Insert(Index, Objekt);
  end;

  function TCustomObjectList.Last: TKlasse;
  begin
    Result := inherited TKlasse(Last());
  end;

  function TCustomObjectList.Remove(Objekt: TKlasse): Integer;
  begin
    Result := inherited Remove(Objekt);
  end;
In meiner TKlasse reagiere ich in den Set-Proceduren entsprechend auf die Variable NewRecord. Das funktioniert auch wunderbar. Nur wie kann ich die Variable NewRecord ebenfalls auf True ändern, wenn ein Wert in der Klasse neu geschrieben wird ? Dieses darf aber nur passieren, wenn nicht die Funktion Add ausgeführt wird. Bei Add muss der Wert NewRecord=false sein.

Im Moment löse ich das Setzen der Variable in dem OnExit-Event der Eingabe-Komponente.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz