表单位置/大小FMX-Win32

时间:2018-11-30 18:55:48

标签: firemonkey c++builder

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

有人可以指出我正确的方向吗?

谢谢, 中继员

更新:谢谢山姆。我按照您说的做了,但是将位置信息写到了SQLite数据库而不是文本文件中。该数据库有一个名为“ pos”的表,其中包含5个整数字段。 4是职位,1被命名为“ item”,只是为了方便我的更新查询(从长远来看我不是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();

1 个答案:

答案 0 :(得分:2)

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