file - 如何从框架中获取用户输入并保存到 txt 文件中?
问题描述
我的程序运行如下:
- 我有一个带有添加按钮、保存按钮和选项卡控件的表单。
- 当点击表单中的添加按钮时,tabcontrol会添加更多的tabitem。并且 tabitem 基本上是从 myframe 添加的,其中包括 TEdit 中的用户键入值。
我想要实现的是当我单击button(tick)
表单中的保存时,将所有用户输入从框架打印到 txt 文件。这是我的代码形式。谁能给我一些提示?
我的框架图像:
我的表格图片:
我的代码:
解决方案
下面应该教你所有你需要的成分。
创建一个新的应用程序。我选择制作一个 VCL 应用程序,但我仔细检查了 Firemonkey (FMX) 中的所有步骤是否相同。
添加一些编辑框和组合框,如下所示:
分别命名控件eFirstName
、eLastName
、cbSex
和btnSave
。
OnClick
然后为按钮编写以下处理程序:
procedure TForm1.btnSaveClick(Sender: TObject);
var
DataFile: TMemIniFile;
begin
DataFile := TMemIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'PersonalData.txt'));
try
DataFile.WriteString('General', 'FirstName', eFirstName.Text);
DataFile.WriteString('General', 'LastName', eLastName.Text);
if cbSex.ItemIndex <> -1 then
DataFile.WriteString('General', 'Sex', cbSex.Items[cbSex.ItemIndex]);
DataFile.UpdateFile;
finally
DataFile.Free;
end;
end;
您需要将IniFiles
和都添加IOUtils
到您的uses
列表中(至少implementation
一个)。
现在,如果你填写表格,
并单击Save
按钮,将创建以下文件:
[General]
FirstName=Andreas
LastName=Rejbrand
Sex=Male
仅从屏幕截图中并不明显,但如果您在顶部的编辑框并Tab反复按下该键,您会转到第二个编辑框,然后是组合框,最后是按钮。这是因为我确保标签顺序是正确的。你也应该这样做。
还要注意带下划线的字符。这些被称为键盘加速器。例如,如果我按Alt+ F,焦点将移至该First name
字段。这是通过为标签提供标题(文本)&First name:
并将相应的编辑控件分配给标签的FocusControl
属性来实现的。
在这种情况下,按钮是Default
,这意味着它是响应键的Enter按钮。如果它不是默认的(在您的 GUI 中,这可能没有意义),我会给它标题&Save
并更改&Sex:
为S&ex:
. 你能猜到为什么吗?
其他方法
您还可以使用TStringList
:
procedure TForm1.btnSaveClick(Sender: TObject);
var
DataFile: TStringList;
begin
DataFile := TStringList.Create;
try
DataFile.AddPair('FirstName', eFirstName.Text);
DataFile.AddPair('LastName', eLastName.Text);
if cbSex.ItemIndex <> -1 then
DataFile.AddPair('Sex', cbSex.Items[cbSex.ItemIndex]);
DataFile.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'PersonalData.txt'),
TEncoding.UTF8);
finally
DataFile.Free;
end;
end;
推荐阅读
- c++ - (C++) 中断;并返回;不适用于我的 for() 函数
- boolean-logic - 表达式 !A + (A . !B) = !(AB) 如何?
- php - 如何在搜索结果 Wordpress 中启用 TablePress 内容
- javascript - 使父级 div 高度与子级相同
- c++ - 跟踪 pthread 包装器 api 的线程生命周期
- ruby-on-rails - 从 if 块中提取 Ruby 方法
- python - Python - rTorrent - XMLRPC 库 - 获取跟踪器 url
- bash - 如何在bash中的管道之后从while循环中获取信息
- javascript - 如何使用 node 和 expressJS 生成 html 文件
- python-3.x - Graphene Graphql - 如何链式突变