delphi无标题的窗口移动 第二个窗口也同时移动,
我使用的软件类似delphi,但是请不要使用delphi的api来实现系统api可以给我说说,我参考过下面的办法unitUnit1;interfaceusesWindow...
我使用的软件类似delphi ,但是请不要使用delphi 的api来 实现
系统api可以给我说说,
我参考过下面的办法
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
protected
procedure WMMove(var Message: TWMMove); message WM_MOVE;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
var a,b: Integer;
procedure TForm1.WMMove(var Message: TWMMove);
begin
if Assigned(Form2) then
begin
Form2.Left := Left + a;
Form2.Top := Top + b;
end;
inherited;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.Show;
Form2.Left := Left+Width;
Form2.Top := Top;
a := Form2.Left - Left;
b := Form2.Top - Top;
end;
end.
但是会按妞会出现问题 ,点击到按钮的边缘和窗口个交界处, 就会把窗口的最左边闪到当前鼠标的位置
如图 展开
系统api可以给我说说,
我参考过下面的办法
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
protected
procedure WMMove(var Message: TWMMove); message WM_MOVE;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
var a,b: Integer;
procedure TForm1.WMMove(var Message: TWMMove);
begin
if Assigned(Form2) then
begin
Form2.Left := Left + a;
Form2.Top := Top + b;
end;
inherited;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.Show;
Form2.Left := Left+Width;
Form2.Top := Top;
a := Form2.Left - Left;
b := Form2.Top - Top;
end;
end.
但是会按妞会出现问题 ,点击到按钮的边缘和窗口个交界处, 就会把窗口的最左边闪到当前鼠标的位置
如图 展开
展开全部
定义一个布尔全局变量,当开始输入数据时,设置它的值为假,保存数据后,再设置它为真,关闭窗口时检测这个值,如果为假,抛出对话框,提醒用户是否需要保存数据,如果YES,就保存数据关闭窗口,如果NO,就直接关闭窗口。不行吗?
追问
我的问题是 窗口移动的问题,不是关闭窗口的问题。
追答
写错了。也旧你说的这种搞法吧
if Assigned(Form2) then
begin
Form2.Left := Left + a;
Form2.Top := Top + b;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单,你的FORM2是哪个?
FORM1的POSITION属性设为PODEFAULT.否则初始的AB是错的。
要居中得自己创建时获取屏宽高来计算。
可以先把AB设为0,动FORM1看它会不会随着动。
关闭按钮的事件在哪里没看见
FORM1的POSITION属性设为PODEFAULT.否则初始的AB是错的。
要居中得自己创建时获取屏宽高来计算。
可以先把AB设为0,动FORM1看它会不会随着动。
关闭按钮的事件在哪里没看见
更多追问追答
追问
我用的是inno setup 这个程序是delphi写的 但是不完全一下
我只是模仿这个写的 代码和delphi非常像 ,
关闭按钮 和其他按钮都会闪动,我的按钮用的是一个插件写的 那个插件写的按钮没有单独的句柄
插件叫botva2,或者你加我Q 帮我解决下? 185195475
追答
用DELPHI写的话我能帮你解决,什么INNO我一点都不懂,帮不了你了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询