![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с отображением компонентов в KOL/МСК 2.60, Delphi 7 [Delphi, Windows]
WindLord © (2007-05-15 10:47:00)Сегодня скачал и поставил KOL 2.60 и МСК 2.60 на Дельфи 7. Встало все нормально, а при разработке обнаружились странности. На форме некоторые компоненты видны не как в готовом окне, а как черт-те что в рамке (<a href=" http://windlord.atspace.com/kol.JPG">скриншот прилагаю</a>; верхнее окно - как видно форму при разработке, нижнее - как видно окно при запуске). В принципе решается установкой версии 2.10, но какой смысл тогда брать 2.60. Может ли влиять на МСК таким образом установленный Vista Transformation Pack? Как можно решить это без возврата к старой версии? Спасибо.
(2007-07-16 09:59:00) [1]Удалено модератором
(2007-07-16 00:19:00) [2]Удалено модератором
(2007-07-15 09:45:00) [3]Удалено модератором
(2007-07-15 09:45:00) [4]Удалено модератором
(2007-07-15 09:43:00) [5]Удалено модератором
(2007-06-19 19:11:00) [6]Удалено модератором
(2007-06-12 10:35:00) [7]Удалено модератором
WindLord (2007-06-04 10:10:00) [8]Ага, вот, кажется, и первые глюки... При помещении на форму компонента BitBtn вместо кнопки отбражается прямоугольничек с неустойчивой канвой, который после компиляции оказывается не всегда в том месте, в каком образ на форме. Стал проверять дальше. Устойчивые прямоугольники вместо ToolBar, PaintBox, DateTimePicker, ScrollBox, ScrollBar. При помещении на форму KOLDataModule и KOLFrame появляется одно информационное сообщение (The form Form1 contains more then one instance of TKOLForm component. This will cause unpredictable results. It is recommended to remove all ambigous instances of TKOLForm component before You launch the project; хотя помещаемый компонент вовсе не есть KOLForm, но возможно, это-то как раз в порядке вещей) и ругательство (Access violation at address 045990CB in module 'MirrorKOLPackageD7.bpl'. Read of address 0000001C). Видимо, это (рамки и ругательство) и есть проявления врапперов, которые, похоже, у каждой дельфи свои.
Вот это точно оно! Включил для тулбара свойство StandardImagesLarge, и дельфя триумфально ухнула в даун. Как только импортирую иконки для тулбара, происходит то же самое. Впечатление, что глюк возникает только с отображением строго определенных компонентов, в частности, тулбаров...
Что касается отключения врапперов, я лично намерен собрать два пакета МСК и переключаться между ними по мере необходимости... пока.
Galkov (2007-06-02 13:56:00) [9]
> и после поправки Delphi указал мне на несоответствие типов
> в одном методе
Вроде в последней версии формат Global_Align совпадает со старым (в первой - да, был лишний аргумент).
Global_Align: procedure( Sender: PObj) = DummyObjProc;
Функциональная нестыковка возможна: сегодня он САМ будет анализировать parent-а на предмет возможности его тоже "заалигнить"
Гипотеза: эта нестыковка, кроме излишней возни - бед приносить не должна...
Vladimir Kladov (2007-06-02 13:10:00) [10]Вот что удалось выяснить. Исключение происходит внутри дефолтного обработчика сообщения (даже WM_SIZE), уже без вызова даже кода из KOL.WndFunc. Как такое может быть, я не знаю. Попытка глушить приводит только к еще худшим последствиям в дальнейшем выполнении.
Польза из этого только 1: заметил, что по умолчанию действует OLD_ALIGN все-таки, а не NEW_ALIGN, и после поправки Delphi указад мне на несоответствие типов в одном методе (как раз открыл UNICODE-проект). Так что вырубайте эти врапперы до лучших времен. Правда, не пересобирать же MCK только для того, чтобы кнопку на тулбар кинуть.
Vladimir Kladov (2007-06-02 08:40:00) [11]Пардон, окном ошибся. Сюда я другое хотел послать. Вот:
Значит, сбой где-то в процедуре recreate. Можете попробовать еще вот что. Добавить опции OLD_COMPAT, USE_PROP, и (ой, забыл, сейчас гляну) вот: NOT_USE_AUTOFREE4CONTROLS. Вопции пакета, с build. Вполне возможно, с ними порядок и для recreate. Сейчас еще сам попробую, сначала уронить, потом поднять.
Vladimir Kladov (2007-06-02 08:34:00) [12]Плохо, что не можете предложить (а почему, хватило же терпения и знаний, чтобы разобраться в нынешнем коде).
Почему 32768 - ну, для небольших текстов этого явно хватает. Наверное, поэтому.
Насчет разницы 2х вордов все-таки непонятно, что непонятно. Разница может быть и отрицательная, а ответ должен быть дворд (точнее Integer).
Команда CWDE занимает 1 байт, поэтому она выгоднее любого другого способа затирания старших 2 байтов в 4-байтном. Если речь идет о небольшом тексте, проблем не
возникает, тем более что под Win9x в memo все равно не может быть > 32767 символов.
Поправить-то можно, в расчете на большие текста (а старый код оставить в {$IFDEF SMALLEST_CODE}). Но жаль, что не предлагаете конкретный вариант.
Vladimir Kladov (2007-06-02 08:31:00) [13]Плохо, что не можете предложить (а почему, хватило же терпения и знаний, чтобы разобраться в нынешнем коде).
Почему 32768 - ну, для небольших текстов этого явно хватает. Наверное, поэтому.
Насчет разницы 2х вордов все-таки непонятно, что непонятно. Разница может быть и отрицательная, а ответ должен быть дворд (точнее Integer).
Команда CWDE занимает 1 байт, поэтому она выгоднее любого другого способа затирания старших 2 байтов в 4-байтном. Если речь идет о небольшом тексте, проблем не возникает, тем более что под Win9x в memo все равно не может быть > 32767 символов.
Поправить-то можно, в расчете на большие текста (а старый код оставить в {$IFDEF SMALLEST_CODE}). Но жаль, что не предлагаете конкретный вариант.
=BuckLr= (2007-06-01 20:47:00) [14]
> на тулбарах иконки у вас видно?
А вот похоже и первые глюки. Когда я попытался поставить на тулбар кнопку, делфи целиком вылетела. ПРидётся отключить врапперы :(
Vladimir Kladov (2007-06-01 19:55:00) [15]Когда я выключил, у меня вылетали все версии, со 2-й и по 7-ю. Сейчас не вылетает. С тех пор прошло с полгода, были багфиксы в том числе серьезные, некоторые объекты просто нарушали структуру кучи. Это вполне могло приводить к большим наведенным последствиям.
Мне все-таки не ответили: если включить врапперы, на тулбарах иконки у вас видно? Что-то у меня тишина, хотя в прежние времена вроде было видно.
WindLord (2007-05-30 11:28:00) [16]А, ну ясно, спасибо за толкование. Однако все равно врапперы не буду выключать, до столкновения с глюками, несовместимыми с дальнейшей работой. А обнародовать - я думал, может, в ридми включить... Спасибо.
homm (2007-05-30 11:09:00) [17]> Или я чего-то явно не понимаю.
Не понимаешь. Не понимаешь, что борланд работали со СВОЕЙ библиотекой, сами ее писали для отображения. А МСК уже работает только с тем, что имеет. Нет возможности сделать так, как хочеться, есть возможность сделать только так, как позволяет нам VCL, через множество костылей и громозких настроек, которые держаться на честном слове. (Кому-то удалось запустить MCK под 2006-й студией без значительных переделок. По моему это огромная удача.)
WindLord (2007-05-30 11:05:00) [18]Видимо, из меня никудышный толмач. Я считаю, что если бы когда в Борланд создавали дельфю, они удовлетворились бы прямоугольниками вместо отображения полноценных компонентов на форме, сейчас ее популярность была бы меньше. Или я чего-то явно не понимаю. Dixi.
Je demande le grand pardone за флуд.
homm (2007-05-30 10:48:00) [19]> Ну тогда стоило, наверное, обнародовать способ их включения/отключения,
> чтобы таких вот тем не поднималось больше...
USE_KOLCTRLWRAPPER
> Я имел в виду отображение компонентов, внешность формы в
> процессе дизайна.
Разве им пригодиться через кучу костылей левой пяткой взимодействовать с не ими писаной библиотекой?
WindLord (2007-05-30 10:25:00) [20]
> Всю жизнь именно так и было.
Ну тогда стоило, наверное, обнародовать способ их включения/отключения, чтобы таких вот тем не поднималось больше...
> Разве им пригодиться через кучу костылей левой пвткой взимодействовать
> с не ими писаной библиотекой?
Я имел в виду отображение компонентов, внешность формы в процессе дизайна.