Текущий архив: 2005.11.13;
Скачать: CL | DM;
Вниз
Access violation Найти похожие ветки
← →
syte_ser78 © (2005-10-25 12:25) [0]Делаю следующим образом
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; получаю сабж.
Как сделать правильно?
← →
Ega23 © (2005-10-25 12:33) [1]ExtractFilePath(ParamStr(0)) ?
Хотя, мне кажется, что дело не в этом...
← →
Digitman © (2005-10-25 12:41) [2]
> syte_ser78 © (25.10.05 12:25)
использовать встроенный отладчик для поиска "неисправностей" религия не позволяет ?
← →
syte_ser78 © (2005-10-25 12:44) [3]frm_resourse - data module если это чтото меняет
← →
Плохиш © (2005-10-25 12:45) [4]
> IniFile:=TIniFile.Create(frm_resourse.programm_path+"main.
> ini");
ССЗБ (c) АП :-)
В этот момент переменная ещё указывает "на деревню дедушке"
← →
syte_ser78 © (2005-10-25 12:50) [5]Digitman © (25.10.05 12:41) [2]
Не поверите, использывал!
← →
syte_ser78 © (2005-10-25 12:54) [6]Плохиш © (25.10.05 12:45) [4]
??? Не понял
← →
Digitman © (2005-10-25 12:55) [7]
> Плохиш © (25.10.05 12:45) [4]
"на деревню дедушке" указывает не frm_resourse, а load_setting
это ж надо так извратиться - использовать ссылку на рег.процедуру вместо метода объекта, использование которого здесь просто очевидно !
← →
clickmaker © (2005-10-25 12:55) [8]
> syte_ser78 © (25.10.05 12:50) [5]
а зачем в ф-ии-члене класса явно юзать переменную frm_resourse?
← →
Digitman © (2005-10-25 12:57) [9]
> syte_ser78 © (25.10.05 12:50) [5]
> Не поверите, использывал!
не поверю.
если бы использовал, то давно бы увидел, что на момент вызова load_setting() значение одноименного поля объекта равно nil
← →
Плохиш © (2005-10-25 13:07) [10]
> Digitman © (25.10.05 12:55) [7]
Точно! Извращения начинающих неисповедимы.
← →
syte_ser78 © (2005-10-25 13:52) [11]clickmaker © (25.10.05 12:55) [8]
а чем это плохо?
Digitman © (25.10.05 12:55) [7]
Извините, можно поподробнее?
← →
Digitman © (2005-10-25 14:00) [12]
> 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 14:01) [13]frm_resourse.pas
_________________type
....
procedure load_setting;
....
procedure tfrm_resourse.loaad_setting;
.....
_________________
Так заработало. Спасибо
Страницы: 1 вся ветка
Текущий архив: 2005.11.13;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.029 c