Форум: "Media";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Внизкак вывести картинку ??? Найти похожие ветки
← →
Andry (2003-07-19 01:21) [0]Как вывести несколько картинок в одном месте, так чтобы нижнаяя выводилась не закрывая верхних (что-то вроде слоев). Пробовал несколько TImage, но они мерцают сильно при рисовании на их Canvas.
← →
iXuSs (2003-07-19 19:00) [1]Достаточно одной канвы, можно того же TImage. Вот пример:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TformShow = class(TForm)
Image1: TImage;
btnShow: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure btnShowClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type TPic = record
Bitmap: TBitmap;
x, y: Integer;
end;
var
formShow: TformShow;
Bmps: array [1..3] of TPic;
implementation
{$R *.DFM}
procedure TformShow.FormCreate(Sender: TObject);
var i: Integer;
begin
Randomize;
formShow.DoubleBuffered := True;
For i := 1 to High(Bmps) do
begin
Bmps[i].Bitmap := TBitmap.Create;
Bmps[i].Bitmap.LoadFromFile(IntToStr(i) + ".bmp");
Bmps[i].Bitmap.Transparent := True;
Bmps[i].x := 10 + Random(Image1.Width-20-Bmps[i].Bitmap.Width);
Bmps[i].y := 10 + Random(Image1.Height-20-Bmps[i].Bitmap.Height);
end;
end;
procedure TformShow.btnShowClick(Sender: TObject);
var i: Integer;
begin
For i := 1 to High(Bmps) do
begin
( Bmps[i].x, Bmps[i].y, Bmps[i].Bitmap) Достаточно одной канвы, можно того же TImage. Вот пример:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TformShow = class(TForm)
Image1: TImage;
btnShow: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure btnShowClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type TPic = record
Bitmap: TBitmap;
x, y: Integer;
end;
var
formShow: TformShow;
Bmps: array [1..3] of TPic;
implementation
{$R *.DFM}
procedure TformShow.FormCreate(Sender: TObject);
var i: Integer;
begin
Randomize;
formShow.DoubleBuffered := True;
For i := 1 to High(Bmps) do
begin
Bmps[i].Bitmap := TBitmap.Create;
Bmps[i].Bitmap.LoadFromFile(IntToStr(i) + ".bmp");
Bmps[i].Bitmap.Transparent := True;
Bmps[i].x := 10 + Random(Image1.Width-20-Bmps[i].Bitmap.Width);
Bmps[i].y := 10 + Random(Image1.Height-20-Bmps[i].Bitmap.Height);
end;
end;
procedure TformShow.btnShowClick(Sender: TObject);
var i: Integer;
begin
For i := 1 to High(Bmps) do
begin
Image1.Canvas.Draw(Bmps[i].x, Bmps[i].y, Bmps[i].Bitmap);
end;
end;
end.
Это ещё не самый лучший вариант, но довольно простой. При этом, графика загружается из bmp-шек с названием 1.bmp, 2.bmp и т.д., обрати внимание на formShow.DoubleBuffered := True - он уменьшаяет мерцание, ты даже можешь попробовать с теми же TImage, включив это свойство.
← →
iXuSs (2003-07-19 19:00) [2]Создаёшь битмап с размерами, как у самой большой картинки. На него рисуешь всё изображения в нужном размере.
Или я не понял вопрос?
← →
Fenik (2003-07-19 19:01) [3]Весело пошутил ;)))))
← →
Walker (2003-07-19 19:03) [4]я бы обратил внимание автора вопроса на следующую строку:
Bmps[i].Bitmap.Transparent := True;
← →
iXuSs (2003-07-19 19:31) [5]> Весело пошутил ;)))))
Гм... тлоько тебе и смешно. Не надо так больше.
← →
Fenik (2003-07-19 22:56) [6]Не будь таким серьёзным...
Ведь как ты а! два сообщения за минуту!! :0))))
← →
iXuSs (2003-07-19 23:46) [7]Тем не менее, зачем вообще?
← →
Fenik (2003-07-20 14:07) [8]> Не надо так больше.
Я совсем не хотел тебя подставлять.
> Тем не менее, зачем вообще?
Это называется "Зов изнутри". Вдруг, спонтанно захотелось вместо "Fenik" написать "iXuSs". Просто запостил сообщение и обана! Минута в минуту, ровно в 19:00! Ей Богу, специально не придумаешь! Это знак! Или мне, или тебе, или нам обоим. Это совсем не шутка...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c