![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание классов [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]А где реализация методов?