Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
3rd
Апр
Как сделать непрерывное движение рисунка по форме по горизонтали справа налево
Posted by Chas under Delphi
Как сделать непрерывное движение рисунка по форме по горизонтали справа налево, чтобы часть рисунка, которая уже скрыта за правым полем тут же всплывала с левого поля формы и так далее.
kangreon
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
BitMap: TBitmap;
x: Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Open: TOpenDialog;
begin
Open := TOpenDialog.Create(Self);
if Open.Execute then
begin
BitMap := TBitmap.Create;
BitMap.LoadFromFile(Open.FileName);
Timer1.Enabled := True;
Timer1.Interval := 20;
x := 0;
end;
Open.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
w, l: Integer;
begin
if x > ClientWidth then
x := 0;
if x < 0 then
x := ClientWidth;
Canvas.FillRect(ClientRect);
BitBlt(Canvas.Handle, X, 0, BitMap.Width, BitMap.Height,
BitMap.Canvas.Handle, 0, 0, SRCCOPY);
w := x + BitMap.Width;
if w > ClientWidth then
begin
w := w - ClientWidth;
BitBlt(Canvas.Handle, 0, 0, w, BitMap.Height,
BitMap.Canvas.Handle, BitMap.Width - w, 0, SRCCOPY);
end;
Dec(x, 5);
end;
Напровление и скорость движения картинки зависит от увеличения либо уменьшения переменной x.
Dec(x, 5);
либо
Inc(x, 5);
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)