| 
| 
 | Вопрос # 4 497/ вопрос открыт / | 
 |  Доброго времени суток, у/э.
 Итак, вопрос состоит из двух частей, в первом хочу чтобы мне объяснили, ну а во втором желательно помочь.
 
 1) Итак, имеется клавиша BitBtn1 и я в неё загружаю картинку с ImageList1. Смотрим код:
 
 
 
 Итак, при показе формы всё прекрасно. Появляется кнопочка уже с картинкой. Но когда обрабатывается событие BitBtn1.Click, то картинка куда то исчезает! Хотя компликтуется без ошибок.
 
 2) Решил проблему так:
 
 
 
 но тут опять косяк! Когда картинка сменяется, то вокруг картинки появляется белый фон, а не прозрачный как нужно!
 
 Эксперты, жду вашей помощи!
 Приложение:Переключить в обычный режим -----1-------------------------------------------------- procedure TForm1.FormShow(Sender: TObject);beginimagelist1.GetBitmap(0, bitbtn1.Glyph);end; procedure TForm1.BitBtn1Click(Sender: TObject);beginif bitbtn1.Tag = 0 thenimagelist1.GetBitmap(1, bitbtn1.Glyph) else imagelist1.GetBitmap(0, bitbtn1.Glyph);if bitbtn1.Tag = 0 then bitbtn1.Tag := 1 else bitbtn1.Tag := 0;end; -----2-------------------------------------------------- procedure TForm1.FormShow(Sender: TObject);beginimagelist1.GetBitmap(0, bitbtn1.Glyph);end; procedure TForm1.BitBtn1Click(Sender: TObject);varbit_1 : tbitmap;beginbit_1 := tbitmap.Create;if bitbtn1.Tag = 0 thenbeginimagelist1.GetBitmap(1, bit_1);bitbtn1.Glyph := bit_1;bitbtn1.Tag := 1;end elsebeginimagelist1.GetBitmap(0, bit_1);bitbtn1.Glyph := bit_1;bitbtn1.Tag := 0;end;bit_1.Free;end;
|  |   Вопрос задал: padonak (статус: Посетитель)Вопрос отправлен: 9 августа 2010, 18:45
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: DNK Здравствуйте, padonak!Если был дан весь проект, было бы попроще. При работе с transparent-свойствами очень много тонкостей. Как эти свойства установлены в ImageList1, а также как они выставлялись при добавлении самих картинок?
 Я собрал из твоих кусочков кода под номером 2 проект и он корректно заработал. Попробуй также собрать заново. Свойства ImageList, кроме размеров - по-умалчиванию. При добавлении картинок редактор автоматически выставляет отдельно для каждой картинки свойство Transparent color (в моём случае был clFuchsia). Тут же нужно выставить это свойство в clNone, т.к. после сохранения редактором списка, эти настройки блокируются. Создавемый объект bit_1 имеет свойство Transparent равное tmAuto, и именно он будет у нас отвечать за прозрачный цвет.
 
 PS. Почему не работает в первом случае не знаю. У меня вообще картинка не менялась.
 
 PPS. Бывали случаи, когда уже вроде бы отлаженный пример вдруг начинал работать некорректно. Побеждалось удалением и добавлением заново ImageList.
 
|  | Ответ отправил: DNK (статус: Студент)Время отправки: 11 августа 2010, 16:23
 Оценка за ответ: 3
 Комментарий к оценке: не помогло ((( пришлось делать две кнопки... самому противно... |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 9 августа 2010, 19:47; участников в обсуждении: 2. 9 августа 2010, 18:47: Вопрос перемещён из тематического раздела Delphi » Оболочка Delphi, компилятор, версии среды и т.д. в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. 
|   | Тов. Женька (статус: 3-ий класс), 9 августа 2010, 19:29 [#1]:" Итак, имеется клавиша BitBtn1 и я в неё загружаю картинку с ImageList1." 
 Нет, не загружаете. Скорее из нее.
 
 Попробовал код, ничего не пропадает. Озвучьте версию Delphi, пожалуйста.
 |  
|   | padonak (статус: Посетитель), 9 августа 2010, 19:47 [#2]:Тов. Женька: что значит "из неё"? она вобще пустая! картинки с индексами 0 и 1 сохранены в ImageList1. Насчёт версии незнаю, скачивал с оф. сайта... вобще Delphi 7 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |