Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизСоздание указателя на экземпляр класса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c