![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Привет!
Я сегодня столкнулся с одной странной вещью... Почему то когда бросишь на форму компонент TScrollBox со свойством align=alclient, ну и панельку чтобы был класс TPanel и начинаешь создаватьдинамически на нём панели (TPanel),то которые в свою очередь динамически приобретают сво-во align=albottom, то снизу становится не та которую поже создаёшь, а та которая имеет больший размер. Ну и вообще почему так происходит эта сортировка по размеру? Причём, если толко панели создаются на компоненте TScrollBox. Вот я тут воткнул пример, чтобы вам было понятнее и не мучится с созданием всего перечисленного. Тут на событие создания формы написано создание 2-ух панелей. Поэксперементируйте со свойством height, т.е. в верхней панели в начале стоит 30, а в нижней 40 ─ попробуйте в верхней поставить например 41, и она будет появлятся ниже чем нижняя. Присоединённый файл ( Кол-во скачиваний: 8 )
Пример.zip |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Почему это происходит я не знаю. Наверное какой-то глюк при создании объектов в TForm.Create
Но так ли это важно? Ведь если перенести твой код в обработчик события OnShow формы, то все заработает как надо. Только учти, что внизу будет та панель, которую ты создаешь первой (что очевидно). |
|||
|
||||
| mvdr |
|
|||
|
физик ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1349 Регистрация: 31.12.2004 Где: Волгоград, Россия Репутация: 1 Всего: 42 |
это глюк возникающий при создании объекта. Мы в свое времчяс преподом боролись, так и не нашли решение из-за дефиита времени
Это сообщение отредактировал(а) Femida - 14.3.2005, 05:05 -------------------- Появляюсь редко, но часто метко Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Cейчас некогда, разбираться в чём там дело ибо спешу в институт, а посему предлагаю простое решение:
PS: на будущее Zero и все остальные, - не нужно прилагать вместе с исходниками файлы типа *.cfg *.dof *.dcu *.ddp |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Спасибо RAdmin, пусть пока будет хотябы так, но неплохо бы получить ответ (если кто знает) как это сделать правильно, и почему так происходит?
Я знаю, что *.dfm и *.pas впринципе достаточно, но мне влом было всё это удалять, ведь размер всё равно маленикий остаётся. |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Еще *.dpr не помешает Вообще можно выделить нужные файлы зажав CTRL и по клику правой кнопки мышки отправить их в архив. что касается данной проблемы, то я сейчас не в состоянии её решить ибо валюсь с ног, но спать незя Но нутром чую, что решение проблемы с созданием динамических контролов использующих Align, решается именно так как я продемонстриров ибо ибо.... долго описывать мои мысли. (если ошибаюсь то пусть меня поправят) |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Как другой вариант решения - в начало OnCreate поставить вызов Show...
(C1.Top + C1.Height) >= (C2.Top + C2.Height) В случае, если писать создание панелей в OnCreate, Top у всех панелек = 0, поэтому сортируются чисто по высоте (причем все скопом сортируются, при показе формы, а не при каждом создании панели)... Если же вначале показать форму, то при вставке каждой панели происходит перепозиционирование, но Top у уже вставленных панелек <> 0... -------------------- С уважением, г-н Посол. |
||||
|
|||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
p0s0l моё реальное приложени сразу начало глюкать, точнее при его запуске 7-ая форма запускается вместе с 1-ой, наверно лучше оставлю пока как есть, покрайней мере вроде работает... тьфу, тьфу...
Что вообще означает процедура Show и Hide? А то в справке написано на английском, и как то трудно до меня доходит их смысл слов, а то я не все слова знаю точно... |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Во-во и я так думал. Собсно тогда Zero почемубы тебе не поставить свою процедуру создания динамических контролов в событие OnShow вместо OnCreate ? |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Если это не основная форма, то оставляй как есть... Или в OnShow засунь код... Иначе при запуске проги будет появляться на долю секунды форма...
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Zero |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Теперь сделал, всё какбы работает, но
|
||||||||||
|
|||||||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |