AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Object-Pascal / Delphi-Language Delphi TObjectList-Descendant mit Templates
Thema durchsuchen
Ansicht
Themen-Optionen

TObjectList-Descendant mit Templates

Ein Thema von alcaeus · begonnen am 19. Jun 2005 · letzter Beitrag vom 25. Jul 2006
 
Dax
(Gast)

n/a Beiträge
 
#2

Re: TObjectList-Descendant mit Templates

  Alt 25. Jul 2006, 23:59
stoxx hat in diesem Beitrag eine Version dieses Templates vorgestellt, das sich einfach und ohne die jedi.inc benutzen lässt:

Delphi-Quellcode:
{$IFDEF DEVELOP_NEVER}  // never define
unit templateTListU;

interface


uses
  Sysutils,
  Classes,
  Contnrs;

type
  _TObjectListItem = TObject;
{$ENDIF DEVELOP_NEVER}


{$IFDEF _DECLARE_SECOND_PASS}
   {$DEFINE _SECOND_PASS}
   {$UNDEF _DECLARE_SECOND_PASS}
{$ENDIF _DECLARE_SECOND_PASS}



{$IFNDEF _SECOND_PASS}
type

  _TObjectlist = class
  private
  protected
    fList: TObjectList;
    function GetItems(_Idx: integer): _TObjectListItem;
    function GetCount: integer;
  public
    constructor Create;
    destructor Destroy; override;
    function Add(_Item: _TObjectListItem): integer;
    function Remove(_Item: _TObjectListItem): integer;
    procedure Clear;
    property Items[_Idx: integer]: _TObjectListItem read GetItems; default;
    property Count: integer read GetCount;
  end;
{$DEFINE _DECLARE_SECOND_PASS}
{$ENDIF _SECOND_PASS}


{$IFDEF DEVELOP_NEVER}
implementation
{$ENDIF DEVELOP_NEVER}


{$IFDEF _SECOND_PASS}


{ _TObjectlist }

constructor _TObjectlist.Create;
begin
  inherited Create;
  fList := TObjectList.Create;
end;

destructor _TObjectlist.Destroy;
begin
  fList.Free;
  inherited;
end;

function _TObjectlist.Add(_Item: _TObjectListItem): integer;
begin
  Result := fList.Add(_Item);
end;

function _TObjectlist.Remove(_Item: _TObjectListItem): integer;
begin
  Result := fList.Remove(_Item);
end;

procedure _TObjectlist.Clear;
begin
  fList.clear;
end;

function _TObjectlist.GetItems(_Idx: integer): _TObjectListItem;
begin
  Result := fList[_Idx] as _TObjectListItem;
end;

function _TObjectlist.GetCount: integer;
begin
  Result := fList.Count;
end;
{$UNDEF _SECOND_PASS}
{$ENDIF _Second_PASS}


//{$WARNINGS off}
Ein kleines Beispiel in Form einer streng typisierten Liste von Labels hat er auch gleich mitgeliefert:
Delphi-Quellcode:
unit u_MemoList;

interface

uses
  Sysutils,
  Classes,
  Contnrs,
  StdCtrls;


type
  _TObjectListItem = TMemo;
    {$I templateTListU.pas}
  TMemoList = class(_TObjectList)
  end;


implementation
  {$I templateTListU.pas}
  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 20:47 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-2025 by Thomas Breitkreuz