Д6
Пишу консольное приложение...
Использую все стандартные функции...В общем все как обычно только без форм, диалогов, сообщений..
но в самом начале приложение почему-то вылетает на строке создания класса, типа
Здравствуйте, AHgpeu, Вы писали:
AH>Д6 AH>Пишу консольное приложение... AH>Использую все стандартные функции...В общем все как обычно только без форм, диалогов, сообщений.. AH>но в самом начале приложение почему-то вылетает на строке создания класса, типа
А описание ошибки? AH>
AH>tmpName := TMyClass.Create;
AH>
AH>Почему?*
А может класс абстрактный? AH>Имеет ли значение какой класс я создаю?*
Конечно.
Если бы вы написали имя класса, наверно легче было бы. Не TStrings ли вы создаёте?
Здравствуйте, OdesitVadim, Вы писали:
OV>Здравствуйте, AHgpeu, Вы писали:
AH>>Д6 AH>>Пишу консольное приложение... AH>>Использую все стандартные функции...В общем все как обычно только без форм, диалогов, сообщений.. AH>>но в самом начале приложение почему-то вылетает на строке создания класса, типа OV>А описание ошибки? AH>>
AH>>tmpName := TMyClass.Create;
AH>>
AH>>Почему?* OV>А может класс абстрактный? AH>>Имеет ли значение какой класс я создаю?* OV>Конечно. OV>Если бы вы написали имя класса, наверно легче было бы. Не TStrings ли вы создаёте?
Привожу область кода:
constructor TMSExpImpTest.Create;
begin
inherited;
DBTestList := TObjectList.Create;
end;
procedure TMSExportImportGen.AfterConstruction;
begin
inherited;
TempDirectory := IncludeTrailingPathDelimiter(CfgPCMS.FCfgExp_Imp.ExpImpPath);//ошибка здесьend;
ОШИБКА выглядит так:
Exception EAccessViolation in module MyProject.exe at 00596EA3.
Access violation at adress 00996EA3 in module 'MyProject.exe'
Read of adress 0000001C
AH>Exception EAccessViolation in module MyProject.exe at 00596EA3.
AH>Access violation at adress 00996EA3 in module 'MyProject.exe'
AH>Read of adress 0000001C
AH>
Делфи правильно вас обругала. CfgPCMS я так полагаю объект? А он на данный момент создан? Так как ошибка очень похожа на это.
AH>>Exception EAccessViolation in module MyProject.exe at 00596EA3.
AH>>Access violation at adress 00996EA3 in module 'MyProject.exe'
AH>>Read of adress 0000001C
AH>>
OV>Делфи правильно вас обругала. CfgPCMS я так полагаю объект? А он на данный момент создан? Так как ошибка очень похожа на это.
ПОпробую представить код несколько с другой стороны...Может так легче будет разобраться...
type
TMSExportImportGen = class(TObject)
//..........end;
TMSExpImpTest = class(TMSExportImportGen)
//..........end;
TTestImport = class(TMSExpImpTest)
//..........end;
var
tmpTestImp: TTestImport;
begin
try
tmpTestImp := TTestImport.Create;
//*********************Входим в TTestImport.Create (Debug F7)constructor TMSExpImpTest.Create;
begin
inherited;
DBTestList := TObjectList.Create;
end;
procedure TMSExportImportGen.AfterConstruction;
begin
inherited;
TempDirectory := IncludeTrailingPathDelimiter(CfgPCMS.FCfgExp_Imp.ExpImpPath);//!!!!!!!!!!!!!!ОШИБКА!!!!!!!!!end;
finally
tmpTestImp.Free;
end;
end.
Здравствуйте, OdesitVadim, Вы писали:
OV>Здравствуйте, AHgpeu, Вы писали:
AH>>ПОпробую представить код несколько с другой стороны...Может так легче будет разобраться...
OV>[scip] OV>Ваше уточнение ничего не дало. я же спрашиваю, где берётся переменная CfgPCMS.FCfgExp_Imp.ExpImpPath??? OV>Что такое CfgPCMS?
Я в своей программе использую модули не мной написаны, поэтому тоже не очень пока разбираюсь что к чему... (с разработчиком проконсультироваться пока нет возможности) Все представленое ниже-то, что я использую
type
TCfgMSPC = class(TCfgPC)
...........
published
property FCfgExp_Imp: TCfgExp_Imp read FFCfgExp_Imp write FFCfgExp_Imp;
.....
end;
TCfgExp_Imp = class(TAlStreamer)
.....
published
property ExpImpPath: String read FExpImpPath write FExpImpPath;
...........
end;
var
CfgPCMS: TCfgMSPC;
Здравствуйте, OdesitVadim, Вы писали:
OV>Здравствуйте, AHgpeu: OV>Перед вызовом вашего метода, который генерит ошибку должен вызываться код такого вида
OV>
OV> CfgPCMS:=TCfgMSPC.create;
OV>
Верно!
Только
CfgPCMS:=TCfgMSPC.create;
не работает.
Докопался глубже..нашел чего создать надо.
Спасибо за наводящий ответ))