Я пытаюсь вызвать метод FormClose, но у меня есть проблема с его параметрами, когда я пытаюсь:Как вызвать обработчик события FormClose?
FormName.FormClose(nil, CaFree);
Обычно я могу вызвать обработчик событий компонента с параметром, используя nil
или sender as TOBject
. Но теперь я получаю сообщение об ошибке:
Constant object cannot be passed as var parameter
Я пробовал много комбинаций для этих двух значений TObject и TAction. Для TObject я попробовал `sender как TObject ', а для TAction - все параметры, такие как CaFree и т. Д.
'FormClose' - это обработчик событий. Почти всегда бывает ошибкой называть это самим. Вы должны просто называть 'Close' (который предназначен только для этого использования). Если вам нужно освободить форму, есть гораздо более подходящие способы сделать это. –
Да, но из-за очень специфического характера проекта я могу закрыть форму без закрытия ParentForm, у ParentForm.onclose есть много функций из-за данных. Моя проблема была решена ниже, в любом случае, спасибо за внимание. – Toster
Вы можете закрыть форму, не закрывая ее родительскую форму, не вызывая FormClose. Как я уже сказал, если вам нужно это сделать, вы, вероятно, делаете что-то очень не так. Ответ Дэвида может решить вашу ближайшую проблему, но делать неправильную вещь и найти хакерское исправление обычно означает больше проблем в будущем. Во-первых, вы должны делать все правильно. –