|
Вопрос # 4 469/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Загружаю на SpeedButton картинку bmp (см файл). На кнопке затирается весь оранжевый фон картинки! какую бы картинку я не делал в любом случае один из ее цветов будет затерт при загрузке на SpeedButton или BitBtn. В чем тут дело?
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: AlexMPEI (статус: 1-ый класс)
Вопрос отправлен: 29 июля 2010, 10:53
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, AlexMPEI!
Выставить свойство Transparent = False.
или, более кривой способ - в пиксель [0,0] нужно записать какой то другой цвет.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 29 июля 2010, 10:58
|
Мини-форум вопроса
Всего сообщений: 8; последнее сообщение — 29 июля 2010, 13:16; участников в обсуждении: 3.
|
Тов. Женька (статус: 3-ий класс), 29 июля 2010, 10:57 [#1]:
Все дело в том, что вырезается весь цвет совпадающий с цветом левого нижнего пикселя картинки.
|
|
AlexMPEI (статус: 1-ый класс), 29 июля 2010, 12:17 [#2]:
"Выставить свойство Transparent = False."
Чему нужно выставить это свойство? Я его выставляю и кнопке и загруженному битмапу, но эффекта нет. запись в пиксел 0,0 другого цвета
unselectedBMP.Canvas.Pixels[0,0] := clRed;
тоже ничего не дает. и я в итоге вижу этот пиксель в левом верхнем углу.
|
|
Вадим К (статус: Академик), 29 июля 2010, 12:26 [#3]:
выставить нужно кнопке до загрузки битмапа.
Второе тоже не поможет, потому что картинка на той момент загружена. Править нужно начальный bmp перед загрузкой.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
AlexMPEI (статус: 1-ый класс), 29 июля 2010, 12:35 [#4]:
я это свойство выставляю компоненту еще в редакторе формы, а загрузку делаю в конструкторе. Также перед загрузкой на кнопку заменяю цвет пиксела 0,0
procedure TForm1.FormCreate(Sender: TObject);
var
unselectedBMP: TBitmap;
path: string;
unselectedPNG: TPNGObject;
begin
SpeedButton1.Transparent := false;
unselectedBMP := TBitmap.Create;
path := ExtractFilePath(Application.ExeName) + 'unselect_btn.bmp';
unselectedBMP.LoadFromFile(path);
unselectedBMP.Canvas.Pixels[0,0] := clRed;
SpeedButton1.Glyph := unselectedBMP;
unselectedBMP.Free;
end;
но эффекта это не дает.
|
|
Вадим К (статус: Академик), 29 июля 2010, 12:47 [#5]:
замену пикселя в данном случае делать не стоит. я писал о взаимоисключающих вариантах.
А если загрузить картинку ещё в испекторе объектов. глюк тоже воспроизводиться?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Тов. Женька (статус: 3-ий класс), 29 июля 2010, 13:01 [#6]:
Transparent лишь делает кнопку прозрачной, на glyph это не влияет. Меняй пиксель на нейтральный.
|
|
AlexMPEI (статус: 1-ый класс), 29 июля 2010, 13:08 [#7]:
если в инспекторе объектов тоже нет эффекта.
Что значит "нейтральный пиксел"?
насколько я выяснил, затирается вроде не цвет 0-вого пиксела, а первый цвет в палитре цветов...
|
|
Тов. Женька (статус: 3-ий класс), 29 июля 2010, 13:16 [#8]:
нейтральный - значит непохожий на остальные.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|