Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Мастера, помогите!!!   Найти похожие ветки 

 
[BAD]Angel   (2002-08-09 13:07) [0]

Как сделать, чтобы картинка (image) плавно увеличивалась или уменьшалась (без миганий)...


 
Skier   (2002-08-09 13:14) [1]

>[BAD]Angel
Цель какая ?


 
[BAD]Angel   (2002-08-09 13:19) [2]

Ну я же написал... Есть картинка (Image) размера 100х100 допустим, нажимаеш на нее и она плавно увеличивается до 300х300, допустим!!!


 
Skier   (2002-08-09 13:23) [3]

>[BAD]Angel
Покажи код : как ты это делаешь...


 
[BAD]Angel   (2002-08-09 13:27) [4]

Да я еще никак ни делаю... Я не знаю, как это реализовать! Если бы знал, то, наверное, не спрашивал бы!


 
[BAD]Angel   (2002-08-09 16:30) [5]

Ну неужели никто не знает? :-(


 
Viktor Kushnir   (2002-08-09 18:44) [6]

Просто так плавно не получится. Нужно подготовить в памяти несколько изображений разного размера, а затем их подряд прорисовать.
Можно создать что-нибудь вроде

Var
i :integer;
ImgArray :Array [0..9] of TBitmap;
...
Begin
For i := 0 to 9 do
Begin
ImgArray[i] := TBitmap.create;
{Здесь рисуешь в ImgArray[i] нужную картинку, с нужным размером}
End;


Затем заполнить его 10 картинками с возрастающеми (или убывающеми, как хочешь) размерами, а затем их поочереди прорисовать.

For i := 0 to 9 do
Begin
Form1.Canvas.Draw(0,0,ImgArray[i])
Sleep(100);
End;


Только не забудь потом память освободить.


 
[BAD]Angel   (2002-08-10 12:53) [7]

Спасибо!


 
mukha   (2002-08-10 15:04) [8]

В книге для начинающих как демонстрация работы таймера видел примерно такой пример:
На форме Panel,на ней Image с загруженным рисунком, button и Timer. Image размещён на панели чтобы устранить мигания.
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, jpeg;

type
TForm1 = class(TForm)
Panel1: TPanel;
Timer1: TTimer;
Image1: TImage;
Button1: TButton;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
small:boolean;
implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if small=true then
begin
Image1.Height:=Image1.Height-2;
Image1.Width:=Image1.Width-2;
if Image1.Height<=100 then //минимальный размер Image
small:=false;
end;
if small=false then
begin
Image1.Height:=Image1.Height+2;
Image1.Width:=Image1.Width+2;
if Image1.Height>=300 then // максимальный размер Image
small:=true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.DoubleBuffered:=true;
Timer1.Interval:=1;
Timer1.Enabled:=false;
Image1.Stretch:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
small:=true;
end;

end.



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

Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-71095
Uran
2002-08-09 16:35
2002.08.22
Нестандартное форматирование


3-70997
Svet
2002-07-31 14:07
2002.08.22
Блокировка записи в многопользовательском режиме


7-71397
qwen
2002-06-08 00:03
2002.08.22
Как полчить спсиок всех дисков?


3-71065
Андрусь
2002-08-02 11:48
2002.08.22
проблема с DataSetом


14-71341
Sergo
2002-07-27 08:54
2002.08.22
TeeChart





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