如何从框架中获取用户输入并保存到txt文件中?

How to get the user input from the frame and save into txt file?

我的程序运行是这样的:

我想要实现的是当我点击表单中的保存 button(tick) 时,将框架中的所有用户输入打印到一个 txt 文件中。这是我的代码形式。任何人都可以给我一些提示吗?

我的相框图片:

我的表格图片:

我的代码:

下面应该教你所有你需要的成分。

创建一个新的应用程序。我选择制作一个 VCL 应用程序,但我 double-checked 在 Firemonkey (FMX) 中所有步骤都是相同的。

添加几个编辑框和组合框,像这样:

分别将控件命名为 eFirstNameeLastNamecbSexbtnSave

然后为按钮编写以下 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;

您需要将 IniFilesIOUtils 添加到您的 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;