Вниз
Скачать: CL | DM;

как вывести картинку ???   Найти похожие ветки 

← →
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 вся ветка

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



Память: 0.47 MB
Время: 0.021 c
1-56573
Cosinus
2003-11-06 11:51
2003.11.17
Совместимость версий Delphi


14-56870
Nikolay M.
2003-10-25 18:26
2003.11.17
Снимки сайтов delphimaster.ru, delphikingdom.ru и sql.ru


14-56863
copyr25
2003-10-20 22:46
2003.11.17
---|Ветка была без названия|---


8-56779
Hatawa
2003-07-20 18:17
2003.11.17
Почему StretchBlt при использовании портит рисунок?


4-56951
Lony
2003-09-22 15:23
2003.11.17
Шелл-хуки




   Наверх