Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-1128323400
lexandr
2005-10-03 11:10
2005.10.30
RXRichEdit и рисунки


1-1128314099
NikNet
2005-10-03 08:34
2005.10.30
Как быстро сравнить два TBITMAP?


3-1127035068
Alpine
2005-09-18 13:17
2005.10.30
Как изменять динамические поля созданные в TQuery ?


14-1128863271
cyborg
2005-10-09 17:07
2005.10.30
Помогите исправить графрежим в Мандрейк Линукс 9


14-1128603393
Layner
2005-10-06 16:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский