![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание указателя на экземпляр класса [D6, WinXP]
Ezh © (2005-09-21 23:31:00)Здравствуйте!
Мне динамически, нужно создавать и удалять экземпляры класса, которые являются указателем и заносить из в Лист тоесть:
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;
//Но тут полная лажа...
Скажите, можно ли вообще создавать указатель на свой класс???И как его в таком случае скриэйтить?
Ezh (2005-09-22 00:11:00) [1]Всем большое спасибо, все вышло!
злобная танька (2005-09-21 23:53:00) [2]примерно так:
------
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;
Lamer@fools.ua (2005-09-21 23:51:00) [3]> Enemy: ^TEnemy;
Учить матчасть.
В случае объявления
Enemy: TEnemy
Enemy - указатель на экземпляр класса.
злобная танька (2005-09-21 23:49:00) [4]ерунда какая-то..
почитай в справке про классы. В переменной Enemy: TEnemy - уже содержится указатель.
и используй TObjectList вместо TList