如何从框架中获取用户输入并保存到txt文件中?
How to get the user input from the frame and save into txt file?
我的程序运行是这样的:
- 我有一个带有添加按钮、保存按钮和选项卡控件的表单。
- 当点击表单中的添加按钮时,tabcontrol 将添加更多的tabitem。 tabitem 基本上是从 myframe 添加的,其中包括用户在 TEdit 中键入的值。
我想要实现的是当我点击表单中的保存 button(tick)
时,将框架中的所有用户输入打印到一个 txt 文件中。这是我的代码形式。任何人都可以给我一些提示吗?
我的相框图片:
我的表格图片:
我的代码:
下面应该教你所有你需要的成分。
创建一个新的应用程序。我选择制作一个 VCL 应用程序,但我 double-checked 在 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 键,您会转到第二个编辑框,以组合框,最后是按钮。这是因为我确定 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;
我的程序运行是这样的:
- 我有一个带有添加按钮、保存按钮和选项卡控件的表单。
- 当点击表单中的添加按钮时,tabcontrol 将添加更多的tabitem。 tabitem 基本上是从 myframe 添加的,其中包括用户在 TEdit 中键入的值。
我想要实现的是当我点击表单中的保存 button(tick)
时,将框架中的所有用户输入打印到一个 txt 文件中。这是我的代码形式。任何人都可以给我一些提示吗?
我的相框图片:
我的表格图片:
我的代码:
下面应该教你所有你需要的成分。
创建一个新的应用程序。我选择制作一个 VCL 应用程序,但我 double-checked 在 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 键,您会转到第二个编辑框,以组合框,最后是按钮。这是因为我确定 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;