Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-67861
ServerXP
2003-07-07 23:56
2003.07.21
Как создать многооконную структуру программы в Delphi?


1-67799
Frist_May
2003-07-07 09:27
2003.07.21
Событие OnChange


1-67839
Пубертанец
2003-07-07 16:56
2003.07.21
В аргументе Variant функции необходимо передать массив


4-68114
vitall
2003-05-18 13:41
2003.07.21
Как читать HTML своей программой?


3-67669
*pavel
2003-06-26 09:24
2003.07.21
Настройка Oracle 8i (win98)




   Наверх