用窗体名(字符串)如何创建并打开一个肯定存在的窗体(100)

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

lllygang

Unregistered / Unconfirmed
GUEST, unregistred user!
D

de410

Unregistered / Unconfirmed
GUEST, unregistred user!
var form1:tformbeginform1:=tform1.Create(nil);end;
 
S

Supermay

Unregistered / Unconfirmed
GUEST, unregistred user!
用FindClass(),使用前要RegisterClass()
 
L

leader47

Unregistered / Unconfirmed
GUEST, unregistred user!
能否詳細點。。。:》
 
H

hhjjhhjj

Unregistered / Unconfirmed
GUEST, unregistred user!
var Form1: TForm1
vForm: TFormClass
frm:TForm;implementationuses unit2,unit3;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin vform:= TFormClass(GetClass(Edit1.Text))
frm:=vForm.Create(nil)
try frm.ShowModal
finally frm.Free
end;end;在每个可能被调用的单元中写上注册类方法, 例如: initialization RegisterClass(TForm2);但是这个必须写窗体类名, 如 Tform2, 如果写 窗体名:form2,将得不到. 当然你可以做一点小小的处理就可以了.
 
L

lmjhyxlj

Unregistered / Unconfirmed
GUEST, unregistred user!
没那么麻烦。。。。。。。。用API函数。procedure TForm1.FormCreate(Sender: TObject)
var Num: Cardinal
begin Ghwnd := FindWindow(’QElementClient Window’, ’Element Client’)
//获取窗口 if Ghwnd = 0 then begin ShowMessage(’未启动’)
Application.Terminate()
end
GetWindowThreadProcessId(Ghwnd, ProcID)
//进程ID ProcessID := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID)
// 进程句柄 if ProcessID = 0 then begin showMessage(’无法打开线程’)
Application.Terminate()
end
哈哈
 
L

lllygang

Unregistered / Unconfirmed
GUEST, unregistred user!
接受答案了.
 
顶部