delphi 窗口显示和隐藏的问题
form1是主窗口,当出发按钮事件后:Form1.hide;Form2:=Tform2.Create(self);form2.showmodal;在这之后如果我要在for...
form1是主窗口,当出发按钮事件后:
Form1.hide;
Form2:=Tform2.Create(self);
form2.showmodal;
在这之后如果我要在form2里面点击按钮关闭form2回到form1又应该如何写代码呢?
貌似直接反过来是不行的。。。
. 展开
Form1.hide;
Form2:=Tform2.Create(self);
form2.showmodal;
在这之后如果我要在form2里面点击按钮关闭form2回到form1又应该如何写代码呢?
貌似直接反过来是不行的。。。
. 展开
展开全部
可以使用delphi 的消息机制SendMessage()
说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数:
1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄
2. wMsg 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量
3. wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄
4. lParam 通常是一个指向内存中数据的指针。由于WParm、lParam和Pointer都是32位的,因此,它们之间可以相互转换
隐藏窗口的wMsg值是: WM_SHOWWINDOW 当隐藏或显示窗口时发送此消息给这个窗口
SendMessage(form1的句柄, WM_SHOWWINDOW,0,0);
说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数:
1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄
2. wMsg 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量
3. wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄
4. lParam 通常是一个指向内存中数据的指针。由于WParm、lParam和Pointer都是32位的,因此,它们之间可以相互转换
隐藏窗口的wMsg值是: WM_SHOWWINDOW 当隐藏或显示窗口时发送此消息给这个窗口
SendMessage(form1的句柄, WM_SHOWWINDOW,0,0);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用2个按钮 属性里Modalresule设为mrok 和mrcancel Form2的创建写成一个函数 有返回值
function form2show:boolean;
var
Form2:TForm;
begin
Form2:=Tform2.Create(self);
if form2.ShowModal=mrok then
result:=true
else
result:=false;
end;
Form1里面
if form2show=true then
form1.show;
记得给分 有疑问+QQ448912
function form2show:boolean;
var
Form2:TForm;
begin
Form2:=Tform2.Create(self);
if form2.ShowModal=mrok then
result:=true
else
result:=false;
end;
Form1里面
if form2show=true then
form1.show;
记得给分 有疑问+QQ448912
更多追问追答
追问
不知道是不是我没说清楚!
我已经通过按钮进入了form2窗口了
我希望在form2里面点击按钮再隐藏或者关闭form2窗口,显示form1窗口,form1窗口是主窗口
其实我就一个问题搞不清楚!其他form窗口如何调用主窗口?只要调用了主窗口应该就可以使用show方法显示主窗口了,该如何调用主窗口呢?
追答
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses
unit1;
procedure TForm2.Button1Click(Sender: TObject);
begin
unit1.Form1.Show;
end;
end.
这样的做法不是很规范 但可以达到你的目的 在下面从新引用下form1的单元就好了
implementation
{$R *.dfm}
uses
unit1;
这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
Close;
end;
begin
Form1.Show;
Close;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询