|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.05.2007, 14:20 | #1 |
Пользователь
Регистрация: 04.05.2007
Сообщений: 14
|
Динамический список (срочно!)
Товарищи, срочно нужна помощь!
Необходимо создать динамический список из графических объектов (тоже динамических). Вот как выглядит часть кода с созданием списка: type ... OrtReg=^ort; Ort=record elem:TPoint; next:ortreg; end; TList=Class constructor Create; destructor Destroy; virtual; private Orten: OrtReg; public procedure Add(elem: TPoint); procedure Report; end; ...... constructor TList.Create; begin orten:=nil; end; destructor TList.Destroy; begin List1.Free; end; Procedure TList.Add(Elem:TPoint); Var N:Ortreg; begin N^.elem:=Elem; N^.next:=Orten; Orten:=N; end; procedure TList.Report; Var N:OrtReg; begin N:=Orten; while N<>Nil do begin N^.elem.Show; {вот на этой строке не компилируется} inherited; N:=N^.next; end; end; Вообще это калька с Паскаля (на Паскале решение задачи есть), но здесь не прокатила. Заданы три класса фигур - линия, эллипс и прямоугольник (все наследуются от класса TPoint). У каждого класса (кроме TPoint) есть конструктор, деструктор, процедура Show и процедура Hide. Все деструкторы, Show'ы и Hide'ы виртуальные Что делать? |
05.05.2007, 23:03 | #2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Я так понял, что метода Show у TPoint нет или он абстрактный. Вот так делай:
(N^.elem as TLine).Show; |
06.05.2007, 15:34 | #3 |
Пользователь
Регистрация: 04.05.2007
Сообщений: 14
|
У TPoint есть только коструктор Create. Не знаю, нужны ли в нем Show и Hide. В Паскале я без них обходился. Но вариант as TLine - это не есть правильно, потому что в списке у меня будут не только линии, но и круги с прямоугольниками. Подгонять, как у меня что по порядку идет, я не могу, да и права не имею.
Кстати, тут еще непонятка выяснилась. Почему я не могу вызвать процедуру Show или Hide непосредственно из класса: TLine.Show ? Если из переменной класса TLine - то можно, а так - хрен... |
08.05.2007, 00:21 | #4 | ||
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Цитата:
(N^.elem as TLine).Show; (TLine для примера). Цитата:
|
||
08.05.2007, 16:08 | #5 |
Пользователь
Регистрация: 04.05.2007
Сообщений: 14
|
Да, я выяснил, в чем дело. Причина в том, что руки кривые. В классе TPoint эти методы нужны. Как я их прописал - все встало на свои места.
Но все равно, ..., не работает. Какую-то ошибку выдает - с памятью че-то вроде... Код проги прилагается |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Данные-проверка-список (список на другом листе) | Inbox | Microsoft Office Excel | 7 | 26.12.2008 01:43 |
[Delphi] TStringGrid + динамический список | dee_lv | Помощь студентам | 3 | 27.04.2008 03:00 |
динамический массив | Dimon | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 21.03.2008 18:08 |
Динамический список...на Delphi | Olgasato | Помощь студентам | 6 | 11.12.2007 15:02 |