首页 > 解决方案 > 如何从框架中获取用户输入并保存到 txt 文件中?

问题描述

我的程序运行如下:

我想要实现的是当我单击button(tick)表单中的保存时,将所有用户输入从框架打印到 txt 文件。这是我的代码形式。谁能给我一些提示?

我的框架图像:

在此处输入图像描述

我的表格图片:

在此处输入图像描述

我的代码:

在此处输入图像描述

标签: filedelphiframefiremonkeytabcontrol

解决方案


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

创建一个新的应用程序。我选择制作一个 VCL 应用程序,但我仔细检查了 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;

您需要将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;

推荐阅读