Hirdetés
- Google Pixel topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Bemutatkozott a Poco X7 és X7 Pro
- iPhone topik
- Xiaomi 11 Lite 5G NE (lisa)
- Motorola Edge 40 - jó bőr
- Samsung Galaxy S23 Ultra - non plus ultra
- Poco F7 Pro - jó, de az amatőr sem rossz
- Samsung Galaxy Watch7 - kötelező kör
- Apple iPhone 14 Pro Max - sziget fesztivál
Új hozzászólás Aktív témák
-
válasz
Tomi_78 #2027 üzenetére
Tehát akkor 2 dologról van szó
1. van egy pályakép, amit mozogjon/mozgatható legyen (az mindegy most a példa kedvéért, hogy a mozgatást mi váltja ki: egér/bill. időzítő stb)
2. te rá szeretnél még rajzolni a pályaképedre ilyen "puffancs"-nakkeresztelt dolgokat és az alatt is mozgatható legyen a pályakép
Maradjunk a korábban adott forráskódnál, mert az elég egyszerű, annyival kell kiegészíteni, hogy mindig ki kell rajzoltatni a "puffancsokat", de magát a canvas "törlését" a CopyRect belső eljárás megoldja azáltal, hogy a pályaképből általad megadott négyszög területet bemásolja (ezáltal a canvas adatait törli/felülírja) az image1 objectum canvas-ába. Ezt, mivel belső eljárás, gyorsan teszi. A CopyRect után csak újra ki kell rajzoltatni, amit szeretnél(puffancsokat).
Mindösszesen 2 sort módosítottam a korábbi forrásfájlban, ami kiír egy szöveget, meg rajzol egy kört.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
Button1: TButton;
procedure ScrollBar2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MyBitmap: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.ScrollBar2Change(Sender: TObject);
var
RectDest, RectSource: TRect;
begin
RectDest:=Rect(0, 0, Image1.Width, Image1.Height);
RectSource:=Rect(ScrollBar1.Position, ScrollBar2.Position, Scrollbar1.Position+Image1.Width, ScrollBar2.Position+Image1.Height);
Image1.Canvas.CopyRect(RectDest, MyBitmap.Canvas, RectSource);
Image1.Canvas.TextOut(20,MyBitmap.Height div 2,'Ez itt egy szöveg, amit mindig ki kell iratni');
Image1.Canvas.Ellipse(30,30,80,80);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyBitmap:=TBitmap.Create;
MyBitmap.LoadFromFile('factory.bmp');
Image1.Picture.Bitmap.Assign(MyBitmap);
ScrollBar1.Max:=MyBitmap.Width-1-Image1.Width;
ScrollBar2.Max:=MyBitmap.Height-1-Image1.Height;
end;
end.Szóval nem az a lényeg az egészben, hogy Scrolbar-t használsz-e vagy sem, hanem hogy a CopyRect eljárást használd.
Új hozzászólás Aktív témák
- Dell Inspiron 15 5518 /11.gen i5-11300H 24GB ram/512 GB SSD FHD
- Thinkpad X13 Gen4 13.3" FHD+ IPS i7-1365U 16GB 512GB NVMe ujjlolv gar
- Lenovo ThinkBook 14 i5-1135G7 16gb ram 512 SSD FHD IPS
- BOMBA ÁR! új Hp Envy x360 garanciával! /2in1/Ryzen5-5500U/8GB/512 SSD/FHD/TOUCH/GARI
- XPS 9310 13.4" FHD+ IPS i7-1185G7 16GB 512GB NVMe ujjlolv IR kam gar
- Update 09.01. - Bomba árak 2025-ben is! Üzleti - Consumer laptopok DELL FUJITSU HP LENOVO
- Bomba ár! Lenovo ThinkPad T590 - i5-8GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- Lenovo 14 Ideapad 3 FHD LED Matt i3-1115G4 4.1Ghz 8GB 256GB SSD Intel UHD Graphics Win11 Garancia
- Xiaomi Redmi Note 11 Pro+ 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó ÚJ BONTATLAN Honor Magic6 Lite 8/256GB / fekete / 24 hó jótállással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest