Я создаю приложение FMX для Win32 (только одна форма) с помощью C ++ Builder.Я бы хотел, чтобы программа запомнила, где ее форма была расположена на экране пользователя и ее размер (размер можно изменить) в следующий раз, когда пользователь запустит ее.
Может кто-нибудь направить меня в правильном направлении?
спасибо, ретранслятор
ОБНОВЛЕНИЕ: Спасибо Сэм.Я сделал то, что вы сказали, но записал информацию о положении в базу данных SQLite вместо текстового файла.В БД есть таблица с именем «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();