像QQ那样的
我也需要啊UP一下
我也需要啊UP一下
解决方案 »
- 关于delphi程序员的出路的思考!
- 关于复制粘帖的问题
- 关于串口接收数据(急)
- 如何获得内网PC的公网IP地址及端口号(向请教P2P高手)
- 谁有密码加密解密程序~~~~~~~~~~
- 动态报表只能生成第一条记录,找不到原因!!!【给100分】
- ========= 如何这样安装或设置WinXP? ==========
- 怎样删除String中的某个字符?(如把"$6655726"中的"$"去掉,或把"255 255 0"中第二个空格去掉)??
- 我遇到一个奇怪的问题,在窗体上又个treeview控件,在设计状态我不能改变它的高度,在运行时它使得我的窗口不能resize,为什么??
- 请问如果mdi子窗口没有关闭,在主窗口关闭时如何给出提示?
- 新手询问关于点击鼠标右键,出现菜单的问题。
- 窗口问题???
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;
ReleaseCapture;
Perform(WM_SYSCOMMAND,$f012,SC_MOVE)
放在onmousemove里面
像QQ那样的东东,我也要,[email protected]
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, Graphics,
StdCtrls, ExtCtrls;type
THidePosition = (hpLeft, hpTop, hpRight); TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
FHided : Boolean; //窗体是否已经隐藏
FHidePosition : THidePosition; //窗体隐藏的位置
procedure CMMouseEnter(var Message: TMessage); message CM_MouseEnter;
protected public
{ Public declarations } end;var
Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.CMMouseEnter(var Message: TMessage);
begin
if FHided then
begin
case FHidePosition of
hpLeft : Left := 0;
hpTop : Top := 0;
hpRight : Left := Screen.Width - Width;
end;
FHided := false;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Constraints.MaxHeight := Screen.Height;
end;procedure TForm1.FormShow(Sender: TObject);
begin
//
end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
//
end;procedure TForm1.Timer1Timer(Sender: TObject);
var
p: TPoint;
bInForm: Boolean;
begin
if (not FHided) then
begin
GetCursorPos(p);
p := ScreenToClient(p);
bInForm := (p.X >-5 ) and (p.X <= Width)
and (p.Y > -27) and (p.Y <= Height);
if not bInForm then
begin
if ((Left < 10) and (Top < 10))
or ((Screen.Width - (Left + Width) < 10) and (Top < 10)) then
begin
Top := 0 - Height + 2;
FHidePosition := hpTop;
FHided := true;
end
else if Top < 10 then
begin
Top := 0 - Height + 2;
FHidePosition := hpTop;
FHided := true;
end
else if Left < 10 then
begin
Left := 0 - Width + 2;
FHidePosition := hpLeft;
FHided := true;
end
else if Screen.Width - (Left + Width) < 10 then
begin
Left := Screen.Width - 1;
FHidePosition := hpRight;
FHided := true;
end;
end;
end;
end;end.