Проблемы с компонентом TFrame
Доброго времени суток. Возникла щекотливая ситуация с компонентом TFrame.
Есть главная форма. На ней размещен объект класса TPageControl с несколькими объектами TTabSheet.
При загрузке главного окна в событии OnCreate я создаю экземпляр класса TFrame и помещаю в нужный мне TabSheet.
Выглядит примерно так.
public:
myFrame : TCustomFrame; //Класс наследник TFrame с моими компонентами там.
.
.
.
.
.
procedure TForm.FormCreate(Sender: TObject);
begin
myFrame := TCustomFrame.Create(Application);
myFrame.Parent := My_TabSheet;
end;
Долгое время все устраивало. Но в один момент появилась необходимость запускать приложение на Full HD мониторе (1920x1080). И поскольку виндовые буквы были очень маленькими, через "Специальные возможности" винды установили "Средние буквы".
Все поплыло и поехало...
Винда своими топорными методами сделала Resize всех объектов, где-то увеличив только длину, а где-то длину и ширину. Но подгружаемые фреймы так и остались старого размера. Что сделало интерфейс кривым и неюзабельным.
Вариант скопировать фрейм на форму не рассматривается, нарушится модульность. Да и сам запутаюсь в нескольких десятках тысяч строк кода. Будет путаница с огромным количеством компонентов.
Разбить на разные окна - не катит. Именно данный вид вызывает бОльшее одобрение у юзеров.
Пока приходит на ум единственный вариант - просто сделать отдельную версию программы для таких случаев (Текст 125%, Текст 150%).
Можно проблему решить менее радикальным способом? А именно масштабируемость подгружаемых фреймов при включении специальных возможностей виндовс.
|