-
Всем доброго времени суток, вопрос мой касаеься работы с Grush, как я понял пакет ToGrush, как раз и предназначен для переноса готого проекта, путем добовления его в Uses, но у меняв возникло пару проблем: 1) ToGrush местическим образом исчезает из Uses, когда например перемещаю компоненты.. 2) в нем идет замена функции MessageBox, на свою, но у меня почему то она отображаеться без "GRush-эффекта", да и еще нельзя ли также отображать как в обычном мессажд боксе иконку сообщения(слева от текста сообщения)
-
> опять про GRush
Уф… Зачем пугать? :) Вопрос не по GRush, а по ToGrush :)
-
> grim (15.09.07 22:17) > Всем доброго времени суток, вопрос мой касаеься работы с > Grush,как я понял пакет ToGrush, как раз и предназначен > для переноса готого проекта, путем добовления его в Uses, > но у меняв возникло пару проблем:1) ToGrush местическим > образом исчезает из Uses, когда например перемещаю компоненты.
Добавляйте вызовы своих модулей после (place your units here->). Например, было: uses Windows, Messages, KOL, KOLQProgBar , mirror, Classes, Controls, mckControls, mckObjs, Graphics, mckQProgBar,
mckCtrls ; Добавляем свой модуль: uses Windows, Messages, KOL, KOLQProgBar , mirror, Classes, Controls, mckControls, mckObjs, Graphics, mckQProgBar,
mckCtrls , ToGrush;
Блок uses пересоздается каждый раз при модификации MCK-проекта, поэтому помещайте ссылки на сторонние модули в конец блока.
-
Danger ага спачибо, а по поводу MessageBox можете чтонибудь подсказать?!
-
Danger ага спачибо, а по поводу MessageBox можете чтонибудь подсказать?!
-
Посмотрите, каким IFDEF эта замена обрамлена, и добавьте соответствующий символ в свойтсва проекта (билд не забудьте).
-
На счет замены MessageBox. Не знаю, была ли эта проблема еще у кого-то, кроме меня, но при использовании вышеупомянутой замены размер exe-файла увеличивается на ~50 килобайт, и в map-файле появляются упоминания SysUtils, VarUtils и других "тяжеловесных" модулей. И еще. В модуле ToGrush в 777й строке нужно заменить string на KOLString:
C: PCanvas;
s: KOLString;
Cside: Integer;
строка 896. Заменить PChar на PKOLChar: Windows.DrawTextEx( C.Handle, PChar( s ), Length( s ),
R, DT_LEFT or DT_SINGLELINE or DT_HIDEPREFIX , nil );
на DrawTextEx( C.Handle, PKOLChar( s ), Length( s ),
R, DT_LEFT or DT_SINGLELINE or DT_HIDEPREFIX , nil );
строка 992. Дописать вызов Free_And_Nil( MenuBmp );
в конец функции OwnerDrawMenuItem, иначе fastmm указывает на утечку памяти. Спасибо.
-
еще про Grush а можно их создавать c windowed = false?
-
> [7] Barloggg (09.10.07 14:30) > а можно их создавать c windowed = false?
Нет. А зачем?
-
наверное для прикола. подумал что мое приложение в котором штук пятьсот всяких контролов может воспользоваться фишкой с графическими контролами, и я глобально подставил конструкторы для графических объектов. в результате счетчик объектов GDI с 400 упал до 120. неплохо. однако это приложение опционально использует Grush. то есть запуск без параметра - Grush с параметром - графические. разница во времени запуска появилась.
ну вот и логичная мысль, а можно ли? ну нельзя, так нельзя. кстати подключение графических контролов добавило 6 кб. к уже существующим 577кб... гм.
-
> [9] Barloggg (09.10.07 14:40) > разница во времени запуска появилась.
тоесть? В какую сторону? Неужели с графическими контролами медленнее стало? :)
-
ну почему же медленнее. как было заявлено, так и работает. запуск быстрее, поотзывчивее. да и объектов меньше. правда вот с прозрачностью лабелов выплыли глюки.
так что с графическими контролами запуск быстрее. две секунды против трех-четырех секунд с Grush. всякие там onMessage для каждой кнопки мне не нужен.
вот была бы возможность создание части контролов производить после отрисовки формы, это было-бы иногда полезно, но MCK такого и не думает делать.
-
> [11] Barloggg (09.10.07 15:03) > вот была бы возможность создание части контролов производить > после отрисовки формы, это было-бы иногда полезно, но MCK > такого и не думает делать.
А у тебя все 400 контроллов на одной форме?
-
да. только разложены по куче вкладок.
это генератор карт для игры. там туча всяких движков, ползунков кнопочек, фишечек.
-
была бы возможность создание части контролов производить после
Для этого могут пригодиться фреймы. Советую.
-
хм. фреймы. почему бы и нет? вкурил пример... неплохо.
спасибо.
правда демка скомпилиться отказалась... :) ну да ничего.
-
> [5] Vladimir Kladov (16.09.07 19:54) > (билд не забудьте).
Да, ребилдол хорошее лекарство :o)
-
насчет фреймов... сделал парочку.
перебросил туда полсотни контролов. простым вырезанием и вставкой. пару часиков занимался восстановлением слетевших методов, кстати очень интересно потерянных, VCL их потерял, а МСК не совсем :) если так можно выразиться. пришлось воспользоваться inc файлом для сравнения.
так вот результат... своеобразный. программа при запуске не создавая фреймы стала занимать на 1мб больше. было 13 стало 14. гм. а при создании фреймов так и вообще на 3 мб больше чем без фреймов вообще. это какой-то хитрый план?
кстати время запуска на глазок не изменилось, на пламенном-то проце...
-
гм. насчет объемов похоже я неправ. на рабочей машине от intel все работает как должно. и по расходу памяти и по скорости. причем от винды к винде расход памяти изменяется. во дела!
кстати на 64битной винде замечены траблы с грушами выровненными по caTop и NEW_ALIGN, правда данных маловато для однозначной формулировки.
-
> [18] Barloggg (15.10.07 10:11) > кстати на 64битной винде замечены траблы с грушами выровненными > по caTop и NEW_ALIGN
1) Как может влиять, граши или не граши учавствуют в алгне? 2) Как 64-х битность может влиять на приожение, если оно 32-х битное, и Майкросовт гарантирует его правльную работу? :)
-
однако ребилдол становится обязательным когда речь идет о многофреймовом приложении
homm я пока непонял как этот глюк возник, и возник ли он вообще, но заметил такую вещь: 1. список из радиобоксов. большой. достаточно чтобы вылезти за края скроллбокса. 2. груши выглядят так как будто их ширина скажем пикселей 40 то есть видно одну букву и троеточие. 3. при наведении глюки с отрисовкой, и через клик-другой вылетает сообщение об ошибке, но приложение не бабахает и эти сообщения формируют длинннннную полосу при каждом движении мыши над грушем. выключаю стиль груш и все в порядке.
вариантов 2 дома ХР 64 бит дома колмск 2.50
так что пока я ничего не утверждаю, и судя по твоей реакции это мои проблемы :)
-
> [20] Barloggg (15.10.07 11:01) > так что пока я ничего не утверждаю, и судя по твоей реакции > это мои проблемы :)
Да почему, же если реально проблема есть и ее удастся выделить, подумаем, что можно сделать, но в то, что написано выше слабо верится, скорее разница в версии КОЛ.
-
to Barloggg: Logitech Setpoint случаем не установлен?
-
to Дмитрий К а что это? звучит как прога-прибабах на мышь
-
Версия KOL обновлена? ToGRush используете?
-
> а что это? > звучит как прога-прибабах на мышь
Драйвер для мышей и клавиатур Logitech. Просто у меня на Vista x64 тоже наблюдаются глюки с отрисовкой грашей, но только с запущенным SetPoint.
-
> [25] Дмитрий К © (15.10.07 15:19) > Просто у меня на Vista x64 тоже наблюдаются глюки с отрисовкой > грашей, но только с запущенным SetPoint.
Мистика :)
-
Вот такое изменение попробуйте:
procedure TGRushControl.TimerEvent(Data: PGRushData); var FromBitmap: PBitmap; ToBitmap: PBitmap; W, H: Integer; begin if not Visible then Exit; //+++
-
но вот в чем странность. приношу я этот откомпилированный ехе-шник на другую машину и все в порядке! скрин глюка здесь http://slil.ru/24989087скомпилино в КОЛ2.50, ну не донес я до дома последнюю, каюсь. забавно после ресайза часть контролов выправилась. значит каким-то образом алигн таки причастен, похоже этот скрин будет любопытен и вам Владимир. я использовал директиву UseGrush. Но вспонив, что нечто подобное использовалось в ToGrush я ее изменил, эффект не изменился. я полагаю здесь не в том дело что visible / неvisible а скорее в том, какие координаты дает винда контролу. контрол-то рисуется, ну да смотрите вышеуказанный скрин. сейчас сброшу на флеш последнюю версию КОЛ и вечером проверю.
-
кстати памятуя ММХ и разговор про глюки в зоомере стоит добавить что у меня двухядерный 64битный атлон. и 64битная винхр. ибо на 32битной вин2к на целероне с этим-же ехешником все в порядке.
-
-
Владимир, ну почему же не увидено. если вы имеете ввиду [27], то даже ответ написан :) файлик скачал, посмотрю. Спасибо.
-
> [31] Barloggg (17.10.07 16:45) > Владимир, ну почему же не увидено. если вы имеете ввиду > [27], то даже ответ написан :)
Мисьмо мне было, я его и правда еше не видел.
-
Я жду результата тестирования, поскольку это дело у меня вылетало регулярно без этих пары правок. Нет, это не связано с многоядерностью точно. Проблемы с зумом были в других местах (и сейчас, похоже, продолжаются кое-где). Здесь вылеты были на фоне в настоящий момент не видимых GRush-контролов, особенно часто это стало проявляться после подмены скроллов, где элементы могут специально прятаться при ненадобности. Может быть даже имеет смысл использовать для проверки ToBeVisible а не Visible (я не использую таб-контрол, может поэтому пока не ощутил разницы).
-
кстати граши падать не перестали. после всех установок/переустановок :)
поведение осталось то же. только ошибка не выскакивает, а прога молча закрывается. странная поддержка ММХ в атлон64х2 под вин64?
-
Но вы же можете проверить, найти место где что происходит, это ведь в вашей программе, так? Включите Environment | Debugger | ... | Stop on Delphi Exceptions, сделайте билд со всей возможной отладочной информацией, в момент падения просмотрите стек. Надо же понять, что не работает. Если Delphi не может, то поставьте MS VC++ .NET 2003-2005, любой в общем. Установите его как отладчик по умолчанию, в момент падения выберите Debug, когда он загрузится, там вообще весь стек показывает, даже лишние пункты.
-
Поставил ХРх64. Ничего вроде не поламалось, кроме русских надписей, которые поломались во всех дельфи прогах, т.к. винда аглицкая. В общем бубен в студию…
-
Еще на зумер можно посмотреть. Если он НЕ падает, в граше, тогда это странно.
-
> [37] Vladimir Kladov © (30.10.07 16:43) > Еще на зумер можно посмотреть. Если он НЕ падает, в граше, > тогда это странно.
Владимир, скачал Зумера с вашего сайта, запустил установку, и вот что я вижу: http://homm86.narod.ru/files/zoomer.pngСамое интересное, что винда 32-х битная :) Тип компьютера Однопроцессорный компьютер с ACPI
Операционная система Microsoft Windows XP Professional
Пакет обновления ОС Service Pack 2
Internet Explorer 6.0.2900.2180 (IE 6.0 SP2)
DirectX 4.09.00.0904 (DirectX 9.0c)
Имя пользователя Администратор
Тип ЦП AMD Sempron, 2400 MHz (8 x 300)
Чипсет системной платы nVIDIA nForce4, AMD Hammer
Системная память 1024 Мб (DDR2-667 DDR2 SDRAM)
Тип BIOS Award (02/08/07)
Видеоадаптер NVIDIA GeForce 7600 GT (256 Мб)
-
64-бит ХР, То-же самое с точностью до оформления окна дебагера по умолчанию.
-
> [38] homm © (30.10.07 22:24) > Владимир, скачал Зумера с вашего сайта, запустил установку, > и вот что я вижу:
Все в порядке :) Результат воспроизводимый на многих машинах, а не только у меня дома такая фигня…
-
Угу, сломался только сетап. И только из-за Resource2Stream (в STREAM_LARGE64). Его-то я и не проверил. Вообще-то файл переименовывается (удаляется слово Setup), и запускается. Сейчас положу исправление.
|