Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bild Position (https://www.delphipraxis.net/5877-bild-position.html)

bixi400 22. Jun 2003 06:32


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 :?:

Jens Schumann 22. Jun 2003 12:05

Hallo bixi400,
der folgende Source zeigt Dir, wie man ein TBitmap auf einer TImage.Canvas mit zwei TScrollBar verschiebt.
Delphi-Quellcode:
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.
Info's zu BitBlt findest Du unter BitBlt


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz