Главная страница
    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.04 c
14-1128332022
TUser
2005-10-03 13:33
2005.10.30
Элита нашего общества,


14-1128674620
SpecLab
2005-10-07 12:43
2005.10.30
Стратегия игры в Lines


14-1128514901
syte_ser78
2005-10-05 16:21
2005.10.30
Посоветуйте новостной скрипт


3-1127005901
quadronik
2005-09-18 05:11
2005.10.30
Добавление новых записей НЕ по команде.


14-1129008181
Ega23
2005-10-11 09:23
2005.10.30
С днем рождения! 11 октября





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский