У меня есть главная форма приложения и ряд форм загружаемых из dll. Главная форма хранит указатели на нужные формы и вызывает метод Show.
Формы из dll вызываются путем клипа по списку в listbox. Если клик один по иконке, то открыть/закрыть. Если двойной клик, то только открыть.
Началось все с того, что исключительно под Windows 8 при вызове формы вылетала ошибка "деление на ноль". Сейчас же, под Win10, отладчик GDB стал вылетать на 902 строку модуля LCLProc. Хотя без отладчика программа работает чисто. При разборе так и не понял, почему при двойном клике по строке ошибка вылетает, а при одинарном через иконку нет. Но проблему решил изменив настройки свойств компонента формы.
Код функции вызова окна следующий:
- Код: Выделить всё
- procedure TFProjectEdit.EditorShow(Sender: TObject);
 var
 tmpForm:TForm;
 begin
 if Assigned(ThisApplication)then
 begin
 if Assigned(tvEditors.Selected)and Assigned(tvEditors.Selected.Data) then
 begin
 tmpForm:=TForm(tvEditors.Selected.Data);
 if Assigned(tmpForm) then
 begin
 if Sender=nil then
 begin
 //IconClick
 if tmpForm.Visible then
 tmpForm.Close
 else
 tmpForm.Show;
 end
 else begin
 //DblClick
 tmpForm.Show;
 end;
 end;
 tvEditors.Selected.Selected:=false;
 end;
 end;
 end;
В результате его выполнения программа проходит мимо этого сравнения, проверки свойства AutoSize формы и идет дальше к исключению.
- Код: Выделить всё
- control.inc:
 738: if (AWidth>100000) or (AHeight>100000) then
 BoundsOutOfBounds;
Приходит к
- Код: Выделить всё
- LCLProc
 902: RaiseGDBException
При включении AutoSize формы все становилось нормально, но на форме появлялся бардак. Как оказалось бардак устраивает StatusBar. И выключив у него и формы свойства AutoSize проблема ушла вообще.

