Не знаю насколько это допустимо, но на данный момент получилось закрыть вопрос так:
Код:
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;
В любом случае хотелось бы услышать замечания от опытных форумчан по этой теме в целом (создание массивов форм из библиотек), чтобы не приходилось впредь подпирать граблями такие ситуации.