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

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

Проблема с DelphiX [D6, Win95/98]


Agent[007] ©   (2003-03-29 11:00:00) 

Почему картинка не выводится на экран?

procedure TForm1.DXDraw1Initialize(Sender: TObject);
var s:TImageSprite;
begin
s:=TImageSprite.Create(DXSpriteEngine1.Engine);
s.Image:=DXImageList1.Items.Find("p");
s.X:=40;
s.Y:=40;
s.Width:=s.Image.Width;
s.Height:=s.Image.Height;
end;


Agent[007]   (2003-03-30 17:32:00) [1]

THANKS


Плохой человек   (2003-03-30 14:46:00) [2]

Ник такой, потому что настоящий в бегах (преследуют). А очистить экран можно, надо перед началом рисования, ну когда надо очищать, написать:

DXDraw1.Surface.Fill(0);

Причём 0 - это чёрный цвет.


Agent[007]   (2003-03-30 06:34:00) [3]

Всем спасибо огромное за такой прекрасный сайт и спасибо всем, кто мне помог или просто хотел, но не знал как.

И если вы меня ещё терпите, то ответьте, как очищать экран(DXDraw
или DXSpriteEngine), то есть чтобы при перемещении:

s.X:=s.X+1;
DXSpriteEngine1.Draw;
DXDraw1.Flip;

Не оставался след за объектом.


Agent[007]   (2003-03-30 06:09:00) [4]

Спасибо.
PS: А почему у тебя такой ник, а не "Просто Хороший Человек" ?


Плохой человек   (2003-03-29 17:59:00) [5]

А где DXDraw1.Flip??????


Agent[007]   (2003-03-29 16:03:00) [6]

А теперь понял.
Там в конце надо было написать DXDraw1.Refresh
У меня теперь другой вопрос :)

procedure TForm1.DXTimer1Timer(Sender: TObject;LagCount:Integer);
begin
DXSpriteEngine1.DXDraw:=DXDraw1;
s.X:=s.X+2;
DXSpriteEngine1.Draw;
end;

Он выдаёт ошибку.


Agent[007]   (2003-03-29 15:47:00) [7]

Он всёравно не выводит.
Это может зависеть от того, что я не поменял

TForm1 = class(TForm)

на

TForm1 = class(TDXForm)

???


Программер Михаил   (2003-03-29 13:44:00) [8]

Рассуждаем: нужно нарисовать картинку а она почему-то не рисуется(установили все проперти)->значит должна быть процедура которой надо все это перерисовать на DxDraw1.Surface -> такая процедура есть! и имя ей - DXSpriteEngine.Draw-> может возникнуть другая проблема - все равно не рисуется -> значит НУЖНО установить свойство DxSpriteEngine1.DxDraw в DxDraw1
Вот правильный код:

procedure TForm1.DXDraw1Initialize(Sender: TObject);
var s:TImageSprite;
begin
DxSpriteEngine1.DxDraw:=DxDraw1;
s:=TImageSprite.Create(DXSpriteEngine1.Engine);
s.Image:=DXImageList1.Items.Find("p");
s.X:=40;
s.Y:=40;
s.Width:=s.Image.Width;
s.Height:=s.Image.Height;
DxSpriteEngine1.Draw;
end;

В хелпе по DelphiX все про это сказано!


Наверх

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