一个不知道能不能实现的问题![在线等待]

TangDY 2003-08-21 01:16:19
请问一下高手:

能不能把一个窗口的名字如:w_Main这个窗口的Name属性值即'w_Main'保存在一定INI文件内,要打开这个窗口时只需从INI文件中调出这个窗口的名字就可以打开这个窗口!

简单点来说说是怎么让这个窗口的名称用变量的形式来调用!!

请高手给出实例~~~~


请高手帮帮忙!小弟感激不尽!![在线等待]
...全文
46 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
IORILI 2003-08-21
  • 打赏
  • 举报
回复
改正ss:=form1.Name;为ss:=form2.name;
IORILI 2003-08-21
  • 打赏
  • 举报
回复
当然 要在前面声明iniMyFile了,再加inifiles单元 一切ok
IORILI 2003-08-21
  • 打赏
  • 举报
回复
procedure TForm2.FormCreate(Sender: TObject);
var

ss:string;
begin
ss:=form1.Name;
iniMyFile := TIniFile.Create('e:\1.ini'); //form2保存到ini文件中
iniMyFile.WriteString('x','name', ss);
inimyfile.free;
end;
//form2是activeform,从ini文件中动态创建
procedure TForm1.Button2Click(Sender: TObject);
var
me:string;
name:tform;
begin
iniMyFile := TIniFile.Create('e:\1.ini');
me:=iniMyFile.readstring('x','name','');
name:=tform.create(owner);
name.Name :=me;
name:=tform2.create(owner);
name.Show ;
inimyfile.free;
end;

实现不了你杀了我,但是实现了,要给高分,因为试了好久 ^_^
jacket008 2003-08-21
  • 打赏
  • 举报
回复
上面的formname:=kminifile.readstring('form','formname','');

改为formname:=forminifile.readstring('form','formname','');

jacket008 2003-08-21
  • 打赏
  • 举报
回复
inifilename:=ExtractFilePath(Application.ExeName)+'form.ini';
forminifile:=tinifile.create(inifilename);
formname:=kminifile.readstring('form','formname','');
if application.FindComponent(formname)=nil then
创建窗体
yagi1976 2003-08-21
  • 打赏
  • 举报
回复
越说越乱.
cobi 2003-08-21
  • 打赏
  • 举报
回复
根据你的要求,hch_45(んこん) 的程序代码其实已经能够实现了
不过如果你的窗体很多的话,那么动态创建应该是最好的解决方法
lxpbuaa 2003-08-21
  • 打赏
  • 举报
回复
TangDY (Tang) (▲):
w_Main本身只是一个变量,所以还不如存储它的类名,比如:TForm1。
然后是有办法通过'TForm1'这个字符串来创建它的实例并显示出来的。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
honkily 2003-08-21
  • 打赏
  • 举报
回复
还是不明白,没有思路
lxpbuaa 2003-08-21
  • 打赏
  • 举报
回复
如果换个角度,比如象 hch_45(んこん) (★) 说的那样比较名字或者类名,基本上可以间接解决这个问题。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
lxpbuaa 2003-08-21
  • 打赏
  • 举报
回复
搂住主要的意思是说:
通过一个字符串来引用一个变量。比如:
var
varName: String;
OneVar: Integer;
begin
varName := 'OneVar';
//那么现在他想通过varName来引用OneVar这个变量!
end;

直接实现这一功能,我目前还没有办法,尽管我曾经非常想实现这个功能!

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
TangDY 2003-08-21
  • 打赏
  • 举报
回复
各位大哥我不是动态创建,我要打开特定的窗口!
如:我现在有一个窗口叫w_Main
我现在把这个窗口的名字保存在了一个INI文件中,
我要怎么才能把从INI文件中读取的这个窗口打开??
gardenyang 2003-08-21
  • 打赏
  • 举报
回复
建议你还是根据参数动态改变你的固定窗口的设置,这样好像还节省内存,还能提高速度,而且还好控制一些。可以在ini文件中写入一些格式要求,或者可以在文件中写入一些控件的位置,信息等,在显示的过程中动态创建出来
hch_45 2003-08-21
  • 打赏
  • 举报
回复
program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); //这个不能省
Application.Run;
end.




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

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

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
form_var : TForm;
i : integer;
begin
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i].Name = 'Form2' then //Form2你可以从INI读到的String就行了
begin
form_var := Screen.Forms[i];
form_var.ShowModal;
break;
end;
end;
end;

end.
moeryang 2003-08-21
  • 打赏
  • 举报
回复
动态创见这个窗体
TonyWzz 2003-08-21
  • 打赏
  • 举报
回复
不明白,是不是用窗口名称做参数打开特定窗口?
开发背景随着时代的进步和科技的发展,计算机网络的发展日新月异,深刻的影响着我们的生活,受疫情的影响,为了方便教师和学生打印文件以及取文件,节约学生和老师等待时间,节约打印店的打印成本,提高打印店的打印效率,开发一款在线的打印系统是十分有必要的,校园在线打印预约系统把上传文件、选择打印店、打印支付、打印完成取文件以及管理功能集成一身,各管理人员分工合作、相互配合,及时完成打印任务。也方便打印店打印更方便更节约成本的打印文件以及节约学生的空闲时间。现阶段学校的打印文件模式都是传统的打印方式:学生需要跑到打印店拿QQ,微信,U盘给打印店的电脑上传文件,在等待别人打印完成后才能让打印店管理员打印文件,打印店管理员需要一个一个选择文件打印,在打印高峰期间,管理员打印文件忙不过来,不能给同学良好的打印服务,所以传统的打印文件方式不满足与当前社会的发展趋势。 开发目的利用现代计算机相关技术来进行在线打印预约,以减轻打印店工作人员的工作负担以及提高工作效率,减少学生打印等待时间。学生只需要上传需要打印的文件,然后选择打印店,选择支付以及去打印文件大概时间就可以,而打印店管理员只需要接收学生发的文件,以及打印,把打印的文件整理即可,可以根据学生取文件的时间自己编排打印文件的顺序,更好的利用时间,提高打印文件效率。 项目简介该项目是基于SpringBoot+SSM校园在线打印预约系统,包含两个角色:一个是用户模块,一个是打印店管理员模块。用户模块下面有个人中心模块,店铺选择模块,资料分享模块,资料分享模块,交易记录模块,使用帮助模块。在打印店管理员模块下有点单管理模块,店铺管理模块,价格管理模块。 项目运行截图下面从登录页面、用户界面和打印店管理页面三个部位来叙述全部系统。用户、商店和管理员都必须登录才可以浏览在线管理系统系统。管理员可以管理方法商店,但管理员可以是商店。用户登录输入校园在线打印预约系统的网址后,电脑浏览器将进到校园在线打印预约系统。会先进到系统的主页。用户可以先浏览系统首页,随后登录。用户注册如果登录者尚未注册,您需要注册一个帐户。单击右侧的注册按钮,将显示注册页面。用户需要填写用户名、电话号码、登录密码等信息。输入手机号码后,点击发送验证码,验证码就会发送到手机上。填写完毕后,点击注册按钮。添加后会跳转到登录页面。注册界面如图 短信验证码发送成功后,在线预约打印系统会弹出提示,此时用户的手机就会收到短信验证码。短信验证码发送成功界面如图进行账号注册。用户收到短信验证码如图 用户登录后的首页店铺详情个人中心      积分记录我的文件  文件共享管理员登录订单信息  订单详情店铺信息  价格设置 项目论文      

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧