![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эффект ненужного растяжения [D7, Win2k]
Smileman © (2005-01-31 11:19:00)Здравствуйте!
Проблему у меня возникла следующая: вот пример ее иллюстрирующий (Delphu 7 Enterprise Edition):
1) создайте новое приложение;
2) киньте на форму допустим TPanel, установите ему Align = alClient;
3) на этот TPanel киньте например TMemo (тут от самих типов используемых контролов мало что зависит);
4) выберите в Object Inspectore наш Panel и поменяйте ему размер, все равно заданием свойств Width Height или мышкой:
5) наблюдайте полученный эффект - TPanel не изменил своего размера (чего и следовало ожидать), но TMemo какого-то черта поменял!!!
Что с этим делать, как бороться? (для мя важно так как пишу контролы, которые в себе содержат другие)! Заранее спасибо!
Smileman (2005-02-02 10:42:00) [1]Спасибо, но правка исходников не катит, така кая я предоставляю пользователям тока компонент без права на замену Controls.pas, поставлю -таки Hook на родителя :-)
Все, всем большое спасибо за принятое участие (всем двоим :-)))!!!
GrayFace (2005-02-01 20:15:00) [2]Правка исходников 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-01 11:24:00) [3]всегда есть более простое решение, тока чем оно проще тем сложнее его найти...
Eraser (2005-01-31 18:53:00) [4]Smileman
Скорее всего есть какое-то более простое решение.
Smileman (2005-01-31 16:25:00) [5]А я не сказал еще:
Проблема была исправлена очень и очень локально то есть, я в своем контейнере делаю так:
procedure TXVisualChart.WMSize(var Message: TWMSize);
begin
inherited;
FInnerCtrl.Realign
end;
но по сути проблема остается :-), ведь мой контрол могут кинуть куда угодно... попробовать установить ловушку на родителя?
Eraser (2005-01-31 16:10:00) [6]ReAlign
Smileman (2005-01-31 11:59:00) [7]прошу прощения
я забыл сказать у TMemo Align тоже надо поставить alClient