1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| unit Base;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons,
ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
btnAssembler: TBitBtn;
btnDst: TBitBtn;
btnSrc: TBitBtn;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
procedure btnAssemblerClick(Sender: TObject);
procedure btnDstClick(Sender: TObject);
procedure btnSrcClick(Sender: TObject);
private
{ private declarations }
ImgDst: TBitMap;
ImgSrc: TBitMap;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.btnDstClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
Screen.Cursor:= crHourGlass;
ImgDst:= TBitMap.Create;
ImgDst.LoadFromFile(OpenDialog.FileName);
Screen.Cursor:= crDefault;
btnSrc.Enabled:= True;
end;
end;
procedure TForm1.btnSrcClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
Screen.Cursor:= crHourGlass;
ImgSrc:= TBitMap.Create;
ImgSrc.LoadFromFile(OpenDialog.FileName);
Screen.Cursor:= crDefault;;
btnAssembler.Enabled:= True;
end;
end;
procedure TForm1.btnAssemblerClick(Sender: TObject);
var
RctSrc, RctDst: TRect;
begin
Screen.Cursor:= crHourGlass;
RctDst:= Rect(ImgDst.Width, 0, ImgDst.Width+ImgSrc.Width, ImgDst.Height); // Rectangle pour le positionnement de l'image de droite
ImgDst.Width:= ImgDst.Width+ImgSrc.Width; // On agrandit le Bitmap
RctSrc:= Rect(0, 0, ImgSrc.Width, ImgSrc.Height); // Dimensions de l'image de droite
ImgDst.Canvas.CopyRect(RctDst, ImgSrc.Canvas, RctSrc);
ImgSrc.Free;
if SaveDialog.Execute then
begin
Screen.Cursor:= crHourGlass;
Application.ProcessMessages;
ImgDst.SaveToFile(SaveDialog.FileName);
end;
ImgDst.Free;
btnSrc.Enabled:= False;
btnAssembler.Enabled:= False;
Screen.Cursor:= crDefault;
end;
end. |
Partager