Конференция "Начинающим" » Создание и уничтожение дочерней формы
 
  • cyber-pilot (30.03.08 19:38) [0]
    из основной формы создаю дочернюю:

    if not Assigned(fmRefers) then
       fmRefers := TfmRefers.Create(Self, FParam);
     fmRefers.Show;



    первый раз создается нормально, а после того как я ее закрываю и пытаюсь открыть снова условие не срабатывает, выдается ошибка.
    Пробовал у дочерней формы писать так:
    procedure TfmRefers.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
     Action := caFree;
     Self := nil;
    end;


    Не помогает. Как делать правильно?
  • Leonid Troyanovsky © (30.03.08 20:14) [1]

    > cyber-pilot   (30.03.08 19:38)  

    > Не помогает. Как делать правильно?

    Либо не использовать ссылку fmRefers, что допустимо при Action := caFree,
    либо использовать механизм Notification для того, чтобы ее обнилить
    при разрушении формы.

    Да, и конструктор Create(Self, FParam) - некошерный,
    лучше, скажем, CreateWithParam, хотя можно просто
    присвоить параметры и после обычного Create(Self).

    --
    Regards, LVT.
 
Конференция "Начинающим" » Создание и уничтожение дочерней формы
Есть новые Нет новых   [134433   +25][b:0][p:0]