Perform 浮动工具栏 无标题窗口的移动

//浮动工具栏 
{
窗体是否要隐藏,重要的是要判断是否在操作中,
通过窗体的Active属性,可以确定窗体是否具有焦点。
在窗体有焦点时,该窗体正在被操作,
这时需要完全显示在屏幕当中;
如果窗体没有焦点,通过设置窗体到屏幕的高度来确定窗体的隐藏部分。
在TTimer组件的OnTimer事件中,窗体没有焦点时,隐藏工具栏

.在窗体上添加
TTimer组件
和TImage组件
设置窗体Form1的属性


}

{以图片的形状作为窗体形态}
procedure TForm1.FormCreate(Sender: TObject);
begin
    Self.BorderStyle:=bsNone;//无边框
    self.TransparentColor:=True;
    self.TransparentColorValue:=20;
    self.Color:=20;//form.color :=form1.TransparentColorValue;
end;

//此句会影响单击效果
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
      if Button=mbLeft then
      begin
        ReleaseCapture;
        Perform(wm_syscommand,$F012,0);
      end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);//interval:=200
begin
  if self.Active=False then self.Top:=-30;
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
  self.Top:=30;
end;

//完成 
1 在屏幕的任意位置出现和隐藏的窗体
2 电子日历




原文地址:https://www.cnblogs.com/xe2011/p/2531638.html