Показать сообщение отдельно
  #2  
Старый 13.08.2021, 02:23
Motorolla Motorolla вне форума
Прохожий
 
Регистрация: 06.06.2019
Сообщения: 17
Версия Delphi: Delphi 7 / XE8
Репутация: 10
По умолчанию

Не знаю насколько это допустимо, но на данный момент получилось закрыть вопрос так:

Код:
TLibForm= class(TForm)
   ...
private
    procedure WinProc(var Msg : TMessage); message WM_SYSCOMMAND;
  ...
end;

implementation

procedure TLibForm.Winproc(var Msg: TMessage);
var
p:Tpoint;
wc:TWinControl;
ia:integer;
begin
  p.X:=msg.LParamLo;
  p.Y:=msg.LParamHi;
  if msg.WParam=SC_CLOSE then
    begin
      wc:= FindControl(WindowFromPoint(p));
      ...
      for ia:=0 to FormHandlList.Count-1 do
        begin
          if HWND(FormHandlList.Items[ia])=TForm(wc).Handle then
            begin
{$Ifdef tester}
              ShowMessage('close - '+ TForm(wc).Name); 
{$endif}
              tform(wc).Close;
              FormHandlList.Delete(ia);//Remove??
              break;
            end;
        end;
    end;
  Inherited;
end;

В любом случае хотелось бы услышать замечания от опытных форумчан по этой теме в целом (создание массивов форм из библиотек), чтобы не приходилось впредь подпирать граблями такие ситуации.
Ответить с цитированием