![]() |
|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
![]() Цитата:
![]() |