【问题标题】:Edit File on Click of a button in Lazarus单击 Lazarus 中的按钮编辑文件
【发布时间】:2019-12-20 05:06:45
【问题描述】:

就像我在上一个帖子中发布的那样,我想创建一个小程序来编辑 .ini 文件中的一行。现在我已经实现了一个按钮,但不要进一步。我基本上想实现以下场景:

1) 点击按钮

2) 由于点击按钮,程序打开 .txt/.ini 文件(在后台)该文件位于同一文件夹中

3) 文本文件中的一个单词被替换为新单词

4) 文件被保存

5) 消息弹出

procedure TLauncher.ButtonClick(Sender: TObject);

    var

    begin

     ShowMessage('.Ini-File was edited')
    end;

【问题讨论】:

    标签: lazarus freepascal


    【解决方案1】:

    这很容易做到,如果你把你想做的事情分解成只 各做一件事。

    假设您的表单有一个字符串变量 IniFileName 但是您已对其进行了初始化 你想要,例如使用 TOpenDialog。那么你就可以拥有

    procedure TForm1.LoadIni;
    begin
      Memo1.Lines.LoadfromFile(IniFileName);
    end;
    
    procedure TForm1.SaveIni;
    begin
      Memo1.Lines.SaveToFile(IniFileName);
    end;
    
    procedure TForm1.Button1Click;
    begin
       if OpenDialog1.Execute then begin
         IniFileName := OpenDialog1.FileName;
         LoadIni;
       end;
    end;
    
    procedure TForm1.Button2Click;
    begin
       SaveIni;
       ShowMessage(IniFileName + ' saved to disk');
    end;
    

    【讨论】:

    • 好吧,我试过了,但出现了一些错误。我认为这是因为我没有初始化 TForms,我必须在哪里执行此操作?
    • 如果您的主表单仅包含我的答案中的代码,则不会出现任何错误 - 而不是尝试使用您现有的项目,只需创建一个新项目,它只需要几个分钟。放几个按钮,一个 TOpenDialog 和一个 TMemo 就可以了。使用 Button1 调用 OpenDialog1.Execute ,当您运行项目时,按钮 Lazarus 应该会自动创建 TForm1 的实例。
    • 查看我的答案的更新,这应该是您需要的所有代码。
    • 是的,很抱歉,我已经很久没有查看 cmets 了,但它确实有效。谢谢。
    猜你喜欢
    • 2011-10-07
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2023-03-26
    • 2012-09-02
    • 2015-06-25
    相关资源
    最近更新 更多