我正在用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();