Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.01 c
3-56467
DimChan
2003-10-27 08:39
2003.11.17
SQL


6-56798
ORMADA
2003-09-19 08:37
2003.11.17
Перекодировка Koi8R в Win


14-56867
Думкин
2003-10-27 04:41
2003.11.17
С днем рождения! 27 октября.


8-56774
Romul
2003-07-18 13:56
2003.11.17
Анимация в JPG-файле


1-56588
hursand
2003-11-06 09:23
2003.11.17
Справка о программе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский