Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание классов [D7, XP]


Tab ©   (2006-10-18 19:46:00) 

Создал следующие классы:
type
  MainC = class
   t: integer;    
   //Cl1
   pt_l: array [1..2] of integer;
   fr: boolean;
   //Cl2
   pt: array of Integer;
   procedure Calc; virtual; abstract;
 end;
type
 Cl1 = class (MainCLass)
constructor Create;
   procedure Calc; override;
 end;
 
 type
  Cl2 = class (MainCLass)
   constructor Create;
   procedure Calc; override;
 end;

-- в программе делаю следующим образом:
var
  List_obj: array [1..100] of MainCLass;
 ..
 List_obj[1]:=Cl1.Create;
 List_obj[2]:=Cl2.Create;
 ..
 for i:=1 to 2 do
List_obj[1]:=calc;

-- но Calc не вызвается ни для Cl1 ни для Cl2


Tab   (2006-10-18 20:24:00) [1]

разобрался, вопрос закрыт. Kolan, Loginov Dmitry спасибо за участие!


Tab   (2006-10-18 20:18:00) [2]

вот более полная картина

type
  MFigure_= class
   MPen : TGPPen;
   objType: integer;
   //MLine
   pt_l: array [1..2] of TGPPoint;
   first_p_set: boolean;
   //MPoly
   points_count: integer;
   pt: array of  TGPPoint;
   //
   procedure Draw(gp: TGPGraphics); virtual; abstract;
   procedure Calc; virtual; abstract;
 end;

type
 MLine = class (MFigure_)
   procedure Draw(gp: TGPGraphics); override;
   procedure Calc; override;
 end;

 type
  MPoly = class (MFigure_)
   points_count: integer;
   first_p_set: boolean;
   constructor Create; overload;
   procedure Draw(gp: TGPGraphics); override;
   procedure Calc; override;
 end;

procedure MLine.Draw(gp: TGPGraphics);
begin
 gp.DrawLine(MPen,pt_l[1],pt_l[2]);
end;

procedure MPoly.Draw(gp: TGPGraphics);
begin
 gp.DrawPolygon(MPen, PGPPoint(@pt[0]), points_count);
end;


Kolan   (2006-10-18 20:13:00) [3]


> нет , при копировании ошибся.

Тогда с чего ты взял что они не вызываются? Кроме того

List_obj: array [1..100] of MainCLass;

Cl1 = class (MainCLass)

Cl2 = class (MainCLass)


А вверхуууу:

MainC = class


Tab   (2006-10-18 20:10:00) [4]


> Дык это и есть ошибка?

нет , при копировании ошибся.


> А где реализация методов?

расчеты, рисование на канве


Kolan   (2006-10-18 19:55:00) [5]


>
>
> да, опечатка.  сорри.
>

Дык это и есть ошибка?


Tab   (2006-10-18 19:53:00) [6]


> List_obj[1].Calc так может?

да, опечатка.  сорри.


Kolan   (2006-10-18 19:51:00) [7]


> List_obj[1]:=calc;

Чтоо это?

List_obj[1].Calc так может?

PS
 Неужели перед названием класса сложно поставить букву "T"


Loginov Dmitry   (2006-10-18 19:50:00) [8]

А где реализация методов?


Наверх

Титульная страница Поиск, карта сайта Написать письмо