Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.17;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.03 c
14-56873
Dimaz-z
2003-10-26 15:01
2003.11.17
Помогите, никто не знает, где найти документацию по vCard?


3-56491
Ozone
2003-10-27 11:02
2003.11.17
ADO


14-56813
trics
2003-10-24 18:09
2003.11.17
Подскажите как удалить форму?


1-56697
Ganjo
2003-11-07 14:16
2003.11.17
Печать содержимого StringGrid


3-56508
froland
2003-10-28 08:27
2003.11.17
Сумма поля