Показать сообщение отдельно
  #6  
Старый 07.02.2011, 10:58
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Спасибо, запихнула. Работает!
Попутно вопрос - у меня в последнее время уже при закрытии Delphi часто возникает "Access violation at adress... in dcc70.dll///", причём нервный такой - многократно повторяющийся - множащийся окошками. И его никак, кроме как перезагрузившись, не успокоить. Подозреваю, что это может происходить из-за неправильной организации работы с формами. Может кто сталкивался с такой штукой и даст совет - хотя бы как проверить?
У меня в приложении 4 формы с обычным шоу и три - с модальным. Те, которые с модальным, организованы по стандартному(где-то здесь вычитанному) шаблону:
Код:
if Form1 = nil then
      Form1 := TForm1.Create(nil);
    try
      Form1.onAddNewExam := OnAddNewExam;//присвоение конкретной процедуры свойству

      if Form1.WindowState = wsMinimized then
        Form1.WindowState := wsNormal;
      if Form1.ShowModal = mrCancel then
        exit; {  может здесь собака зарыта? - она ж в этом случае   остаётся висеть, так? хотя я по этой ветке и не ходила ещё ((, а ошибка лезет }
    finally
      Form1.Free;
      Form1 := nil;
    end;

Формы, которые с обычным Show, создаются через TFormCreate(self), где self - это вышеупомянутая Form1. В каждой форме есть свойство типа TNotifyEvent, которое вызывается в CloseForm и сообщает форме-собственнику (ну, той самой Form1), что можно вызываемую рушить (а просто использовать Release в самой процедуре закрытия каждой формы вместо всех этих наворотов нельзя? ).
Может непонятно объясняю, лучше код выкладывать? Но он такой... длинновастенький
Ответить с цитированием