πŸ”§

Failed to load site

We apologize for the temporary inconvenience. Please try to reload the page.
You can always check the current server status in the Telegram community chat.

Reload page
503
Биний, синий INI`й...

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС соврСмСнныС ΠΈ Π½Π΅ соврСмСнныС прилоТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π° свой вкус ΠΈ Ρ†Π²Π΅Ρ‚. НапримСр, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠΎΠ½, автосохранСниС ΠΈ автозапуск ΠΈ Ρ‚.Π΄. ΠΈ Ρ‚.ΠΏ.

Вся информация ΠΎ настройках, СстСствСнно, Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π΄Π΅-Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ. ИмСнно для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ .ini ΠΈ рССстр. Π₯отя сразу Ρ…ΠΎΡ‡Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ рССстр, ΠΊΠ°ΠΊ цСнтрализованная систСма хранСния настроСк с ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ доступом, Π±Ρ‹Π» Π·Π°Π΄ΡƒΠΌΠ°Π½ с Ρ‚ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π· ΠΈ навсСгда ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Но Ρ‚ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΠ΄Π½Π° вСсьма банальная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Ссли ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму всС Ρ€Π°Π½Π΅Π΅ сохранСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ просто Π±ΡƒΠ΄ΡƒΡ‚ потСряны. Π’ΠΎΡ‚ поэтому использованиС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всС Π΅Ρ‰Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСнятся Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π€Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прСдставляСт собой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π² сСбС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ - сСкции. Имя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Число Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ.

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прСдставляСт собой Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ файловая пСрСмСнная, которая связываСтся с физичСским Ρ„Π°ΠΉΠ»ΠΎΠΌ Π½Π° дискС. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Delphi слуТит класс TIniFile. И для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π» Uses модуля ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ IniFiles.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ выглядит ini-Ρ„Π°ΠΉΠ»:

[Application] ; Имя Ρ€Π°Π·Π΄Π΅Π»Π° - сСкции.
String=Π‘Ρ‚Ρ€ΠΎΠΊΠ° ; ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΈΡ… значСния.
Integer=0
Float=10,1
Date=23.11.03
Time=16:09:42
BoolTrue=1
BoolFalse=0

Ну, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ini-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ IniFiles Π² Ρ€Π°Π·Π΄Π΅Π» Uses нашСго модуля Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠœΡ‹ Ρ‚Π°ΠΊ ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ IniFile.

...
Var Inifile: TIniFile;
...

ΠŸΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌΠΈ дСйствиями с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ слСдуСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° TIniFile, для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Create. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ экзСмпляр класса TIniFile, связывая Π΅Π³ΠΎ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Если Ρ„Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° дискС отсутствуСт, Ρ‚ΠΎ ΠΎΠ½ создаСтся Π·Π°Π½ΠΎΠ²ΠΎ. БохраняСтся ΠΎΠ½ автоматичСски Π² систСмный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Windows. Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ шаг, см. Π½ΠΈΠΆΠ΅.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ btnWriteIniFile ΠΌΡ‹ запишСм ΠΊΠΎΠ΄ для записи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΡ‹ запишСм строку, Ρ†Π΅Π»ΠΎΠ΅ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число, Π΄Π°Ρ‚Ρƒ, врСмя ΠΈ логичСскиС значСния.

procedure TForm1.btnWriteIniFileClick(Sender: TObject);
begin
 // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ini-Ρ„Π°ΠΉΠ» Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
 iniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'IniFile.ini');
 // ЗаписываСм строку
 IniFile.WriteString('Application', 'String', 'Π‘Ρ‚Ρ€ΠΎΠΊΠ°');
 // ЗаписываСм Ρ†Π΅Π»ΠΎΠ΅ число
 IniFile.WriteInteger('Application', 'Integer', 0);
 // ЗаписываСм Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число
 IniFile.WriteFloat('Application', 'Float', 10.10);
 // ЗаписываСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ
 IniFile.WriteDate('Application', 'Date', Date);
 // ЗаписываСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя
 IniFile.WriteTime('Application', 'Time', Time);
 // ЗаписываСм логичСскоС True
 IniFile.WriteBool('Application', 'BoolTrue', True);
 // ЗаписываСм логичСскоС False 
 IniFile.WriteBool('Application', 'BoolFalse', False);  
end;

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ btnReadIniFile ΠΌΡ‹ запишСм ΠΊΠΎΠ΄ для считывания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ записали. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

procedure TForm1.btnReadIniFileClick(Sender: TObject);
begin
 // ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ini-Ρ„Π°ΠΉΠ» Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ  
 iniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'IniFile.ini');
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ строку
 Edit1.Text:=IniFile.ReadString('Application', 'String', 'Π‘Ρ‚Ρ€ΠΎΠΊΠ°');
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Ρ†Π΅Π»ΠΎΠ΅ число
 Edit2.Text:=IntToStr(IniFile.ReadInteger('Application', 'Integer', 0));
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число
 Edit3.Text:=FloatToStr(IniFile.ReadFloat('Application', 'Float', 10.10));
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Ρ‚Ρƒ
 Edit4.Text:=DateToStr(IniFile.ReadDate('Application', 'Date', Date));
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ врСмя
 Edit5.Text:=TimeToStr(IniFile.ReadTime('Application', 'Time', Time));
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ логичСскоС True
 If IniFile.ReadBool('Application', 'BoolTrue', True) = True 
   Then Edit7.Text:='True';
 // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ логичСскоС False
 If IniFile.ReadBool('Application', 'BoolFalse', False) = False
   Then Edit8.Text:='False';
end;

И Ρ‚Π°ΠΊ ΠΆΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² ini-Ρ„Π°ΠΉΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² зависимости ΠΎΡ‚ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ "АвтосохранСниС полоТСния Ρ„ΠΎΡ€ΠΌΡ‹" Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΈ Π½Π° основании этого ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹, Π΅Π΅ Π΄Π»ΠΈΠ½Ρƒ ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. А ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹. И ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию сохранСниС ΠΈ восстановлСниС полоТСния Ρ„ΠΎΡ€ΠΌΡ‹ двумя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

// БохраняСм ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹
procedure TForml.FormDestroy(Sender: TObject);
Var iniFile : TIniFile;
begin
 iniFile:=TiniFile.Create(ExtractFilePath(Application.ExeName) + 'IniFile.ini');
 iniFile.WriteInteger('Position', 'Top', Top);
 iniFile.WriteInteger('Position', 'Left', Left);
 iniFile.WriteInteger('Position', 'Height', Height);
 iniFile.WriteInteger('Position', 'Width', Width);
 iniFile.Free;
end;
// ВосстанавливаСм ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ способом
procedure TForml.FormCreate(Sender: TObject);
Var iniFile : TIniFile;
begin
 iniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'IniFile.ini');
 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π΅Ρ‚ Π»ΠΈ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  If (iniFile.ReadString('Position', 'Top', IntToStr(Forml.Top)) = '')
    OR (iniFile.ReadString('Position', 'Left', IntToStr(Forml.Left)) = '')
      OR (iniFile.ReadString('Position', 'Height', IntToStr(Forml.Height)) = '')
        OR (iniFile.ReadString('Position', 'Width', IntToStr(Forml.Width)) = '')
          Then WindowState:=wsMaximized
  Else
    Begin
      WindowState:=wsNormal;
      Top:=StrToInt(iniFile.ReadString('Position', 'Top', IntToStr(Forml.Top)));
      Left:=StrToInt(iniFile.ReadString('Position', 'Left', IntToStr(Forml.Left)));
      Height:=StrToInt(iniFile.ReadString('Position', 'Height', IntToStr(Forml.Height)));
      Width:=StrToInt(iniFile.ReadString('Position', 'Width', IntToStr(Forml.Width)));
    End;
end;
// ВосстанавливаСм ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ способом
procedure TForm1.FormCreate(Sender: TObject);
Const NoFind = -1000;
Var iniFile               : TIniFile;
    Not_Left, Not_Top     : Integer;
    Not_Height, Not_Width : Integer;
begin
 iniFile:=TIniFile.Create(ExtractFilePath(Application.Exename) + 'IniFile.ini');
 // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π΅Ρ‚ Π»ΠΈ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
 Not_Left:=iniFile.ReadInteger('Position', 'Left', NoFind);
 Not_Top:=iniFile.ReadInteger('Position', 'Top', NoFind);
 Not_Height:=iniFile.ReadInteger('Position', 'Height', NoFind);
 Not_Width:=iniFile.ReadInteger('Position', 'Width', NoFind);

 If (Not_Left = NoFind) OR (Not_Top = NoFind)
   OR (Not_Height = NoFind) OR (Not_Width = NoFind)
     Then Form1.Position:=poScreenCenter;
 Else
   Begin
     Left:=iniFile.ReadInteger('Position', 'Left', Left);
     Top:=iniFile.ReadInteger('Position', 'Top', Top);
     Height:=iniFile.ReadInteger('Position', 'Height', Height);
     Width:=iniFile.ReadInteger('Position', 'Width', Width);
   End;
 iniFile.Free;
end;

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ считанныС значСния, ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹, Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Π½Π΅Ρ‚ Π»ΠΈ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если пустыС значСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ сохранСны Ρ€Π°Π½Π΅Π΅, Π»ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ. Π’ΠΎΠ³Π΄Π° "ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ" заставляСм Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Ρ„ΠΎΡ€ΠΌΡƒ, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ экран, ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅
Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу
Hosted by uCoz