я работаю над проектом, используя delphi 7 , проект является проектом обслуживания, и я не являюсь первоначальным кодировщиком проекта, у меня есть ситуация, когда мне нужно закрыть доступно Форма после того, как она была создана с помощью кода в определенных ситуациях. Форма является моделью
. Вот пример кода этого
var
frmStratum : TfrmStratum;
begin
if not assigned(frmStratum) then myMainForm.OnExecute(PropAction);
end;
внутри myMainForm.OnExecute (PropAction);у меня есть
frmStratum := TfrmStratum.Create(Self, Self as IStratum,inttostr(m_surveyno),Module,m_stations,false);
теперь процедура TfrmStratum.FormActivate из TfrmStratum я делаю много калькуляций и пишу в базу данных
var
if (bMassStratumExport) AND (bDoneOne) then
begin
//write to database..
end;
сейчася должен сделать это по крайней мере 20 раз , то есть
1. Create the form
2. onactivate do database writing
3. close TfrmStratum
, так как это модальная форма, которую я не могу закрыть, если ниже, где я ее создаю, поэтому я хотел закрыть ее, активировать каккак только шаг 2 сделан
, теперь я попробовал это
if (bMassStratumExport) AND (bDoneOne) AND NOT (bReadyToclose) then
begin
//do database writing
if bNowClo then frmStratum.close;
end
РЕДАКТИРОВАТЬ: (отредактировано, чтобы сделать вопрос более ясным)
Onactivate формы (frmStratum), я хочу закрыть модальную форму (frmStratum), поэтому я делаю это
procedure TfrmStratum.FormActivate(Sender: TObject);
begin
if (bMassStratumExport) AND (bDoneOne) AND NOT (bReadyToclose) then
begin
//do database writing
if bNowClo then self.close;// i need to close the form after after doing database write
end
end;
, но элемент управления во время ошибок переходит к self.close, но этоне закрывает форму.как с этим справиться?