![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
опять про GRush [Delphi, Windows]
grim © (2007-09-15 22:17:00)Всем доброго времени суток, вопрос мой касаеься работы с Grush,
как я понял пакет ToGrush, как раз и предназначен для переноса готого проекта, путем добовления его в Uses, но у меняв возникло пару проблем:
1) ToGrush местическим образом исчезает из Uses, когда например перемещаю компоненты..
2) в нем идет замена функции MessageBox, на свою, но у меня почему то она отображаеться без "GRush-эффекта", да и еще нельзя ли также отображать как в обычном мессажд боксе иконку сообщения(слева от текста сообщения)
homm (2007-10-15 11:16:00) [21]> [20] Barloggg (15.10.07 11:01)
> так что пока я ничего не утверждаю, и судя по твоей реакции
> это мои проблемы :)
Да почему, же если реально проблема есть и ее удастся выделить, подумаем, что можно сделать, но в то, что написано выше слабо верится, скорее разница в версии КОЛ.
Barloggg (2007-10-15 11:01:00) [22]однако ребилдол становится обязательным когда речь идет о многофреймовом приложении
homm я пока непонял как этот глюк возник, и возник ли он вообще, но заметил такую вещь:
1. список из радиобоксов. большой. достаточно чтобы вылезти за края скроллбокса.
2. груши выглядят так как будто их ширина скажем пикселей 40 то есть видно одну букву и троеточие.
3. при наведении глюки с отрисовкой, и через клик-другой вылетает сообщение об ошибке, но приложение не бабахает и эти сообщения формируют длинннннную полосу при каждом движении мыши над грушем.
выключаю стиль груш и все в порядке.
вариантов 2
дома ХР 64 бит
дома колмск 2.50
так что пока я ничего не утверждаю, и судя по твоей реакции это мои проблемы :)
homm (2007-10-15 10:32:00) [23]> [18] Barloggg (15.10.07 10:11)
> кстати на 64битной винде замечены траблы с грушами выровненными
> по caTop и NEW_ALIGN
1) Как может влиять, граши или не граши учавствуют в алгне?
2) Как 64-х битность может влиять на приожение, если оно 32-х битное, и Майкросовт гарантирует его правльную работу? :)
Barloggg (2007-10-15 10:11:00) [24]гм. насчет объемов похоже я неправ.
на рабочей машине от intel все работает как должно. и по расходу памяти и по скорости. причем от винды к винде расход памяти изменяется. во дела!
кстати на 64битной винде замечены траблы с грушами выровненными по caTop и NEW_ALIGN, правда данных маловато для однозначной формулировки.
Barloggg (2007-10-15 09:09:00) [25]насчет фреймов...
сделал парочку.
перебросил туда полсотни контролов. простым вырезанием и вставкой.
пару часиков занимался восстановлением слетевших методов, кстати очень интересно потерянных, VCL их потерял, а МСК не совсем :) если так можно выразиться.
пришлось воспользоваться inc файлом для сравнения.
так вот результат... своеобразный.
программа при запуске не создавая фреймы стала занимать на 1мб больше. было 13 стало 14. гм.
а при создании фреймов так и вообще на 3 мб больше чем без фреймов вообще.
это какой-то хитрый план?
кстати время запуска на глазок не изменилось, на пламенном-то проце...
ANTPro (2007-10-09 17:22:00) [26]> [5] Vladimir Kladov (16.09.07 19:54)
> (билд не забудьте).
Да, ребилдол хорошее лекарство :o)
Barloggg (2007-10-09 16:55:00) [27]хм. фреймы.
почему бы и нет?
вкурил пример... неплохо.
спасибо.
правда демка скомпилиться отказалась... :) ну да ничего.
Vladimir Kladov (2007-10-09 16:28:00) [28]была бы возможность создание части контролов производить после
Для этого могут пригодиться фреймы. Советую.
Barloggg (2007-10-09 15:07:00) [29]да.
только разложены по куче вкладок.
это генератор карт для игры. там туча всяких движков, ползунков кнопочек, фишечек.
homm (2007-10-09 15:05:00) [30]> [11] Barloggg (09.10.07 15:03)
> вот была бы возможность создание части контролов производить
> после отрисовки формы, это было-бы иногда полезно, но MCK
> такого и не думает делать.
А у тебя все 400 контроллов на одной форме?
Barloggg (2007-10-09 15:03:00) [31]ну почему же медленнее. как было заявлено, так и работает. запуск быстрее, поотзывчивее. да и объектов меньше. правда вот с прозрачностью лабелов выплыли глюки.
так что с графическими контролами запуск быстрее. две секунды против трех-четырех секунд с Grush.
всякие там onMessage для каждой кнопки мне не нужен.
вот была бы возможность создание части контролов производить после отрисовки формы, это было-бы иногда полезно, но MCK такого и не думает делать.
homm (2007-10-09 14:52:00) [32]> [9] Barloggg (09.10.07 14:40)
> разница во времени запуска появилась.
тоесть? В какую сторону? Неужели с графическими контролами медленнее стало? :)
Barloggg (2007-10-09 14:40:00) [33]наверное для прикола.
подумал что мое приложение в котором штук пятьсот всяких контролов может воспользоваться фишкой с графическими контролами, и я глобально подставил конструкторы для графических объектов. в результате счетчик объектов GDI с 400 упал до 120. неплохо.
однако это приложение опционально использует Grush. то есть запуск без параметра - Grush с параметром - графические.
разница во времени запуска появилась.
ну вот и логичная мысль, а можно ли? ну нельзя, так нельзя.
кстати подключение графических контролов добавило 6 кб. к уже существующим 577кб... гм.
homm (2007-10-09 14:31:00) [34]> [7] Barloggg (09.10.07 14:30)
> а можно их создавать c windowed = false?
Нет. А зачем?
Barloggg (2007-10-09 14:30:00) [35]еще про Grush
а можно их создавать c windowed = false?
vampir_infernal (2007-09-16 20:47:00) [36]На счет замены 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 {$IFDEF RED_ACCELERATORS} or DT_HIDEPREFIX {$ENDIF}, nil );
DrawTextEx( C.Handle, PKOLChar( s ), Length( s ),
R, DT_LEFT or DT_SINGLELINE {$IFDEF RED_ACCELERATORS} or DT_HIDEPREFIX {$ENDIF}, nil );
строка 992. Дописать вызовFree_And_Nil( MenuBmp );в конец функции OwnerDrawMenuItem, иначе fastmm указывает на утечку памяти.
Спасибо.
Vladimir Kladov (2007-09-16 19:54:00) [37]Посмотрите, каким IFDEF эта замена обрамлена, и добавьте соответствующий символ в свойтсва проекта (билд не забудьте).
grim (2007-09-16 16:33:00) [38]Danger ага спачибо, а по поводу MessageBox можете чтонибудь подсказать?!
grim (2007-09-16 16:33:00) [39]Danger ага спачибо, а по поводу MessageBox можете чтонибудь подсказать?!
Danger (2007-09-16 13:24:00) [40]
> grim (15.09.07 22:17)
> Всем доброго времени суток, вопрос мой касаеься работы с
> Grush,как я понял пакет ToGrush, как раз и предназначен
> для переноса готого проекта, путем добовления его в Uses,
> но у меняв возникло пару проблем:1) ToGrush местическим
> образом исчезает из Uses, когда например перемещаю компоненты.
Добавляйте вызовы своих модулей после (place your units here->). Например, было:
uses Windows, Messages, KOL, KOLQProgBar {$IFNDEF KOL_MCK}, mirror, Classes, Controls, mckControls, mckObjs, Graphics, mckQProgBar,
mckCtrls {$ENDIF (place your units here->)};
Добавляем свой модуль:
uses Windows, Messages, KOL, KOLQProgBar {$IFNDEF KOL_MCK}, mirror, Classes, Controls, mckControls, mckObjs, Graphics, mckQProgBar,
mckCtrls {$ENDIF (place your units here->)}, ToGrush;
Блок usesпересоздается каждый раз при модификации MCK-проекта, поэтому помещайте ссылки на сторонние модули в конец блока.