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