Я использую решение, которое может вам помочь. Вы можете объявить новую глобальную переменную (контейнер), которая сохранит ваши windows.
WindowsList: TObjectList<Tform>
И для события OnCreate
вы можете сделать следующую операцию:
WindowList.Add(Self);
И для событие OnDestroy
вы можете сделать:
WindowList.Remove(Self);
И когда вам нужно найти окно, вы будете перебирать список и находить нужное окно, например, по тэгу и ClassName. В моем случае я написал новый класс, который наследует TForm, и использую его для форм MdiChild. В этом классе я перегружал методы Create
и Destroy
. И в этих методах я использую WindowList.Add(Self)
и WindowList.Remove(Self)
.
И для WindowsList я создал новый класс, и в этом классе я написал метод FindWindow
.