大致上是如下的意思:var FormName:String; begin with Query1 do while not EOF do begin FormName:=FieldByName('表单名').asText; //需要在此处运行FormName中所指向的表单,如何实现? Query1.next; end; end;
type TFormClass = class of TForm;function CreateForm(FormClass: TFormClass;const FormName: string): TForm; begin Result := FormClass.Create(MainForm); with Result do begin Parent := MainForm; Name := FormName; Visible := True; end; end;
TO: steelhorse(吾尝终日而思矣,不如须臾之所学也) 您这是运行中建立表单,而我的意思是指,那些表单都是早已建好的,并且也知道它们的名字,并把那些名字组织到一个菜单表中.运行时,Query1从这个菜单表中读入资料,然后一个一个地分配菜单项和对应的表单.当用户选中菜单时,就可以运行相对应的表单.(都怪我前面没有说清楚.)
with T表单名.Create(Application) do begin Show; end; 兄弟以前搞vf吧 跟d还是有区别的
begin
with Query1 do
while not EOF do
begin
FormName:=FieldByName('表单名').asText;
//需要在此处运行FormName中所指向的表单,如何实现?
Query1.next;
end;
end;
begin
Result := FormClass.Create(MainForm);
with Result do
begin
Parent := MainForm;
Name := FormName;
Visible := True;
end;
end;
您这是运行中建立表单,而我的意思是指,那些表单都是早已建好的,并且也知道它们的名字,并把那些名字组织到一个菜单表中.运行时,Query1从这个菜单表中读入资料,然后一个一个地分配菜单项和对应的表单.当用户选中菜单时,就可以运行相对应的表单.(都怪我前面没有说清楚.)
begin
Show;
end;
兄弟以前搞vf吧 跟d还是有区别的
您的 "T表单名" 又从哪里来呢? 它是一个常量。
比如 FormName:='Form3',当然我们知道它的你类是 Tform3 。但是FormName中的内容是动态变化的,如何弄呢?