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

Вниз

Проблема с прозрачностью на ровном месте.   Найти похожие ветки 

 
Виталий*   (2007-02-20 00:53) [0]

Всем привет.
Открываю Paint, на белом фоне создаю черный квадрат :) .
Сохраняю его с 256 цветов.

Рисую :

procedure TForm1.PaintBox1Paint(Sender: PControl; DC: HDC);
var bmp: PBitmap;
begin
 bmp:= NewBitmap(0,0);

 bmp.LoadFromFile("c:\list5.bmp");

 bmp.DrawTransparent(dc,0,0, clwhite);
 bmp.Free;
end;


Фон сто пудово белый.
С 16цветами и 24 битами и Pascal версии все работает.

В чем проблема??? Помогите !


 
Виталий*   (2007-02-20 00:54) [1]

Версия кол самая последняя.


 
ANTPro ©   (2007-02-20 01:48) [2]

> [0] Виталий*   (20.02.07 00:53)
> list5.bmp

Картинку покажи

Пробовал?: bmp.DrawTransparent(Form1.canvas.handle,0,0, clwhite);


 
Виталий*   (2007-02-20 14:14) [3]

Откройте paint нарисуйте квадрат (или что угодно) и сохраните как 256 bmp. Вот это та самая картинка.


> Пробовал?: bmp.DrawTransparent(Form1.canvas.handle,0,0,
> clwhite);

Э-э. а зачем? Методы то одинаковые.

Пробовал, пробовал.


 
Vladimyr ©   (2007-02-20 15:37) [4]

1. вместо clwhite поставить bitmap.Pixels[0,0]
2. Не надо иcпользовать канву! Глючит на Win98. Лучше DC.


 
Vladimir Kladov   (2007-02-20 15:51) [5]

Нарисовал квадрат, заменил Bmp1.bmp в DemoPaintBitmap и рисование на DrawTransparent( ..., clWhite ). прозрачно. Сделал на Paintbox, а не на форму. Еще прозрачнее (в смысле мусор от прежнего содержимого экрана). Что еще сделать?


 
Vladimir Kladov   (2007-02-20 15:57) [6]

А, не то посмотрел. У меня с последнего раза в опциях PAS_VERSION осталась, с ней все прозрачно. В асме действительно прозрачность куда-то уходит. Хорошо, посмотрю, все равно в асме никто ковыряться не любит кроме меня. Хотя я тоже не люблю, но приходится.


 
Vladimir Kladov   (2007-02-20 16:25) [7]

вот такое пока решение: USE_OLDCONVERT2MASK в опции проекта.


 
Виталий*   (2007-02-20 16:32) [8]

Спасибо, прийду домой попробую обязательно!!!


 
ANTPro ©   (2007-02-20 16:33) [9]

> [4] Vladimyr ©   (20.02.07 15:37)
> 2. Не надо иcпользовать канву! Глючит на Win98. Лучше DC.

Можно по подробней?


> [7] Vladimir Kladov   (20.02.07 16:25)
> CONVERT2MASK

Волшебная функция
Тараканы так и лезут к ней : )


 
Виталий*   (2007-02-20 16:52) [10]

Да все работает , но некоторые другие картинки теперь без прозрачности :)
Буду ждать исправления или на пока перерисую.


 
Vladimir Kladov   (2007-02-20 17:21) [11]

Как раз для этго ражиме 256 цветов нашлось 3 ошибки: одна команда лишняя, другой не хватало, и не на ту метку вдобавок цикл. Просто мы плохо тестировали, забыли режим целый.


 
Vladimyr ©   (2007-02-21 11:22) [12]

[b]ANTPro[/b], история уже с бородой, но повторить не жалко :)

Началось это ещё во времена, когда кроме Win98 была ещё только Win95, и всё :) А кодил я тогда на VCL, но извращаться уже тогда любил :)

И вот накодил я простенькое приложеньице, причём без заголовка окна...
Батоны там овальные, кажется, были... И вот вижу я, что при работе моей проги батоны рисуются в левом верхнем углу экрана, т.е. прямо на рабочем столе!!!
Я прифигел немного, стал тестировать на разных компах, и обнаружил, что такое бывает на разных машинах, но только под 98 виндой, под 95 вроде нормально.
Причину я тогда не нашёл, подшаманил немного, так что глюк стал вылезать реже (но совсем не пропал), и забил :)

Теперь недавно (во времена версии KOL около 1.9), решил я создать ещё одно простенькое приложеньице... И не нашёл в KOL кнопки с картинкой (она чуть позже появилась ;)
Не долго думая беру кнопку без картинки и сам рисую на ней картинку в обработчике OnPaint. Всё вроде работает, но для очистки совести проверяю под разными операционками: XP, 2000, 98...
Каково же было моё удивление, когда под 98 я увидел знакомую картину: иконка вместо центра кнопки улетела в верхний левый угол экрана!!!  %)

"Ну, щас я тебя поймаю!" - подумал я и полез в код. Но ничего неправильного в коде обнаружено не было. Тогда я решил вместо канвы задействовать API и Device Context. Глюк сразу исчез и больше не проявлялся.


 
Vladimyr ©   (2007-02-21 11:24) [13]

... а 98 винда ещё не совсем в утиль пошла.
Она ещё встречается кое-где, например, на не очень новых нотбуках с хилым процом...



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

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

Наверх




Память: 0.5 MB
Время: 0.02 c
9-1161009129
Tesla
2006-10-16 18:32
2007.09.23
Вывод текста юзверю в 3D играх


15-1187761907
fisher
2007-08-22 09:51
2007.09.23
Что читают программисты на работе(и не только)


15-1187711598
Ricks
2007-08-21 19:53
2007.09.23
Как часто вы используете символы Alt+...


4-1174852733
Альберт
2007-03-25 23:58
2007.09.23
запускается чужая программа, надо узнать хэндл окна...


2-1188290749
Шестаков Антон
2007-08-28 12:45
2007.09.23
программно заполнить combobox