| 
| 
 | Вопрос # 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]:нейтральный - значит непохожий на остальные. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |