Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Эффект ненужного растяжения   Найти похожие ветки 

 
Smileman   (2005-01-31 11:19) [0]

Здравствуйте!

Проблему у меня возникла следующая: вот пример ее иллюстрирующий (Delphu 7 Enterprise Edition):

1) создайте новое приложение;
2) киньте на форму допустим TPanel, установите ему Align = alClient;
3) на этот TPanel киньте например TMemo (тут от самих типов используемых контролов мало что зависит);
4) выберите в Object Inspectore наш Panel и поменяйте ему размер, все равно заданием свойств Width Height или мышкой:
5) наблюдайте полученный эффект - TPanel не изменил своего размера (чего и следовало ожидать), но TMemo какого-то черта поменял!!!

Что с этим делать, как бороться? (для мя важно так как пишу контролы, которые в себе содержат другие)! Заранее спасибо!


 
Smileman   (2005-01-31 11:59) [1]

прошу прощения

я забыл сказать у TMemo Align тоже надо поставить alClient


 
Eraser ©   (2005-01-31 16:10) [2]

ReAlign


 
Smileman   (2005-01-31 16:25) [3]

А я не сказал еще:

Проблема была исправлена очень и очень локально то есть, я в своем контейнере делаю так:

procedure TXVisualChart.WMSize(var Message: TWMSize);
begin
 inherited;
 FInnerCtrl.Realign
end;

но по сути проблема остается :-), ведь мой контрол могут кинуть куда угодно... попробовать установить ловушку на родителя?


 
Eraser ©   (2005-01-31 18:53) [4]

Smileman
Скорее всего есть какое-то более простое решение.


 
Smileman   (2005-02-01 11:24) [5]

всегда есть более простое решение, тока чем оно проще тем сложнее его найти...


 
GrayFace ©   (2005-02-01 20:15) [6]

Правка исходников VCL сойдет? Если да, то можно так:

procedure TControl.DoConstrainedResize(var NewWidth, NewHeight: Integer);
var
 MinWidth, MinHeight, MaxWidth, MaxHeight: Integer;
begin
 if Align in [alNone, alLeft, alRight] then
   NewWidth := Width;
 if Align in [alNone, alTop, alBottom] then
   NewHeight := Height;

а дальше if Constraints.MinWidth > 0 then и т.д.


 
Smileman   (2005-02-02 10:42) [7]

Спасибо, но правка исходников не катит, така кая я предоставляю пользователям тока компонент без права на замену Controls.pas, поставлю -таки Hook на родителя :-)

Все, всем большое спасибо за принятое участие (всем двоим :-)))!!!



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.12 c
3-1127142793
BaxTMaH
2005-09-19 19:13
2005.10.30
Странная ошибка


1-1128577548
Norsk
2005-10-06 09:45
2005.10.30
Определение TPopupMenu


14-1128266771
Некто
2005-10-02 19:26
2005.10.30
Тётьки с брашурами


14-1129061365
saNat
2005-10-12 00:09
2005.10.30
Куда все катится...


14-1129023072
Андрей Жук
2005-10-11 13:31
2005.10.30
На www.dynamo.kiev.ua раздают бесплатные почтовые ящики (2 Гб)