Dilma Посмотри на скриншоты
На одном режим редактирования
На другом режим запуска
Почему цветные панели меняются местами
http://img.extremephotohost.com/img/2007/01/07/0-00kUj5-012957300-1168187395.jpg
http://img.extremephotohost.com/img/2007/01/07/0-QfKFHZ-037302600-1168187720.jpg
Этот топик читают: Гость
Ответов: 3655
Рейтинг: 69
|
|||
карма: 0 |
|
Ответов: 3514
Рейтинг: 184
|
|||
Потому что у обоих задано выравнивание.
|
|||
карма: 0 |
|
Ответов: 2060
Рейтинг: 28
|
|||
Я с этим то же столкнулся. И что делать, что бы в Редакторе форм и на запущенной программе, после компиляции, было одно и тоже?
|
|||
карма: 1 |
|
Ответов: 3655
Рейтинг: 69
|
|||
Астрамак писал(а): Потому что у обоих задано выравнивание.Вот ещё пример полный бардак code_769 [size=-2]------ Добавлено в 20:19 Блин что за фигня стоит изменить что нибудь в другой(верхней ) панели так нижние панели (которые на скриншоте) меняются местами |
|||
карма: 0 |
| ||
файлы: 1 | code_769.txt [1KB] [292] |
Ответов: 3514
Рейтинг: 184
|
|||
Да, я с этим мучался долго, но вроде нашёл выход. Нужно по пордяку установить выравнивание. Та панель, которой мы её задали последней станет первой, то бишь верхней (если выравнивать по топу). Но работает это через раз.
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Вячеслав, да эта проблема известна, но пока не решена еще.
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Как решать понятно - менять местами Z-координаты панелей при перестановке в редакторе формы
Но ерунда получается - это привязано становится к кодогенерации... Предположим захочу я делать ее так: 1) Обрабатываю элементы в порядке соответствующем Z - как в sha файле 2) Сразу после конструктора элемента устанавливаю ему все св-ва, кроме линков 3) Принудительно каждому делаю BringToFront в этом же цикле 4) Все линки устанавливаю повторным циклом Какие плюсы: 1) Нет заморочек с расположением конструктора контролла: в Create или в Init 2) Созданная динамическая панель оказывается сверху, а не под всеми И это потребует от редактора форм другой логики обработки Align-ов Плюс к тому, VCL при Align, кажется, не учитывает Border... |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Galkov писал(а): И это потребует от редактора форм другой логики обработки Align-овкакой? |
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Противоположной
Сегодня начинается привязка (по кодам) с последнего по Z А по предложению предыдущего поста - с первого по Z Первым называю ближний к форме, последним - к нам |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Ну это изменить не проблема.
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Ну конечно - нет
Просто алгоритмическая взаимосвязь между средой и кодогенерацией - вещь не очень хорошая... А вдруг какая другая гениальная идея в голову стукнет Или скажем Fasm... К стыду своему, коды коллеги tsdima я еще не перешерстил, но, логически рассуждая, можно заключить, что опирается он на Z-список именно винды. Вроде до своего списка children он еще не дошел |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Ага, пришлось при обработке выравнивания перебирать окна в обратном порядке KOL, я так понимаю, делает перебор в прямом порядке, а что делает VCL - загадка.
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Возьму на себя смелость сказать, что про Align в KOL я знаю почти все
В прямом, по своему списку Children. А совпадает ли он со Z-списком винды - уже наша проблема. Причем, сначала все caTop и caBottom, потом все caLeft и caRight, и в последнюю очередь caClient Причем, клиентская часть привязки - это не совсем GetClientRect (примеры: GroupBox и TabControl) Причем, все это безобразие требует блокировки рекурсий: WM_SIZE вызывает Global_Align (причем парента), это в свою очередь resized чего-то там, что в свою очередь лепит WM_SIZE, и т.д.. |
|||
карма: 9 |
|
13