Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

Создание указателя на экземпляр класса   Найти похожие ветки 

 
Ezh   (2005-09-21 23:31) [0]

Здравствуйте!
Мне динамически, нужно создавать и удалять экземпляры класса, которые являются указателем и заносить из в Лист тоесть:


type
 TEnemy = class
 private
   x,y: Integer;
   res: TBitmap;
   constructor create;
   destructor destroy;
   procedure Draw;
   procedure Move;
   procedure Check;
 end;

------
var
 Enemy: ^TEnemy;
 MyEnemyList: TList;

------

procedure EnemyCreate;
begin
 New(Enemy);
 Enemy^.x:= GetSystemMetrics(SM_CXSCREEN) + Random(500);
 Enemy^.y:= Round(GetSystemMetrics(SM_CYSCREEN)/2);
 enemy^.res:= TBitmap.Create;
 enemy^.res.Transparent:= True;
 enemy^.res.LoadFromFile("Enemy1.bmp");
 MyEnemyList.Add(Enemy);
end;

//Вот только нужно сначала скриэйтить экземпляр класса TEnemy,  я делаю так :

procedure TForm1.FormCreate(Sender: TObject);
begin
 enemy^:= TEnemy.create;
end;

//Но тут полная лажа...



Скажите, можно ли вообще создавать указатель на свой класс???И как его в таком случае скриэйтить?


 
злобная танька   (2005-09-21 23:49) [1]

ерунда какая-то..
почитай в справке про классы. В переменной Enemy: TEnemy - уже содержится указатель.
и используй TObjectList вместо TList


 
Lamer@fools.ua ©   (2005-09-21 23:51) [2]

> Enemy: ^TEnemy;

Учить матчасть.

В случае объявления
Enemy: TEnemy
Enemy - указатель на экземпляр класса.


 
злобная танька   (2005-09-21 23:53) [3]

примерно так:

------
var
MyEnemyList: TObjectList;  //список твоих Enemy

------

procedure TEnemy.Create;  //описание конструктора
begin
x:= GetSystemMetrics(SM_CXSCREEN) + Random(500);
y:= Round(GetSystemMetrics(SM_CYSCREEN)/2);
res:= TBitmap.Create;
res.Transparent:= True;
res.LoadFromFile("Enemy1.bmp");
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 TMyEnemyList.Add(TEnemy.Create);  //создаем экземпляр и добавляем в список
end;


 
Ezh   (2005-09-22 00:11) [4]

Всем большое спасибо, все вышло!



Страницы: 1 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.069 c
1-1127712035
Ded_Matvey
2005-09-26 09:20
2005.10.16
меняется шрифт в перерисованой канве


4-1124002284
GreySkil
2005-08-14 10:51
2005.10.16
Права доступа


11-1108630956
thaddy
2005-02-17 12:02
2005.10.16
ClsStyle or CS_NOCLOSE doesn t work properly


8-1117077210
ksa3003
2005-05-26 07:13
2005.10.16
Распознавание текста


9-1116326699
VVV-First
2005-05-17 14:44
2005.10.16
GlScene, Objects