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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2007, 14:20   #1
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 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'ы виртуальные
Что делать?
Achtung-Partizanen вне форума Ответить с цитированием
Старый 05.05.2007, 23:03   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Я так понял, что метода Show у TPoint нет или он абстрактный. Вот так делай:

(N^.elem as TLine).Show;
Carbon вне форума Ответить с цитированием
Старый 06.05.2007, 15:34   #3
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

У TPoint есть только коструктор Create. Не знаю, нужны ли в нем Show и Hide. В Паскале я без них обходился. Но вариант as TLine - это не есть правильно, потому что в списке у меня будут не только линии, но и круги с прямоугольниками. Подгонять, как у меня что по порядку идет, я не могу, да и права не имею.
Кстати, тут еще непонятка выяснилась. Почему я не могу вызвать процедуру Show или Hide непосредственно из класса: TLine.Show ? Если из переменной класса TLine - то можно, а так - хрен...
Achtung-Partizanen вне форума Ответить с цитированием
Старый 08.05.2007, 00:21   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Не знаю, нужны ли в нем Show и Hide.
Нужны, если надо вызвать их из предка (хотя бы абстрактные). Если этих методов нет, тогда нужно делать так

(N^.elem as TLine).Show;

(TLine для примера).

Цитата:
Почему я не могу вызвать процедуру Show или Hide непосредственно из класса: TLine.Show ?
Потому что они определены для объекта, а не для класса.
Carbon вне форума Ответить с цитированием
Старый 08.05.2007, 16:08   #5
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

Да, я выяснил, в чем дело. Причина в том, что руки кривые. В классе TPoint эти методы нужны. Как я их прописал - все встало на свои места.
Но все равно, ..., не работает. Какую-то ошибку выдает - с памятью че-то вроде...
Код проги прилагается
Вложения
Тип файла: rar Прога.rar (1.8 Кб, 18 просмотров)
Achtung-Partizanen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные-проверка-список (список на другом листе) 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