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

Вниз

Проблема с DelphiX   Найти похожие ветки 

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

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

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;


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

Рассуждаем: нужно нарисовать картинку а она почему-то не рисуется(установили все проперти)->значит должна быть процедура которой надо все это перерисовать на 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 все про это сказано!


 
Agent[007] ©   (2003-03-29 15:47) [2]

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

TForm1 = class(TForm)

на

TForm1 = class(TDXForm)

???


 
Agent[007] ©   (2003-03-29 16:03) [3]

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

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

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


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

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


 
Agent[007] ©   (2003-03-30 06:09) [5]

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


 
Agent[007] ©   (2003-03-30 06:34) [6]

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

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

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

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


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

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

DXDraw1.Surface.Fill(0);

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


 
Agent[007] ©   (2003-03-30 17:32) [8]

THANKS



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
14-68042
Samael6
2003-07-03 21:18
2003.07.21
Dll на Visual C++


3-67681
ViJen
2003-06-25 14:30
2003.07.21
Нумерация строк dBase


1-67758
Гость
2003-07-08 19:46
2003.07.21
RTF то HTML


3-67740
Deedlit
2003-06-30 08:12
2003.07.21
Corrupt file - other than header


11-67746
Святослав
2002-11-19 12:09
2003.07.21
как отследить изменение ListView.LVCurItem