Delphi与DirectX之DelphiX(88): TDIB.DrawQuickAlpha();

本例效果图:

代码文件:

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DIB, StdCtrls;
type
  TForm1 = class(TForm)
   DXPaintBox1: TDXPaintBox;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   Button5: TButton;
   Button6: TButton;
   Button7: TButton;
   Button8: TButton;
   Button9: TButton;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
   procedure Button5Click(Sender: TObject);
   procedure Button6Click(Sender: TObject);
   procedure Button7Click(Sender: TObject);
   procedure Button8Click(Sender: TObject);
   procedure Button9Click(Sender: TObject);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
var
  dib: TDIB;
procedure TForm1.FormCreate(Sender: TObject);
begin
  dib := TDIB.Create;
  dib.SetSize(DXPaintBox1.Width, DXPaintBox1.Height, 24);
  dib.Fill(0);
  dib.Canvas.Brush.Style := bsClear;
  dib.Canvas.Font.Color := clRed;
  dib.Canvas.Font.Name := 'Tahoma';
  dib.Canvas.Font.Size := 32;
  dib.Canvas.Font.Style := [fsBold];
  dib.Canvas.TextOut(10, 10, 'DelphiX');
  Self.Color := clWhite;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  dib.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Assign(dib);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clBlack, fmNormal);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clBlack, fmMix75);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clBlack, fmMix50);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clBlack, fmMix25);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clRed, fmNormal);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clRed, fmMix75);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clRed, fmMix50);
  DXPaintBox1.Repaint;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
  DXPaintBox1.DIB.Fill(Self.Color);
  DXPaintBox1.DIB.DrawQuickAlpha(dib, 0, 0, dib.Width, dib.Height, 0, 0, clRed, fmMix25);
  DXPaintBox1.Repaint;
end;
end.

时间: 2024-12-31 07:24:16

Delphi与DirectX之DelphiX(88): TDIB.DrawQuickAlpha();的相关文章

Delphi与DirectX之DelphiX(87): TDIB.DrawTransparent、DrawTranslucent、Dra

Delphi与DirectX之DelphiX(87): TDIB.DrawTransparent.DrawTranslucent.DrawAlpha(); TDIB.DrawTransparent: 按指定的透明色透明; TDIB.DrawTranslucent: 先按指定的透明色透明, 然后再半透明; DIB.DrawAlpha: 先按指定的透明色透明, 再按指定的透明度透明. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages,

Delphi与DirectX之DelphiX(95): TDIB.x

//让 TDIB 的这些特效烦透了: 多.还重复.又不完善; 还没有测试或测 试失败的方法: procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; FilterMode: TFilterMode); procedure DrawShadows(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; Alpha: Byte); procedure DrawAnti

Delphi与DirectX之DelphiX(94): TDIB.DrawAdditive();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Butt

Delphi与DirectX之DelphiX(93): TDIB.DrawDarken();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Colo

Delphi与DirectX之DelphiX(92): TDIB.Draw3x3Matrix();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Butt

Delphi与DirectX之DelphiX(91): TDIB.DrawMono();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; procedure Button1Click(Sender: TObject);

Delphi与DirectX之DelphiX(90): TDIB.DrawMorphed();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; proc

Delphi与DirectX之DelphiX(89): TDIB.DrawAlphaMask();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; ColorBox1: T

Delphi与DirectX之DelphiX(86): TDIB.DrawOn();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; procedure FormCreate(Sender: TObject); procedure FormDestr