Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

опять про GRush [Delphi, Windows]


Страницы:   1 2 3

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-проекта, поэтому помещайте ссылки на сторонние модули в конец блока.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо