Главная страница
    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.46 MB
Время: 0.046 c
2-1128506267
alpine
2005-10-05 13:57
2005.10.30
Проблемма с SQL запросом.


14-1128687194
Prohodil Mimo
2005-10-07 16:13
2005.10.30
2 вопроса про приобретение Delphi.


14-1128107818
Loginov Dmitry
2005-09-30 23:16
2005.10.30
Matrix. Оцените новую систему матричных вычислений для Delphi


14-1128332022
TUser
2005-10-03 13:33
2005.10.30
Элита нашего общества,


14-1128842983
Карелин Артем
2005-10-09 11:29
2005.10.30
Посоветуйте работающую связку виртуальная машина + линукс новый.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский