![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access violation
syte_ser78 © (2005-10-25 12:25:00)Делаю следующим образом
DPR
--------
begin
Application.Initialize;
frm_resourse:=Tfrm_resourse.Create(Application);
frm_resourse.programm_path:=ExtractFilePath(Application.ExeName);
frm_resourse.load_setting;
.....
--------
frm_resourse.pas
----------
public
......
load_setting:procedure;
programm_path:string;
end;
.......
procedure load_setting;
var
IniFile: TIniFile;
begin
IniFile:=TIniFile.Create(frm_resourse.programm_path+'main.ini');
frm_resourse.last_user:=IniFile.ReadInteger('last','user',0);
frm_resourse.last_number_TZ:=IniFile.ReadInteger('last','tz',0);
frm_resourse.last_number_drawing:=IniFile.ReadInteger('last','draving',0);
frm_resourse.ini_files:='main.ini';
end;
........
----------
в результате в dpr при вызове frm_resourse.load_setting; получаю сабж.
Как сделать правильно?
syte_ser78 (2005-10-25 14:01:00) [1]frm_resourse.pas
_________________
type
....
procedure load_setting;
....
procedure tfrm_resourse.loaad_setting;
.....
_________________
Так заработало. Спасибо
Digitman (2005-10-25 14:00:00) [2]
> syte_ser78 © (25.10.05 13:52) [11]
begin
Application.Initialize;
frm_resourse:=Tfrm_resourse.Create(Application);
frm_resourse.programm_path:=ExtractFilePath(Application.ExeName);
frm_resourse.load_setting;
.....
--------
frm_resourse.pas
----------
public
......
procedure load_setting; //объявляем процедурный метод класса, а не рег.процедуру !
..
end;
.......
//реализуем этот процедурный метод
procedure Tfrm_resourse.load_setting;
var
IniFile: TIniFile;
begin
IniFile:=TIniFile.Create(programm_path+'main.ini');
try
last_user:=IniFile.ReadInteger('last','user',0);
last_number_TZ:=IniFile.ReadInteger('last','tz',0);
last_number_drawing:=IniFile.ReadInteger('last','draving',0);
ini_files:='main.ini';
finally
IniFile.Free;
end;
end;
syte_ser78 (2005-10-25 13:52:00) [3]clickmaker © (25.10.05 12:55) [8]
а чем это плохо?
Digitman © (25.10.05 12:55) [7]
Извините, можно поподробнее?
Плохиш (2005-10-25 13:07:00) [4]
> Digitman © (25.10.05 12:55) [7]
Точно! Извращения начинающих неисповедимы.
Digitman (2005-10-25 12:57:00) [5]
> syte_ser78 © (25.10.05 12:50) [5]
> Не поверите, использывал!
не поверю.
если бы использовал, то давно бы увидел, что на момент вызова load_setting() значение одноименного поля объекта равно nil
Digitman (2005-10-25 12:55:00) [6]
> Плохиш © (25.10.05 12:45) [4]
"на деревню дедушке" указывает не frm_resourse, а load_setting
это ж надо так извратиться - использовать ссылку на рег.процедуру вместо метода объекта, использование которого здесь просто очевидно !
clickmaker (2005-10-25 12:55:00) [7]
> syte_ser78 © (25.10.05 12:50) [5]
а зачем в ф-ии-члене класса явно юзать переменную frm_resourse?
syte_ser78 (2005-10-25 12:54:00) [8]Плохиш © (25.10.05 12:45) [4]
??? Не понял
syte_ser78 (2005-10-25 12:50:00) [9]Digitman © (25.10.05 12:41) [2]
Не поверите, использывал!
Плохиш (2005-10-25 12:45:00) [10]
> IniFile:=TIniFile.Create( frm_resourse.programm_path+'main.
> ini');
ССЗБ (c) АП :-)
В этот момент переменная ещё указывает "на деревню дедушке"
syte_ser78 (2005-10-25 12:44:00) [11]frm_resourse - data module если это чтото меняет
Digitman (2005-10-25 12:41:00) [12]
> syte_ser78 © (25.10.05 12:25)
использовать встроенный отладчик для поиска "неисправностей" религия не позволяет ?
Ega23 (2005-10-25 12:33:00) [13]ExtractFilePath(ParamStr(0)) ?
Хотя, мне кажется, что дело не в этом...