![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Вот такая вот темка. Вот по заданию сделал код, но он ругается в одном месте(((( Помогите исправить) вот задание
Разработать новое приложение, в котором создать обработчики событий для формы (выбрать на вкладке Event): OnShow и OnClose для окна Form1. Содержание обработчиков событий приводится в краткой теории к выполнению практической работы. Размеры и положение окна на экране, которое было при выходе, выдавать в заголовке окна. а вот код Код:
procedure TForm1.FormShow(Sender: TObject);
Var f:file of Integer; // файловая переменная, тип integer
i:Integer; // целочисленная переменная
begin
AssignFile(f,'pos.ini');
{$I-}
Reset(f);
{$I+}
if IOResult<>0 then Exit;
Read(f,i); //считать из файла значение
Form1.Top:=i; // верхнее положение окна
Read(f,i);
Form1.Left:=i; // левое положение окна
Read(f,i);
Form1.Width:=i; // ширина окна
Read(f,i);
Form1.Height:=i; // высота окна
CloseFile(f);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var f:file of Integer;
begin
AssignFile(f,'pos.ini');
{$I-}
Rewrite(f);
{$I+}
if IOResult<>0 then Exit;
Write(f,Form1.Top);// вот тут ругается, ну соответственно, если удаляю эту строчку, ругается на все остальные, в чём причина? помогите
Write(f,Form1.Left);
Write(f,Form1.Width);
Write(f,Form1.Height);
CloseFile(f);
end;Последний раз редактировалось Admin, 25.10.2011 в 20:50. |
|
#2
|
|||
|
|||
|
Я читал, что такие параметры лучше сохранять в ini файлах.
Только в uses надо добавить модуль inifiles Код:
var
ini : TIniFile; //объявляем переменную типа inifile
begin
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+'my.ini');
ini.WriteInteger('Position', 'L', Form1.Left);// позиция окна
ini.WriteInteger('Position', 'T', Form1.Top);
ini.WriteInteger('Size', 'W', Form1.Width);// размер окна
ini.WriteInteger('Size', 'H', Form1.Height);
ini.Free;
end.![]() Последний раз редактировалось t116, 25.10.2011 в 20:25. |
|
#3
|
|||
|
|||
|
Цитата:
спасибо, про это я не знал, завтра на свежую голову попытаемся... |
|
#4
|
|||
|
|||
|
Так читать из файла.
ini.ReadInteger('Position', 'T', 261)- 3-й параметр, вы берете из ini файла, он будет у вас по умолчанию если не будут меняться размеры или позиция. В дальнейшем при изменении размера или позиции он будет перезаписываться. Код:
procedure TForm1.FormShow(Sender: TObject);
var
ini : TIniFile;
begin
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+'my.ini');
Form1.Left := ini.ReadInteger('Position', 'L', 329);//применяем позицию окна
Form1.Top := ini.ReadInteger('Position', 'T', 261);
Form1.Width := ini.ReadInteger('Size', 'W', 384); //применяем размеры окна
Form1.Height := ini.ReadInteger('Size', 'H', 312);
ini.Free;
end;![]() Последний раз редактировалось t116, 25.10.2011 в 21:27. |
|
#5
|
|||
|
|||
|
Цитата:
Во,во эт мне и надо сделать))) |
|
#6
|
|||
|
|||
|
Цитата:
![]() |