Показать сообщение отдельно
  #1  
Старый 01.11.2012, 11:43
Antony_svt Antony_svt вне форума
Прохожий
 
Регистрация: 01.11.2012
Сообщения: 2
Репутация: 10
Сообщение Проблемы с компонентом 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%).

Можно проблему решить менее радикальным способом? А именно масштабируемость подгружаемых фреймов при включении специальных возможностей виндовс.
Ответить с цитированием