Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение картинки в SpeedButtonе [D7, WinXP]


Xmen ©   (2011-02-24 09:28:00) 

Привет мастерам!!!
Изменение картинки в SpeedButtonе.
Организую работу с документом. Документ может быть в положение на доработке(1),  на проверку(2), закрыть(3), закончен(4). Для каждого случая есть свая картинка и для каждого состояния есть свой ключ состояния. В компоненте ImageList загрузил подходящие картинки. Как можно изменить картинки в SpeedButtonе по ключу состояния. Например есть документ с ключом состояния 1, и когда выбирается документ в SpeedButtonе отражался картинка из ImageList а с индексом 1.


Renderer   (2011-02-28 16:01:00) [1]

> Xmen   (28.02.11 14:33) [17] Шутка?

Вполне корректный ответ на твой совсем некорректный вопрос.

> Xmen   (28.02.11 15:03) [19] Ну блин где же его поставит прозрачность не мог пока найти

TSpeedButton.Glyph имеет тип TBitmap.


Xmen   (2011-02-28 15:03:00) [2]

Ну блин где же его поставит прозрачность не мог пока найти


sniknik   (2011-02-28 14:36:00) [3]

> У меня картинки в формате png.
на диске, в файлах, может быть. но файл не есть битмап.


Xmen   (2011-02-28 14:33:00) [4]


> SpeedButton.Visible := not(1 and 4 = 0) ; - полная прозрачность
> :)

Шутка?


> у битмапа нет призрачности... в ImageList это просто тебе
> так их отображают. т.что хочешь не хочешь, а подумать насчет
> призрачности SpeedButton-е придется.

У меня картинки в формате png.


Dennis I. Komarov   (2011-02-28 11:27:00) [5]

SpeedButton.Visible := not(1 and 4 = 0) ; - полная прозрачность :)


sniknik   (2011-02-28 09:27:00) [6]

> а в ImageList1 все картинки прозрачные.
у битмапа нет призрачности... в ImageList это просто тебе так их отображают. т.что хочешь не хочешь, а подумать насчет призрачности SpeedButton-е придется.


Xmen   (2011-02-28 08:14:00) [7]


> Какой-то из тебя программист ну совсем плохой.С причинно-
> следственными связями у тебя совсем туго.Садись и думай:
>  прозрачность чего тебе нужна?Пока не придумаешь - даже
> не появляйся.

Мне прозрачность в SpeedButton1 нужен.
а в ImageList1 все картинки прозрачные. Когда я их использую в кнопках то нормально получается. Если я программно меняю картинки в SpeedButton1не то картинки  получаются в белом фоне :(


Renderer   (2011-02-25 23:19:00) [8]

> в ImageList1 при изменении?
> или SpeedButton1


Какой-то из тебя программист ну совсем плохой.
С причинно-следственными связями у тебя совсем туго.
Садись и думай: прозрачность чего тебе нужна?
Пока не придумаешь - даже не появляйся.


Xmen   (2011-02-25 13:54:00) [9]

Это где нужно указать
в ImageList1 при изменении?
или SpeedButton1


KilkennyCat   (2011-02-25 13:14:00) [10]

указать цвет прозрачности, или использовать clMaroon фоном


Xmen   (2011-02-25 13:10:00) [11]

Дополнительный вопрос.
при смены картинки в SpeedButton1 картинки получаются в белом фоне хотя они в ImageList1 прозрачные.


Xmen   (2011-02-24 15:10:00) [12]

Всем спосибо
Особенно Гуглу!!!

 ImageList1.Tag := ImageList1.Tag + 1;
 SpeedButton1.Glyph.Assign(nil);
 ImageList1.GetBitmap(ImageList1.Tag,SpeedButton1.Glyph);


И. Павел   (2011-02-24 12:10:00) [13]

> [7] Ywoman   (24.02.11 11:51)

Вы прочитали, то что я написал в [5]? Там я написал, почему это не работает...


Ywoman   (2011-02-24 11:51:00) [14]

procedure TMainForm.SetImage(B:TBitmap; IL:TImageList; Index:integer);
begin
 IL.Draw(B.Canvas, 0, 0, Index);
end;


И. Павел   (2011-02-24 11:47:00) [15]

> битмап вашей кнопки

Ну т.е. свойство Glyph.


И. Павел   (2011-02-24 11:46:00) [16]

> Xmen

Попробуйте эту функцию. Писал давно. Необходимость возникала из за того, что при смене ImageIndex в Action не менялся глиф на кнопке. Параметры: битмап вашей кнопки, ImageList и индекс картинки в ImageList, которую нужно разместить на кнопке.

procedure TMainForm.SetImage(B:TBitmap; IL:TImageList; Index:integer);
var Bitmap:Graphics.TBitmap;
begin
 Bitmap:=Graphics.TBitmap.Create;
 try
   Bitmap.Width:=IL.Width;
   Bitmap.Height:=IL.Height;
   IL.Draw(Bitmap.Canvas, 0, 0, Index);
   B.Assign(Bitmap);
 finally
   Bitmap.Free;
 end;  
end;


И. Павел   (2011-02-24 11:40:00) [17]

> [3] Ywoman   (24.02.11 10:58)
> Ищи. Там есть. Точно. Так что ищи. Ищущий да обрящет.

Если у ищущего Delphi 7 и SpeedButton не связан с Action, то не обрящет.


Ywoman   (2011-02-24 10:58:00) [18]

Ищи. Там есть. Точно. Так что ищи. Ищущий да обрящет.


Xmen   (2011-02-24 10:38:00) [19]


> а поменять индекс религия не позволят?

А где именно, я не нашел этот пункт и как можно связать SpeedButton и ImageList


Palladin   (2011-02-24 10:05:00) [20]

а поменять индекс религия не позволят?


Наверх

Титульная страница Поиск, карта сайта Написать письмо