Delphi的Hint入门指导
作者 凌众技术
来源 互联网
浏览
发布时间 2012-01-14
FWndBmp.Free; FHintBmp.Free; inherited; end; procedure TwdHintWnd.GetDesktopImg(Bmp: TBitmap; R: TRect); var C: TCanvas; begin C:= TCanvas.Create; try C.Handle := GetDC(0); Bmp.Canvas.CopyRect(Rect(0, 0, Bmp.Width, Bmp.Height), C, R); finally C.Free; end; end; procedure TwdHintWnd.EffectHandle(WndBmp, HintBmp: TBitmap); var R: TRect; i, j: Integer; P: PByteArray; Transt, TranstAngle: Integer; begin R := Rect(0, 0, WndBmp.Width - 4, WndBmp.Height - 4); Frame3D(WndBmp.Canvas, R, clMedGray, clBtnShadow, 1); //作窗口底下的阴影效果 Transt := 60; for j:= WndBmp.Height - 4 to WndBmp.Height - 1 do begin P := WndBmp.ScanLine[j]; TranstAngle := Transt; for i:= 3 to WndBmp.Width - 1 do begin //如果正处于右下角 if i > WndBmp.Width - 5 then begin P[3*i] := P[3*i] * TranstAngle div 100; P[3*i + 1] := P[3*i + 1] * TranstAngle div 100; P[3*i + 2] := P[3*i + 2] * TranstAngle div 100; TranstAngle := TranstAngle + 10; if TranstAngle > 90 then TranstAngle := 90; end else begin P[3*i] := P[3*i] * Transt div 100; P[3*i + 1] := P[3*i + 1] * Transt div 100; P[3*i + 2] := P[3*i + 2] * Transt div 100; end; end; Transt := Transt + 10; end; //作窗口右边的阴影效果 for j := 3 to WndBmp.Height - 5 do begin P := WndBmp.ScanLine[j]; Transt := 60; for i:= WndBmp.Width - 4 to WndBmp.Width -1 do begin P[3*i] := P[3*i] * Transt div 100; P[3*i + 1] := P[3*i + 1] * Transt div 100; P[3*i + 2] := P[3*i + 2] * Transt div 100; Transt := Transt + 10; end; end; WndBmp.Canvas.Draw(10, 10, HintBmp); end; procedure TwdHintWnd.NCPaint; begin //重载不让画边框 end; procedure TwdHintWnd.Paint; begin Canvas.CopyRect(ClientRect, FWndBmp.Canvas, ClientRect); end; procedure TwdHintWnd.DrawHintImg(Bmp: TBitmap; AHint: string); var R: TRect; begin Bmp.Canvas.Brush.Color := Application.Hin |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Delphi&BCB一线程序员开发经验下一篇: Delphi情结——永不消逝的精灵
关于Delphi的Hint入门指导的所有评论