Во-первых надо правильно использовать конструкцию
with Somthing
do:
Так не надо!
Код:
Data := TIniFile.Create(FName);
if FileExists(FName) then
with Data do
begin
Form2.DateTimePicker1.DateTime := StrToDate(Data.ReadString('TmeSet', '1', ''));
Free;
end;
Надо так:
Код:
Data := TIniFile.Create(FName);
with Data do
begin
Form2.DateTimePicker1.DateTime := StrToDate(Data.ReadString('TmeSet', '1', ''));
end;
Data.Free;
Если просто объявить Free, то компилятор может отнести этот метод не к Data, а к Form1.
Во-вторых, надо научиться пользоваться отладчиком. Если дан адрес по которому возникла ошибка, то можно посмотреть в какой строке кода это возникает. Также для этого можно использовать детальные map-файлы. В моей статье описано как это сделать. А сообщение
Access violation at adress 00000000. Read of adress 00000000.
Возникает при попытке обращения к несуществующему или неинициализированному объекту/переменной.