Текущий архив: 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.46 MB
Время: 0.04 c