一个MDI小问题,送分了(50分)

  • 主题发起人 主题发起人 lmtfw
  • 开始时间 开始时间
L

lmtfw

Unregistered / Unconfirmed
GUEST, unregistred user!
三个FORM,FORM1是主,FORM2,FORM3是子FORM ,用
Form2:=TForm2.Create(Form1);
FORM2.SHOW;
然后在FORM2的BUTTON1。CLICK 中FORM3。SHOWMODAL
我想在FORM3的BUTTON1。CLICK中改变FORM2的某些属性,由于TFORM2生成的实例名不一定就是FORM2,我使用FORM2就报错。
请问如何访问和调用FORM2
 
FORM3不能以模态方式来显示吧,
你用FORM3。SHOW看看。
分别在FORM2和FORM3的应用部分用USES调用FROM3 和 FORM2。
 
已经USES 了,不行,和这没关系。我发现用APPLICATION。CREATEFROM(TFORM2,FORM2)
生成的实例可以用FORM2来表示,而用上面的那种生成的实例在FORM2中也只能使用SELF,
用FORM2就错误
 
我同样有一个小问题?mdi程序,在建立子窗体后,怎样让主窗体的WINDWS菜单自动添加
菜单项,并且单击该菜单,转移到该窗口!
 
如果你采用手工建立窗体,不一次行加载,那么窗体必须先建立,才能对其属性
做修改,对象没建立怎么修改呢,CREATE后,然后改其属性,然后SHOW
 
用子窗体循环判断窗体类为tform2
 
to:wzs1976
设置主窗体的WindowsMenu属性,为你的一个菜单项
to:lmtfw
我在主窗口的的interface段,这段的uses添加了那个子窗口单元
并定义主窗口实例时定义的另一个子窗口
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, Db, ADODB, OleCtrls, SHDocVw, [red]Unit2[/red];
type
TForm1 = class(TForm)
…………
end;
var
Form1: TForm1;
[red]FormOrder: TForm2[/red];
implementation
uses Unit3, Unit4;
…………
procedure TForm1.N8Click(Sender: TObject);
begin
N8.Enabled := False;
FormOrder := TForm2.Create(Self);
end;

这样我在Unit3里uses unit1
这种情况下在
FormOrder中我TForm3.Create(Self);
在Form3中我就可以直接设置FormOrder的属性
你需要事先知道你要控制的窗口叫什么
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,unit2;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
form2:tform2; //form2实例的声明要在interface部分才行的,如要过程中声明,那只是临时创建的,所以后面便用form2时就找不到了
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
form2:=TFORM2.Create(form1);
form2.Show;
end;

end.
 
to 浪里白跳,FEISHU
你们的用法我都不行啊,还有什么原因么
 
多人接受答案了。
 
后退
顶部