Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.037 c
11-1163128856
SKA1997
2006-11-10 06:20
2007.06.24
ALT + TAB


1-1177384596
Mixal__
2007-04-24 07:16
2007.06.24
отладочная информация


15-1180005032
No_Dead
2007-05-24 15:10
2007.06.24
Какое соотношение будет в следующей задачке


2-1180234804
vegarulez
2007-05-27 07:00
2007.06.24
Пинг, TIdIcmpClient, except.


4-1169011105
Alex603081
2007-01-17 08:18
2007.06.24
код кнопки мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский