Опитвам се да създам procedure
, който създава TDataModule
в Application
като свой родител.
Проблемът е, че вторият път, когато извикам procedure
, параметърът dm
все още е nil
. Очаквам нещо различно от nil
като се има предвид, че е създаден преди.
Ето кода, който опитвам:
procedure UseDataModule(dm : TDataModule; cClass:TcomponentClass);
begin
if dm = nil then
cClass.Create(Application);
end;
Има някои изисквания, които искам за това procedure
:
Даденото
TDataModule
трябва да бъде създадено веднъжТрябва да се създаде от
procedure
, защото искам да го използвам понякога, затова не го поставям във формуляри за автоматично създаване- Неговият родител винаги ще бъде
Application
cClass.Create(Application)
на каквото и да било. Ако искате резултатът да бъде присвоен наdm
, тогава, както и вашият код, който прави действителното присвояване,dm
трябва да бъде параметърvar
, в противен случай резултатът ще бъде отхвърлен след излизане на UseDataModule. - person MartynA   schedule 04.01.2019