Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Bmp.StretchDrawTransparent   Найти похожие ветки 

 
avs ©   (2006-11-08 07:57) [0]

Celeron 1000, win XP SP2
1.По-моему, этот метод, вернее,DrawTransparent не работает.Это произошло в интервале  версий 2.18-2.34.
2.Главное меню отрисовывается после того, как что - либо поменять в нем инспекором объектов либо в DESIGN TIME ткнуть в один из видимых пунктов. Я уже писал об этом. Владимир тогда посоветовал попробовать NOT_USE_KOLCTRLWRAPPER .
В версии 2.40 с меню ситуация  еще интереснее.
Нужно не просто ткнуть в один из видимых пунктов, а сделать это неоднократно 5-6 раз.
В общем, сейчас вернулся на 2.15.
Exe-ник, изготовленный посредством 2.15, под Win98 (Pentium 166)
работает нормально, изготовленный посредством 2.39 при закрытии формы вызывает ошибку.
С уважением, А.Шаталов.


 
[e]Bu$ter ©   (2006-11-08 10:28) [1]

У всех работает, у вас нет...
Вы уверены, что правильно обновляетесь? Build везде сделан?


 
avs ©   (2006-11-09 07:48) [2]

Build, конечно, вещь хорошая, без оного я вообще не смог бы ходить с версии на версию.
Сейчас попробовал сделать маленький project c меню и bmp.
Bmp - пустографка с платежного поручения, черно-белая.
Меню действительно стало работать в Design time нормально,но
StretchDrawTransparent  не работает.(StretchDraw-ит, но не Transparent-ит)
Фрагмент кода прилагается.
Kol 2.40

var
 Form1 {$IFDEF KOL_MCK} : PForm1 {$ELSE} : TForm1 {$ENDIF} ;
{$IFDEF KOL_MCK}
   Bmp:PBitmap;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
Bmp:=NewBitmap(200,100);
Bmp.LoadFromFile(GetStartDir+"Bmpf.bmp");
end;

procedure TForm1.KOLForm1Paint(Sender: PControl; DC: HDC);
begin
Bmp.StretchDrawTransparent(Dc,Form.ClientRect,clWindow);
end;



 
MTsv DN ©   (2006-11-09 08:46) [3]

> Фрагмент кода прилагается.
> Kol 2.40

Я улыбаюсь... То Вы на 2.15 переходите, то 2.40 пользуетесь (кстати, а какой 2.40 8) ???)...

Щас тестировал на 2.41а... Результат работы Вашего кода: ПОЛОЖИТЕЛЬНО!!! И СтрейчДроит, и Трансперит тоже...


 
Barloggg   (2006-11-09 08:51) [4]

между этими версиями 2.15 и 2.40 drawtransparent изменился. однако старая версия осталась, надо только вспомнить эту директиву, если уж вам нужна именно старая версия кода.


 
MTsv DN ©   (2006-11-09 08:54) [5]

Кстати... В версии 2.15 использовалась старый вариант функции Convert2Mask... В 2.41а есть возможность использовать этот вариант (просто я ее использую сам, а когда Владимиру upd-файл скидывал, забыл удалить)... Для этого используйте директиву USE_OLDCONVERT2MASK...


 
MTsv DN ©   (2006-11-09 08:55) [6]

> между этими версиями 2.15 и 2.40 drawtransparent изменился
Если быть точнее, то в 2.21...


 
avs ©   (2006-11-09 17:35) [7]

Благодарю всех, кто откликнулся.
MTsv DN, все версии беру только с Вашего сайта, причем KOL и MCK в одном архиве. Версия kol_mck_v2.40c.7z.
Устанавливал с нуля.(Переименвал папку и удалил все упоминания о Kol из Delphi)
Пример, приведенный мною, создавался с нуля под 2.40с, который я пока тестирую.
Кстати... В версии 2.15 использовалась старый вариант функции Convert2Mask...<i/>
Мне абсолютно все едино, со старым или новым вариантом будет работать
Bmp.StretchDrawTransparent, лишь бы работал.
На 2.15 я перешел с 2.39 после сигнала "Большой баг".
между этими версиями 2.15 и 2.40 drawtransparent изменился
Если быть точнее, то в 2.21...
.
Стало быть, мальчик все же был..
А не было чего либо подобного с Меню?
И можно ли адаптировать меню, рожденное еще где-то в версии 1.85 к 2.41,
или нужно его грохнуть и пересоздать врукопашную с нуля?
Впрочем, возможно, последний вопрос преждевременный.
(В том случае, если вышеупомянутые вещи в 2.41а реализованы иначе, чем в 2.40с)
Качаю 2.41а и буду пробовать.
Еще раз всем спасибо.


 
avs ©   (2006-11-09 19:37) [8]

Доброго времени суток всем.
Что касается Bmp.StretchDrawTransparent, то у меня в 2.41 работает только с
волшебным словом USE_OLDCONVERT2MASK.
Видимо то же и для 2.21 и выше?
Получается, что казалось бы, стандартный метод работает только со старой версией кода?...


 
ANTPro ©   (2006-11-09 20:04) [9]

> [8] avs ©   (09.11.06 19:37)

Старый CONVERT2MASK медленее:
Версия KOL 1.91 [ASM]
Размер   : [10000]x[10000]x[16]
Время    : 2313

Версия KOL 2.37 [ASM]
Размер   : [10000]x[10000]x[16]
Время    : 640

Версия KOL 2.36+ [MYPAS] - моя попытка оптимизировать :)
Размер   : [10000]x[10000]x[16]
Время    : 219


 
MTsv DN ©   (2006-11-09 20:32) [10]

> Что касается Bmp.StretchDrawTransparent, то у меня в 2.41
> работает только с
> волшебным словом USE_OLDCONVERT2MASK.
> Видимо то же и для 2.21 и выше?
> Получается, что казалось бы, стандартный метод работает
> только со старой версией кода?...

У меня и так и сяк работает... Может картинку скинешь, а еще лучше temp-овый проект...

> Версия KOL 2.36+ [MYPAS] - моя попытка оптимизировать :)
> Размер   : [10000]x[10000]x[16]
> Время    : 219

Так в чем дело 8) Подправь 2.41а (хотя функция не менялась с 2.21), скинь Владимиру upd-файл... ...Пускай дело в массы...если, конечно, это не приват...


 
ANTPro ©   (2006-11-09 21:04) [11]

> [10] MTsv DN ©   (09.11.06 20:32)
> хотя функция не менялась с 2.21

Изменилась в 2.37


> [10] MTsv DN ©   (09.11.06 20:32)
> Так в чем дело 8)

Хочу сделать PSpeedBitmap, но все как-то не до этого.
Есть важное ограничение: Размеры Bitmap"a должны быть кратны 8 (Меня это вполне устраивает)


 
avs ©   (2006-11-09 21:33) [12]

MTsv DN Кидаю сразу все, встречайте.


 
Vladimir Kladov   (2006-11-09 21:45) [13]

вы бы чем откатывать все символом условной компиляции попробовали все-таки разобраться, в чем дело. Дайте пример bmp и своего кода для отрисовки transparent, который работает только по-старому. И автору нового варианта будет интересно тоже наверняка.


 
ANTPro ©   (2006-11-09 23:40) [14]

> [10] MTsv DN ©   (09.11.06 20:32)
> upd-файл...

А какой прогой он делается?


 
avs ©   (2006-11-10 07:17) [15]

ANTPro
А какой прогой он делается


UpdateMaker лежит в разделе http://kolmck.net/rindex.htm


 
avs ©   (2006-11-10 09:08) [16]

ANTPro , А какой прогой он делается
Уточняю: Загрузки,раздел "Инструменты"


 
avs ©   (2006-11-10 11:23) [17]

Это любопытно...
Установил на P166 , Win98se, Delphi5  2.41а - действительно, все работает.


 
MTsv DN ©   (2006-11-10 12:07) [18]

> Это любопытно...
> Установил на P166 , Win98se, Delphi5  2.41а - действительно,
>  все работает.

Не знаю... Не тестировал...

Посмотрел, присланный проект...
В общем, с 1bit изображениями, ASM-версия CONVERT2MASK работает не корректно... Причем не конвертирует только White, Black конвертит нормально...


 
avs ©   (2006-11-10 12:54) [19]

MTsv DN Посмотрел, присланный проект...
Истина установлена. Примите мою благодарность.


 
MTsv DN ©   (2006-11-10 13:42) [20]

Ага... Осталось дело за малым...исправить это. Но и сожалению, моих познаний в ASM"е не достаточно для этого :-(


 
avs ©   (2006-11-10 13:46) [21]

MTsv DN
Ничего, пока буду пользовать Волшебное слово...


 
avs ©   (2006-11-10 13:52) [22]

MTsv DN P.S. Может быть, пробежимся по истории TKolMainmenu в этом же диапазоне версий.
Что все-таки поменялось, после чего стала нарушаться отрисовка в Design Time. Тем более, что выяснилось, что KOLCTRLWRAPPER ни при чем.


 
Vladimir Kladov   (2006-11-10 14:50) [23]

что-то я не понял: зачем нужен Convert2Mask для 1-битного изображения, оно и так уже монохромное?


 
MTsv DN ©   (2006-11-10 14:58) [24]

> что-то я не понял: зачем нужен Convert2Mask для 1-битного изображения, оно и так уже монохромное?
А кто ж Вам скажет... Это avs развлекается так ;) Я только факт констатирую...

Смысл такой:
1. Берем 1-битного изображение, загружаем его в PBitmap.
2. В FormOnPaint пишем:
Bmp.StretchDrawTransparent(DC, Form.ClientRect, clWhite);
В итоге, PAS-версия рисует ТОЛЬКО черный цвет (т.е. то что и требовалось), а ASM-версия картинку...

Если же вместо clWhite, использовать clBlack, то обе версии, правильно исключают ЧЕРНЫЙ ЦВЕТ...


 
avs ©   (2006-11-10 18:47) [25]

MTsv DNА кто ж Вам скажет... Это avs развлекается так
Разъясняю смысл развлечения: На пустой форме рисуется сетка чернымцветом. Посредством отслеживания координат мыши в Runtime определяю координаты и размер окон ввода и избавляюсь от необходимости грузить проект пояснительным текстом к форме ввода платежки. При этом белый фон
нежелателен. Вот собственно и все.


 
avs ©   (2006-11-10 18:51) [26]

P.S. А Convert2Mask для 1-битного изображения вызывает Bmp.StretchDrawTransparent без всякого принуждения с моей стороны.


 
Vladimir Kladov   (2006-11-10 19:12) [27]

по прозрачности для 1, 4, 8 бит исправил. Не отрисовывалось меню в дизайнере приоткрытии формы/проекта в IDE? Тоже исправил. И кстати авто-удаление кода присвоения обработчика после его очистки тоже. От кэширования пришлось отказаться для главного меню. Но скорость вроде бы не сильно упала, я попробовал на очень большом меню.


 
avs ©   (2006-11-11 09:24) [28]

Vladimir Kladov Благодарю за помощь.
Теперь о меню. Вновь созданное отрисовывается нормально, а что делать с моим давно созданным и далеко не маленьким, которое глючит?
Есть способ решить это легким движением руки?
И еще один вопрос:
В связи с т.к. тип KOLChar объявлен теперь как не точный эквивалент типа Char (type KOLChar = type Char), то существующие обработчики события OnChar могут становиться несовместимым с новой декларацией ...
Это относится только к обработчикам или нужно поменять Char на KolChar и т.д. в мировом масштабе?
Заранее благодарен, А.Шаталов.


 
Vladimir Kladov   (2006-11-11 12:19) [29]

это относится к конкретному обработчику OnChar. Я делаю так. Проект открывается и Delphi начинает ругаться. Я копирую содержимое обработчика, и очищаю его. Если он после этого не удалился сам (он может не удалиться, если есть еще куча подобных несовместимостей, и я в этом случае на вопрос "remove reference?..." отвечаю "нет", потому что "да" все равно не срабатывает, да и легче так. Отвечать приходится на всю кучу нсовместимых обработчиков). Потом (раз он сам не удалился) переключаюсь в вид dfm формы как текста, нахожу нужный OnChar, удаляю строчку руками, возвращаюсь в вид "as Form". Теперь обработчика точно нет, создаю новый, на этот раз тип у него правильный и их клипборда вставляю тот же код. Если это не последний такой обработчик, процедуру приходится повторять. Вчера переделывал большой проект, 40 форм, в каждой по несколько обработчиков, часа полтора ушло. А что делать, прогресс требует жертв.

Еще несовместим теперь обработчик OnLVData. Все то же самое.

Насчет меню я не знаю. Я заметил только что menu bar не отрисовывался при открытии формы. Если что-то еще глючит, поясните точнее.


 
avs ©   (2006-11-12 14:51) [30]

Vladimir Kladov
> Я заметил только что menu bar не отрисовывался при открытии
> формы. Если что-то еще глючит, поясните точнее.

Большое спасибо за StretchDrawTransparent и разъяснения по поводу onChar.  Насчет меню - сейчас установлю 2.42, и сразу же доложу о поведении меню, созданного в старом проекте.


 
avs ©   (2006-11-12 15:04) [31]

Владимир, снимаю шляпу, а также вопрос по меню.
В версии 2.42  Все работает!



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.072 c
8-1159901234
Ah
2006-10-03 22:47
2007.06.24
Просмотр изображений в отдельной папке


2-1180854110
Kley
2007-06-03 11:01
2007.06.24
Exel из Делфи


8-1160246129
mstitel
2006-10-07 22:35
2007.06.24
запись звукового потока


2-1180506057
AlexGalkin
2007-05-30 10:20
2007.06.24
Копирование содержимого папки


15-1179978466
AleKo
2007-05-24 07:47
2007.06.24
Лицензия на BDS2006