Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2009, 12:40   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Подкорректирова tList

Все привет!
Такой вопрос:
Есть (будет) myList: tList и указателями на структуры, ну типа:
Код:
type
   pMyRec = ^tMyRec;
   tMyRec = record
      intValue: integer;
      boolValue: boolean;
      strValue: string;
   end;
Немного западло постоянно писать:
tMyRec(myList.items[X]^).intValue := random($FFFFFE)+1;
или
tMyRec(myList.items[X]).intValue := random($FFFFFE)+1;

Хорошо было бы, если можно было-бы переделать tList так, что-бы он содержал не просто pointer-ы, а pMyRec-ы.

Я посмотрел на tObjectList (юнит Contnrs), так там целая куча функций объявлена заного и перекрывает унаследованные от tList

Код:
TObjectList = class(TList)
  private
    FOwnsObjects: Boolean;
  protected
    procedure Notify(Ptr: Pointer; Action: TListNotification); override;
    function GetItem(Index: Integer): TObject;
    procedure SetItem(Index: Integer; AObject: TObject);
  public
    constructor Create; overload;
    constructor Create(AOwnsObjects: Boolean); overload;

    function Add(AObject: TObject): Integer;
    function Extract(Item: TObject): TObject;
    function Remove(AObject: TObject): Integer;
    function IndexOf(AObject: TObject): Integer;
    function FindInstanceOf(AClass: TClass; AExact: Boolean = True; AStartAt: Integer = 0): Integer;
    procedure Insert(Index: Integer; AObject: TObject);
    function First: TObject;
    function Last: TObject;
    property OwnsObjects: Boolean read FOwnsObjects write FOwnsObjects;
    property Items[Index: Integer]: TObject read GetItem write SetItem; default;
  end;
А мне понадобятся листы на разные указатели. Что, мне несколько раз такую структуру объявлять?
Altera вне форума Ответить с цитированием
Старый 11.09.2009, 13:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обычно в таком случае делают новый класс, наследующий TList, но переопределяют нужные его свойства.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.09.2009, 20:24   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Обычно в таком случае делают новый класс, наследующий TList, но переопределяют нужные его свойства.
Да уж, этого я и боялся...............
Придётся писать
pMyRec(myList.items[X]).intValue := random($FFFFFE)+1;
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
tList с указателями на методы Altera Общие вопросы Delphi 3 19.08.2009 15:25
Запись структуры TList в файл, проблема с длинными строками типа AnsiString Xardas Общие вопросы Delphi 2 24.05.2009 20:18
Сортировка TList prikolist Общие вопросы C/C++ 0 27.04.2009 21:48
Tlist - Сортировка MAcK Компоненты Delphi 1 03.09.2007 15:24
Блокирование при работе с TList. Riman Общие вопросы Delphi 7 31.05.2007 15:28