【问题标题】:Form location/size FMX - Win32表格位置/大小 FMX - Win32
【发布时间】:2018-11-30 18:55:48
【问题描述】:

我正在使用 C++ Builder 为 Win32(仅一种形式)构建 FMX 应用程序。我希望程序记住它的表单在用户屏幕上的位置以及用户下次运行它的大小(可调整大小)。

有人能指出正确的方向吗?

谢谢, 接力人

更新:谢谢山姆。我按照你说的做了,但将位置信息写入 SQLite 数据库而不是文本文件。 db 有一个名为“pos”的表,其中包含 5 个整数字段。 4 是位置,1 被命名为“项目”,只是为了方便我的更新查询(我不是 sql 专家)。请注意,下面的代码需要 try/catch 改进和一些测试以确保表单坐标有效。

这段代码的形式是 OnShow 事件:

TFDQuery *query2;
query2 = new TFDQuery(NULL);
query2->Connection = Form1->FDConnection1;
query2->SQL->Text = "SELECT * FROM pos";
query2->Open();
Form1->Left = query2->FieldByName("left")->AsInteger;
Form1->Top = query2->FieldByName("top")->AsInteger;
Form1->Width = query2->FieldByName("width")->AsInteger;
Form1->Height = query2->FieldByName("height")->AsInteger;   
query2->Close();
query2->DisposeOf();

这段代码的形式是 OnClose 事件:

TFDQuery *queryUPDATE;
queryUPDATE = new TFDQuery(NULL);
queryUPDATE->Connection = Form1->FDConnection1;
queryUPDATE->SQL->Text = "UPDATE pos set left = '" + IntToStr(Form1->Left) + "', top = '" + IntToStr(Form1->Top) + "', width = '" + IntToStr(Form1->Width) + "', heigth = '" + IntToStr(Form1->Height) + "' WHERE item = '1'";
queryUPDATE->ExecSQL();
queryUPDATE->Close();
queryUPDATE->DisposeOf();

【问题讨论】:

    标签: firemonkey c++builder


    【解决方案1】:

    OnClose 将位置、高度、状态...保存到 INI 文件中。 OnCreate 恢复所有信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2022-01-24
      • 2019-07-03
      • 2019-05-20
      • 1970-01-01
      相关资源
      最近更新 更多