关于‘动态创建窗体’问题
各位大侠:
我的程序思路是:
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
end
else
begin
//MyForm:=TForm(MyComponent).Create(Application);
//MyForm:=TForm.Create(Application);
//MyForm.Name:=FormName;
MyForm.ShowModal;
end;
问题是打开窗体时报错!select name from h_code_tree 的结果如下:
Frm_sysparm
Frm_ruku
Frm_chuku 等等!请问怎么解决
各位大侠:
我的程序思路是:
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
end
else
begin
//MyForm:=TForm(MyComponent).Create(Application);
//MyForm:=TForm.Create(Application);
//MyForm.Name:=FormName;
MyForm.ShowModal;
end;
问题是打开窗体时报错!select name from h_code_tree 的结果如下:
Frm_sysparm
Frm_ruku
Frm_chuku 等等!请问怎么解决
各位大侠:
我的程序思路是:
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
end
else
begin
//MyForm:=TForm(MyComponent).Create(Application);
//MyForm:=TForm.Create(Application);
//MyForm.Name:=FormName;
MyForm.ShowModal;
end;
问题是打开窗体时报错!select name from h_code_tree 的结果如下:
Frm_sysparm
Frm_ruku
Frm_chuku 等等!请问怎么解决
各位大侠:
我的程序思路是:
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
end
else
begin
//MyForm:=TForm(MyComponent).Create(Application);
//MyForm:=TForm.Create(Application);
//MyForm.Name:=FormName;
MyForm.ShowModal;
end;
问题是打开窗体时报错!select name from h_code_tree 的结果如下:
Frm_sysparm
Frm_ruku
Frm_chuku 等等!请问怎么解决 怎么没有人 来解决??????????????????????????
各位大侠:
我的程序思路是:
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
end
else
begin
//MyForm:=TForm(MyComponent).Create(Application);
//MyForm:=TForm.Create(Application);
//MyForm.Name:=FormName;
MyForm.ShowModal;
end;
问题是打开窗体时报错!select name from h_code_tree 的结果如下:
Frm_sysparm
Frm_ruku
Frm_chuku 等等!请问怎么解决 怎么没有人 来解决??????????????????????????
你调试一下,这个MyComponent是不是返回nil?
返回值不是 NIL,怎么办
应这样:try
....
finnally
myfrom.free;
end;
我在frm_main中用
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
try
MyForm:=TForm(MyComponent);
//MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
Frm_DM.AddLog(Frm_login.p_username,Formmeno,Now);
finally
//MyForm.free;
MyForm:=Nil;
end;
end
else
begin
try
//MyForm:=TForm(MyComponent).Create(Application);
MyForm:=TForm.Create(nil);
//MyForm:=TForm(MyComponent);
//MyForm.Name:=FormName;
MyForm.ShowModal;
finally
MyForm.free;
MyForm:=Nil;
end;
end;时,报错!一:我的autu_create forms 只有 三个frm_login,frm_dm,frm_dm;而available forms 很多如frm_ruku /frm_chuku 等等!
我在frm_main中用
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
try
MyForm:=TForm(MyComponent);
//MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
Frm_DM.AddLog(Frm_login.p_username,Formmeno,Now);
finally
//MyForm.free;
MyForm:=Nil;
end;
end
else
begin
try
//MyForm:=TForm(MyComponent).Create(Application);
MyForm:=TForm.Create(nil);
//MyForm:=TForm(MyComponent);
//MyForm.Name:=FormName;
MyForm.ShowModal;
finally
MyForm.free;
MyForm:=Nil;
end;
end;时,报错!一:我的autu_create forms 只有 三个frm_login,frm_dm,frm_dm;而available forms 很多如frm_ruku /frm_chuku 等等!
我在frm_main中用
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
try
MyForm:=TForm(MyComponent);
//MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
Frm_DM.AddLog(Frm_login.p_username,Formmeno,Now);
finally
//MyForm.free;
MyForm:=Nil;
end;
end
else
begin
try
//MyForm:=TForm(MyComponent).Create(Application);
MyForm:=TForm.Create(nil);
//MyForm:=TForm(MyComponent);
//MyForm.Name:=FormName;
MyForm.ShowModal;
finally
MyForm.free;
MyForm:=Nil;
end;
end;时,报错!
我在frm_main中用
Frm_DM.Q_tree2.SQL.Add('select * from h_code_tree where meno=:meno');
Frm_DM.Q_tree2.ParamByName('meno').AsString:=ListView1.Selected.Caption;
Frm_DM.Q_tree2.Open;
FormName:=Frm_DM.Q_tree2.FieldByName('name').AsString;
MyComponent:=Application.FindComponent(FormName);
Formmeno:=Frm_DM.MenuName(FormName);
if (MyComponent Is TForm) then
begin
try
MyForm:=TForm(MyComponent);
//MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
Frm_DM.AddLog(Frm_login.p_username,Formmeno,Now);
finally
//MyForm.free;
MyForm:=Nil;
end;
end
else
begin
try
//MyForm:=TForm(MyComponent).Create(Application);
MyForm:=TForm.Create(nil);
//MyForm:=TForm(MyComponent);
//MyForm.Name:=FormName;
MyForm.ShowModal;
finally
MyForm.free;
MyForm:=Nil;
end;
end;时,报错!二:我的 forms 全是 autu_create forms 时,同样的程序,运行正常!请问怎么解决呢,我想用动态 创建窗体!
if (MyComponent Is TForm) then
begin
try
MyForm:=TForm(MyComponent);
//MyForm:=TForm(MyComponent).Create(Application);
MyForm.ShowModal;
Frm_DM.AddLog(Frm_login.p_username,Formmeno,Now);
finally
//MyForm.free;
MyForm:=Nil;
end;
end
else
begin
try
//MyForm:=TForm(MyComponent).Create(Application);
MyForm:=TForm.Create(nil);
//MyForm:=TForm(MyComponent);
//MyForm.Name:=FormName;
MyForm.ShowModal;
finally
MyForm.free;
MyForm:=Nil;
end;
end;时,报错!二:我的 forms 全是 autu_create forms 时,同样的程序,运行正常!请问怎么解决呢,我想用动态 创建窗体!