Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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 вся ветка

Форум: "Media";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
8-67920
Sword-Fish
2003-03-31 17:00
2003.07.21
Ресурсы !!!


7-68077
Vicheslav
2003-05-04 15:32
2003.07.21
Flash Drive USB Win2K как ним работать?


14-67966
Peon
2003-07-05 15:36
2003.07.21
Билеты в Московский Энергетический Институт (МЭИ)


3-67700
ses
2003-06-27 10:56
2003.07.21
ADO - из программы вызвать диалог построения строки соединения


7-68079
Poman
2003-05-02 15:10
2003.07.21
Процессор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский