![]() |
Bild Position
Also ich habe hier Image1 das z.B. 30 x 30 Groß ist.
Und ein Bitmap das in dem Fall länger (30 x 90) ist. Also muss ich ja das Bitmap in 3 Bilder Aufteilen können. Ist es nicht Möglich in Image1 das Bitmap so Verschieben das es genau das Bitmap anzeigt das ich will :?: |
Hallo bixi400,
der folgende Source zeigt Dir, wie man ein TBitmap auf einer TImage.Canvas mit zwei TScrollBar verschiebt.
Delphi-Quellcode:
Info's zu BitBlt findest Du unter
type
TForm1 = class(TForm) Image1: TImage; SBHorz: TScrollBar; SBVert: TScrollBar; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure SBVertChange(Sender: TObject); procedure SBHorzChange(Sender: TObject); private { Private-Deklarationen } FBitmap : TBitmap; procedure SetBitmap(X,Y : Integer); public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin FBitmap:=TBitmap.Create; FBitmap.LoadFromFile(ExtractFilePath(ParamStr(0))+'Karparten.bmp'); SBVert.Max:=FBitmap.Height-Image1.Height; SBHorz.Max:=FBitmap.Width-Image1.Width; SetBitmap(0,0); end; procedure TForm1.FormDestroy(Sender: TObject); begin FBitmap.Free; end; procedure TForm1.SetBitmap(X, Y: Integer); begin With Image1.Canvas do begin // Hier wird das Bild verschoben BitBlt(Handle,0,0,Image1.Width,Image1.Height,FBitmap.Canvas.Handle,X,Y,SRCCOPY); end; Image1.Invalidate; end; procedure TForm1.SBVertChange(Sender: TObject); begin SetBitmap(SBHorz.Position,SBVert.Position); end; procedure TForm1.SBHorzChange(Sender: TObject); begin SetBitmap(SBHorz.Position,SBVert.Position); end; end. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz