|
Вопрос # 4 497/ вопрос открыт / |
|
Доброго времени суток, у/э.
Итак, вопрос состоит из двух частей, в первом хочу чтобы мне объяснили, ну а во втором желательно помочь.
1) Итак, имеется клавиша BitBtn1 и я в неё загружаю картинку с ImageList1. Смотрим код:
Итак, при показе формы всё прекрасно. Появляется кнопочка уже с картинкой. Но когда обрабатывается событие BitBtn1.Click, то картинка куда то исчезает! Хотя компликтуется без ошибок.
2) Решил проблему так:
но тут опять косяк! Когда картинка сменяется, то вокруг картинки появляется белый фон, а не прозрачный как нужно!
Эксперты, жду вашей помощи!
Приложение: Переключить в обычный режим- -----1--------------------------------------------------
-
- procedure TForm1.FormShow(Sender: TObject);
- begin
- imagelist1.GetBitmap(0, bitbtn1.Glyph);
- end;
-
- procedure TForm1.BitBtn1Click(Sender: TObject);
- begin
- if bitbtn1.Tag = 0 then
- imagelist1.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);
- begin
- imagelist1.GetBitmap(0, bitbtn1.Glyph);
- end;
-
- procedure TForm1.BitBtn1Click(Sender: TObject);
- var
- bit_1 : tbitmap;
- begin
- bit_1 := tbitmap.Create;
- if bitbtn1.Tag = 0 then
- begin
- imagelist1.GetBitmap(1, bit_1);
- bitbtn1.Glyph := bit_1;
- bitbtn1.Tag := 1;
- end else
- begin
- imagelist1.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
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|