Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.10.2011, 19:33
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Восклицание обработчик событий

Вот такая вот темка. Вот по заданию сделал код, но он ругается в одном месте(((( Помогите исправить) вот задание
Разработать новое приложение, в котором создать обработчики событий для формы (выбрать на вкладке 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  
Старый 25.10.2011, 20:11
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Я читал, что такие параметры лучше сохранять в 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  
Старый 25.10.2011, 20:36
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Радость Обработчики событий

Цитата:
Сообщение от t116
Я читал, что такие параметры лучше сохранять в 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.
а дальше сам


спасибо, про это я не знал, завтра на свежую голову попытаемся...
Ответить с цитированием
  #4  
Старый 25.10.2011, 20:55
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Так читать из файла.
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  
Старый 25.10.2011, 21:52
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Радость

Цитата:
Сообщение от t116
Так читать из файла.
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;
Размеры и положение в заголовок сам выведешь?

Во,во эт мне и надо сделать)))
Ответить с цитированием
  #6  
Старый 25.10.2011, 21:53
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от cyber922
Во,во эт мне и надо сделать)))
Делай сам
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025