zoukankan      html  css  js  c++  java
  • Delphi 与 DirectX 之 DelphiX(11): TPictureCollectionItem.DrawAdd、DrawSub


    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DXDraws, StdCtrls, DXClass;
    
    type
      TForm1 = class(TForm)
        DXDraw1: TDXDraw;
        DXImageList1: TDXImageList;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    var
      pic1,pic2: TPictureCollectionItem;
    
    procedure TForm1.FormCreate(Sender: TObject);
    const
      ImgPath1 = 'C:\Temp\Back.jpg';
      ImgPath2 = 'C:\Temp\DelphiX.bmp';
    begin
      DXImageList1.DXDraw := DXDraw1;
      pic1 := TPictureCollectionItem(DXImageList1.Items.Add);
      pic1.Picture.LoadFromFile(ImgPath1);
      pic2 := TPictureCollectionItem(DXImageList1.Items.Add);
      pic2.Picture.LoadFromFile(ImgPath2);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      r: TRect;
    begin
      r := Bounds((DXDraw1.Width - pic2.Width) div 2,
                  (DXDraw1.Height - pic2.Height),
                   pic2.Width,
                   pic2.Height);
    
      DXDraw1.Surface.Fill(0);
      pic1.StretchDraw(DXDraw1.Surface, DXDraw1.ClientRect, 0);
      pic2.DrawAdd(DXDraw1.Surface, r, 0);
      DXDraw1.Flip;
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    var
      r: TRect;
    begin
      r := Bounds((DXDraw1.Width - pic2.Width) div 2,
                  (DXDraw1.Height - pic2.Height),
                   pic2.Width,
                   pic2.Height);
    
      DXDraw1.Surface.Fill(0);
      pic1.StretchDraw(DXDraw1.Surface, DXDraw1.ClientRect, 0);
      pic2.DrawSub(DXDraw1.Surface, r, 0);
      DXDraw1.Flip;
    end;
    
    end.
    

  • 相关阅读:
    会议室预订系统
    event chrome firefox 获取点击对象的 id 类
    微信支付 301 500 php 7 simplexml_load_string
    会议室预订
    ini_set('date.timezone','Asia/Shanghai');
    UnionID OpenID
    Location 接口表示其链接到的对象的位置
    confirm() event.target.getAttribute('id')
    php 代替 js实现自定义时间选择器
    前端页面 重复提交避免
  • 原文地址:https://www.cnblogs.com/del/p/1375049.html
Copyright © 2011-2022 走看看