unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ColorListBox1: TColorListBox; TrackBar1: TTrackBar; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure ColorListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ,GDIPAPI; procedure TForm1.ColorListBox1Click(Sender: TObject); begin Repaint; end; procedure TForm1.FormCreate(Sender: TObject); begin Self.Position:=poDesktopCenter; ColorListBox1.Align:=alRight; TrackBar1.Max:=255; TrackBar1.Min:=0; TrackBar1.ShowSelRange:=False; TrackBar1.PageSize:=20; TrackBar1.Position:=TrackBar1.Max; end; procedure TForm1.FormPaint(Sender: TObject); var g:TGPGraphics; R:TGPRect; crl:TGPColor; alpha:Byte; sb:TGPSolidBrush; begin Form1.DoubleBuffered:=True; g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); R:=MakeRect(20,20,250,200); crl:=ColorRefToARGB(ColorListBox1.Selected); alpha:=TrackBar1.Position; crl:=MakeColor(alpha,GetRed(crl),GetGreen(crl),GetBlue(crl)); sb:=TGPSolidBrush.Create(crl); g.FillRectangle(sb,R); sb.Free; g.Free; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin Repaint; Text:=Format('透明度:%d',[TrackBar1.Position]); end; end.