如何通过输入字符串,把该字符串转换成对应的窗口名称show出来(200分)

  • 主题发起人 主题发起人 vb0172
  • 开始时间 开始时间
V

vb0172

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]如何通过输入字符串,把该字符串转换成对应的窗口名称show出来
即如何把字符串转换成TFORM型???
 
Caption:=Edit1.Text
 
不需要进行类型转换
 
Self.Caption和Caption和 窗体名.Caption 一样。
 
Tform型?
string类能转换为Tform?
恐怕你的意思就是yzhshi说的吧.
 
??是不是我看错了,200分!还是我理解不对!
Form.Caption := Edit.Text;
 
完全同意楼上!题意不明白,按道理是yzhshi的做法!!
 
是不是这个意思:
procedure StrToShowForm(FormName : string);
var
FWin : TComponent;
begin
FWin := application.FindComponent(FormName);
if FWin is TForm then
(FWin as TForm).Show
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
TempClass:TClass;
begin
RegisterClasses([TForm2]);
TempClass:=getclass('TForm2');
with TFormclass(TempClass).Create(Self) do
begin
Show
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var sdf:TForm;
begin
if Application.FindComponent(edit1.Text) is TForm then
begin
sdf:=Application.FindComponent(edit1.Text) As TForm;
sdf.Show;
end;
end;
 
if Application.FindComponent(edit1.Text) is TForm then
tform(Application.FindComponent(edit1.Text)).show;
 
搞作没有 TFORM TSTRING 能转码?

把string给caption不就可以了

同意 bluerain, 的理解方法
 
你的先注册一个类,然后再产生一个类的实例即可:
假如你的程序有一个TFormShow类

1.注册一个类TFormShow
procedure TForm1.Create(Sender : TObject);
begin
RegisterClasses([TFormShow]);
end;
2.根据输入的字符串产生类的实力并显示
procedure CreateAndShowForm(AFormCaption: string);
var
C:TFormClass;
begin
C:=TFormClass(FindClass('T'+AFormCaption));
with TForm(C.Create(Application)).ShowModal do
Free;
end;

3.调用方法
procedure TForm1.Button1Click(Sender : TObject);
begin
CreateAndShowForm('FormShow');
end;
 
各位,不要将这么简单的问题复杂化了,好不?[:)]
 
1-> 如何通过输入字符串,把该字符串转换成对应的窗口名称show出来
2-> 即如何把字符串转换成TFORM型???
以上两句话并不表达同一个意思的。
如果是前一个意思,那就指定窗口的caption为一字符串吧。
如果是把字符串变成一个类。那可以用findclass。
一个例子:
var xxx:tcontrolclass;
begin
registerclass(tform);
xxx:= tcontrolclass(findclass('tform'));
with xxx.Create (nil) do
begin
left:=100;
top :=40;
show;
end;
end;
 
提问题的应该说清楚,怎么提了以后就不见露面?
 
大概是要把字符串所代表的窗口显示出来吧。并不是指当前窗口的标题。
 

Similar threads

后退
顶部