Спасибо, запихнула. Работает!
Попутно вопрос - у меня в последнее время уже при закрытии 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 в самой процедуре закрытия каждой формы вместо всех этих наворотов нельзя? ).
Может непонятно объясняю, лучше код выкладывать? Но он такой... длинновастенький
