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

Вниз

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

 
Mihey   (2002-11-23 00:10) [0]

Попробовал компоненты DelphiX для Delphi 5. Довольно просто разобрался что к чему. Написал свою желанную программульку, запустил - и програ, показав чёрный экран, зависла. Хотя другие приложения на DelphiX идут нормально. Почему так???


 
Namo ©   (2002-11-23 21:21) [1]

а почему пакет молока прокис, а другой нет, хотя купил я их одновременно?
Этот вопрос такой же сложности как и твой. Вот например этот пакет я хранил на солнце а другой в холодильнике.
А ты что нить скажешь об "окружающих условиях"?
;))


 
Mihey   (2002-11-23 23:42) [2]

Ну, бракованное молоко я бы покупать не стал. А причину выяснил - надо, оказывается, особождать канву методом Release после того, как ею попользовался. Жаль, что нигде этого в примерах сайта не было отмечено.

Нашёл и другую западню. По привычку жму двойным по TDXTimer и пишу обработчик. А обработчик то OnActivate, а не OnTimer. Ну, ошибка бросовая, но бывает... бывает...

Вот вы лучше расскажите, а ещё лучше - покажите на примере, как загружать графику в TDXImageList с указанием прозрачности, а то у меня с ходу не получилось.


 
Mihey   (2002-11-23 23:43) [3]

Так, я забыл уточнить - загружать графу в run-time!


 
pasha676   (2002-11-25 10:08) [4]


> Вот вы лучше расскажите, а ещё лучше - покажите на примере,
> как загружать графику в TDXImageList с указанием прозрачности,
> а то у меня с ходу не получилось.

Графика туда загружается обычная, а когда выводишь рисунок на экран, то выводишь его специальной функцией с укаханием прозрачности. В примерах к ДельфиХа такое есть. Пользуйся исходным кодом.


 
Namo ©   (2002-11-25 19:42) [5]

мона проще в ДХГ файле с прозрачностью заранее сделать, а потом в рантайме грузить из файла и юзать.


 
pasha676   (2002-11-26 10:04) [6]

2Namo
Не совсем проще. Ведь могут понадобиться такие вещи как подбор или изменение прозрачности по ходу выполнения программы.


 
Mihey   (2002-11-27 23:44) [7]

Спасибо вам за ответы. Действительно, с примерами довольно просто разобрался. Но вот возникла проблема, которую всё никак не могу решить.

В приведённом ниже коде используется один TDXImageList, с загруженных на нулевой индекс изображением с указанным прозрачным цветом. Вопрос такой: почему изображение не показывается и если оно наконец-то выведется, то будет ли оно прозрачным?

unit tst;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DXDraws, DXClass;

type
TForm1 = class(TForm)
DXDraw1: TDXDraw;
DXImageList1: TDXImageList;
DXTimer1: TDXTimer;
procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
procedure DXDraw1Initialize(Sender: TObject);
procedure DXDraw1Finalize(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXDraw1.Surface.Fill(0);
DXImageList1.Items[0].Draw(DXDraw1.Surface, 0, 0, 0);
DXDraw1.Flip;
end;

procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
DXTimer1.Enabled := True;
end;

procedure TForm1.DXDraw1Finalize(Sender: TObject);
begin
DXTimer1.Enabled := False;
end;

end.

У меня был похожий проект, где изображение показывалось, но никак не становилось прозрачным. При этом хотелось бы остаться на методе Draw как элемента TDXImageList.


 
pasha676   (2002-11-28 09:24) [8]

Миха, ты меня растраиваешь :(. Пример AlphaBlending называется.

Там приводиться функция ImageList.Items[0].DrawRotateAlpha - это вращать изображения и делать его прозрачным. В TDXImage функции с прозрачностью - в их названии присутствует Alphа.Функция с рисованием - draw
Так например функция вывода изображения с прозрачностью будет
ImageList.Items[0].DrawAlpha(ну тут посмотришь параметры, последним как раз идет Alpha - коэффицент прозрачности);
Все прозрачно :).


 
Daddy ©   (2002-11-28 12:36) [9]

2pasha676: Как я понял речь не об Alpha а именно об одном прозрачном (transparent) цвете.

2Mihey: Вот глянь, http://daddy.h1.ru/index.shtml?dxarticle1


 
Mihey   (2002-11-28 22:20) [10]

Ладно, давайте поотмазываюсь. DrawAlpha я рассматривал, всё там работает, но вот в игре Отбивалка ( http://delphigfx.mastak.ru/game5.htm) используется именно Draw для рисования прозрачной (не как текстурированной, а именно с одним прозрачным цветом) головы! Или у меня глюки, или...

Да, и остался вопрос - почему не выводится картинка вот в том простом примере.


 
Mihey   (2002-11-28 23:21) [11]

Так, не всё так плохо. Оказалось, что надо поставить свойство SystemMemory в True - тогда и прозрачным рисует, и быстрее.


 
Grizun ©   (2002-12-11 21:35) [12]

У меня такая же проблема.Начал разбираться с DelphiX. попробывал один примерчик, сходный описаному выше, и первый раз заработало,все выводило( не заметил токо с транспарентом или нет), потом как то опять скомпилил и оно просто перестало выводить изображение. Текст на поверхность и pixels выводят, а Draw ни в какую ничего не хочет выводить. SystemMemory тоже не помогает, не пойму в чем дело...


 
Muxec   (2003-01-24 10:10) [13]

Tak hot" kto nibud" znaet kak vyvesti s pomochju imglist.Items.Items[i].Draw kartinku?


 
Daddy ©   (2003-01-24 17:59) [14]

http://www.daddy.h1.ru/index.shtml?samples
http://www.daddy.h1.ru/index.shtml?dxarticles


 
Mihey   (2003-01-24 22:15) [15]

А я ещё одну особенность заметил. Допустим, гружу я картинку в TDXImageList. Если её фон чёрный, то далее она выводится прозрачно, причём делается это нормально. Если фон, например, фиолетовый, то картинка не будет прозрачной, хотя свойство Transparent стоит в True и прозрачный цвет определён. Это исрпавляется включением SystemMemory. Так вот.


 
muxec ©   (2003-01-25 11:44) [16]

У меня есть проблема в том что перед выводом картинки у меня
imglist.Items.Items[i].Initialized
раыно false. Как с этим боротся?


 
Mihey   (2003-01-25 19:03) [17]

Может, инициализировтаь как нить?


 
muxec ©   (2003-01-25 19:35) [18]

Как? Ведь Initialized read-only. А вы DXImageList в рантайме делаети или на форму бросаете? То же касается картинок.


 
muxec ©   (2003-01-25 19:39) [19]

И ещё, а если у меня этот DXImageList находится в отдельном юните в разделе interface то поможет ли присваивание ImgList.DXdraw:=DXDraw1 внутри главного юнита который имеет в uses юнит с DXImageList?


 
Mihey   (2003-01-25 22:59) [20]

Так, по поводу юнитов я ответить не могу, а вообще я не гружу в TDXImageList в RunTime, если надо во время выполнения что-нить подгрузить, то для этого заранее создаю пункт в листе с некоторым именем, а потом туда загружаю только графу.

А инициализировтаь можно функцией Initialize, правда если она есть.



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

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

Наверх




Память: 0.51 MB
Время: 0.02 c
3-91182
Иванов Сергей
2003-04-09 16:48
2003.04.28
сложный запрос


7-91576
blabla
2003-03-10 08:26
2003.04.28
system


8-91409
stim24
2003-01-24 11:14
2003.04.28
Проблема или ГЛЮК DELPHIX


7-91566
Demon
2003-03-11 18:11
2003.04.28
Указатель на 16-разрядный процесс


1-91342
ghg
2003-04-15 16:04
2003.04.28
Resize формы