Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание класса, помогите с потомком 
:(
    Опции темы
kuzyara
Дата 29.10.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



Я хочу создать массив переменных типа TIntegerList (такой есть в AcidUtils в AcedContainers). Но так как ооп это хорошо, хочу сделать это на подобии TStringList, ну чтобы там add, count, delete ...

вот что я смог написать:
Код

  TIntLAray = class (TList)
  protected
    function Get(Index: Integer): TIntegerList;
    procedure Put(Index: Integer; Item: TIntegerList);
  public
    function Add(Item: TIntegerList): Integer;
    procedure Delete(Index: Integer);
    property Count: Integer read FCount write SetCount;
    property Items[Index: Integer]: TIntegerList read Get write Put; default;
  end;


это я скопировал из TList и заменил Pointer на TIntegerList. Но ведь это влекёт за собой и описание FCount, SetCount из property Count, и т.д. Неужели чтобы создать список не из строк, а из TIntList, придется переписывать весь класс? Всё же одинаковое... Как облегчить себе участь?
Спасибо.
зы: знаете какой-нибудь хороший материал про то, чем protected отличается от private, а override от overload? 
--------------------
подпись
PM MAIL   Вверх
Beltar
Дата 30.10.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



1) На кой фиг тебе вообще даже знать как там устроено Count? Его родной функционал тебя не устраивает?
2) Что-то я не понял архитектуры. Тебе нужно создать список переменных, что наиболее вероятно, или список массивов, как я понял из кода?
3) 

Цитата

Но так как ооп это хорошо, хочу сделать это на подобии TStringList


А причем тут вообще TStringList? Ты же сам TList используешь.

Цитата

чем protected отличается от private


private это кишки, а protected все то, что в дальнейшем может быть перекрыто в наследниках. Собственно все компоненты VCL наследуются так (на примере TreeView):
TCustomControl->TCustomTreeView (полнофункциональное дерево, но все его члены имеют видимость не выше protected) ->TTreeView (все члены, которые должны быть доступны вынесены в public и published). Если понадобиться наследник у которого какое-то свойство д/б недоступным (например, можно набор меток сделать, которые бы имели свойство Value разных типов и выводили бы его строковое значение, в этом случае тебе public\published Caption просто не нужен и даже вреден), то наследоваться надо не от конечного компонента, а от Custom'а.

Цитата

а override от overload?


Совершенно разные вещи, overload просто позволяет иметь несколько процедурок с одним именем, но разными параметрами. override перекрывает динамические или виртуальные методы.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
MetalFan
Дата 30.10.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Beltar, а вообще, мое имхо, что автору надо почитать книжку по основам программирования в делфи, раз уж он override от overload не отличает...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Snowy
Дата 30.10.2009, 15:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Если дельфи 2009 и выше, то создаётся в одну строчку 
Код
TList<Integer>
 smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.