Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 6506|回复: 13

奔豹异形窗体,附源码

[复制链接]

该用户从未签到

发表于 2011-6-4 16:43:56 | 显示全部楼层 |阅读模式
Lazarus功能很强大,数句代码可做异形窗体。稍作改动可同时支持Linux系统。


  1. unit Unit1;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  6.   StdCtrls;
  7. type
  8.   { TForm1 }
  9.   TForm1 = class(TForm)
  10.     Image1: TImage;
  11.     Image2: TImage;
  12.     Label1: TLabel;
  13.     Panel1: TPanel;
  14.     Panel2: TPanel;
  15.     Panel3: TPanel;
  16.     Timer1: TTimer;
  17.     procedure Button1Click(Sender: TObject);
  18.     procedure Button2Click(Sender: TObject);
  19.     procedure Button3Click(Sender: TObject);
  20.     procedure FormActivate(Sender: TObject);
  21.     procedure FormClick(Sender: TObject);
  22.     procedure FormCreate(Sender: TObject);
  23.     procedure FormShow(Sender: TObject);
  24.     procedure FormWindowStateChange(Sender: TObject);
  25.     procedure Image1Click(Sender: TObject);
  26.     procedure Image2Click(Sender: TObject);
  27.     procedure Panel1Click(Sender: TObject);
  28.     procedure Timer1Timer(Sender: TObject);
  29.   private
  30.     { private declarations }
  31.     procedure ShapeControl(AControl: TWinControl);
  32.   public
  33.     { public declarations }
  34.   end;
  35. var
  36.   Form1: TForm1;
  37. implementation
  38. {$R *.lfm}
  39. { TForm1 }
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.   self.Left:= (screen.Width - self.Width) div 2;
  43.   self.Top:= (screen.Height - self.Height) div 2;
  44.   self.ShowInTaskBar:= stNever;
  45. end;
  46. procedure TForm1.FormShow(Sender: TObject);
  47. begin
  48.   self.ShowInTaskBar:= stNever;
  49. end;
  50. procedure TForm1.FormWindowStateChange(Sender: TObject);
  51. begin
  52.   self.ShowInTaskBar:= stNever;
  53. end;
  54. procedure TForm1.Image1Click(Sender: TObject);
  55. begin
  56. end;
  57. procedure TForm1.Image2Click(Sender: TObject);
  58. begin
  59.   close;
  60. end;
  61. procedure TForm1.Panel1Click(Sender: TObject);
  62. begin
  63. end;
  64. procedure TForm1.Timer1Timer(Sender: TObject);
  65. var
  66.   ABitmap: TBitmap;
  67. begin
  68.   self.Timer1.Enabled:=false;
  69.   ABitmap := TBitmap.Create;
  70.    ABitmap.Width :=  self.Width;
  71.   ABitmap.Height :=  self.Height;
  72.   ABitmap.Monochrome := True;
  73.   with ABitmap.Canvas do
  74.   begin
  75.     Brush.Color := clBlack;
  76.     FillRect(0, 0, ABitmap.Width, ABitmap.Height);
  77.   end;
  78.   ABitmap.Canvas.Draw(0,0,self.Image1.Picture.Graphic);
  79.   self.Color:= clyellow;
  80.   self.SetShape(ABitmap);
  81.   ABitmap.Free;
  82.   self.Panel1.Left:=0;
  83.   self.Panel1.Top:=0 ;
  84.   self.Image2.Left:=0;
  85.   self.Image2.Top:=-5;
  86.   self.Panel1.Color:= clDefault;
  87.   self.Panel1.Visible:=true;
  88.   self.Panel3.Color:=clDefault;
  89.   self.Panel3.Visible:=true;
  90. end;
  91. procedure TForm1.Button1Click(Sender: TObject);
  92. begin
  93.   //self.Color:= clYellow;
  94.   self.ShapeControl(self);
  95. end;
  96. procedure TForm1.Button2Click(Sender: TObject);
  97. begin
  98. end;
  99. procedure TForm1.Button3Click(Sender: TObject);
  100. begin
  101. end;
  102. procedure TForm1.FormActivate(Sender: TObject);
  103. begin
  104.   self.ShowInTaskBar:= stNever;
  105. end;
  106. procedure TForm1.FormClick(Sender: TObject);
  107. begin
  108. end;
  109. procedure TForm1.ShapeControl(AControl: TWinControl);
  110. begin
  111. end;
  112. end.
复制代码
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-6-4 16:53:30 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2021-8-26 17:08
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2011-6-4 18:30:33 | 显示全部楼层
    太棒了!感谢共享!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-5 00:56:19 | 显示全部楼层
    太棒了!感谢共享!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-13 17:27:24 | 显示全部楼层
    U@365  太棒了!感谢共享! KvQS,60
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-24 23:50:53 | 显示全部楼层
    太棒了!感谢共享!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-23 19:03:20 | 显示全部楼层
    bo
    _<llJ   U@365  太棒了!感谢共享! KvQS,60   CtF^,Fc?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-7-4 19:08:03 | 显示全部楼层
    很给力! 顶起的有木有啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-18 13:16:25 | 显示全部楼层
    gef}*1k`  太棒了!感谢共享! ?v t#~}-
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-6-17 17:52:11 | 显示全部楼层
    太棒了!感谢共享!
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-3 08:11 , Processed in 0.054544 second(s), 10 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表