Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 29.11.2013, 14:17   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,805
По умолчанию Загрузить картинку в TSpeedButton из TImageList

Доброго времени суток. Подскажите, пожалуйстка как загрузить картинку в TSpeedButton из TImageList.
Shouldercannon вне форума   Ответить с цитированием
Старый 29.11.2013, 14:56   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 365
По умолчанию

У меня на Delphi 7 вышла такая строка:
Код:
ImageList1.GetBitmap(1,SpeedButton1.Glyph);
В этом методе первый параметр есть номер картинки в ImageList, второй - место, куда эту картинку грузить.

З.Ы. Использовал BMP-картинки.
Программирую по необходимости

Последний раз редактировалось tsar_; 29.11.2013 в 14:59.
tsar_ вне форума   Ответить с цитированием
Старый 29.11.2013, 16:35   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,805
По умолчанию

Хм. При таком раскладе картинка не хочется меняться на указанную, как первая встанет, в данном случае 0, так и всё.
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if SpeedButton1.Tag = 0 then
  begin
    ImageList1.GetBitmap(1, SpeedButton1.Glyph);
  end
  else
  begin
    ImageList1.GetBitmap(0, SpeedButton1.Glyph);
  end;
end;

Последний раз редактировалось Shouldercannon; 29.11.2013 в 17:50.
Shouldercannon вне форума   Ответить с цитированием
Старый 29.11.2013, 21:49   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,044
По умолчанию

Код:
var Bitmap: Tbitmap;
begin
  Bitmap:=Tbitmap.Create;
  SpeedButton1.Tag:=Integer(not Boolean(SpeedButton1.Tag));
  ImageList1.GetBitmap(SpeedButton1.Tag,Bitmap);
  SpeedButton1.Glyph:=Bitmap;
  Bitmap.Free;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 30.11.2013, 13:48   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,855
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
SpeedButton1.Tag:=Integer(not Boolean(SpeedButton1.Tag));
Омг!
Код:
SpeedButton1.Tag := 1 - SpeedButton1.Tag;

Последний раз редактировалось phomm; 30.11.2013 в 13:51.
phomm вне форума   Ответить с цитированием
Старый 30.11.2013, 14:16   #6
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,044
По умолчанию

Цитата:
Омг!
Согласен. Короче и прозрачней. Но нужно себе еще и трудности создавать, как без них Но есть и плюс - какой бы Tag изначально не был будет работать, а с вычитанием проблема
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 30.11.2013 в 14:20.
Аватар вне форума   Ответить с цитированием
Старый 01.12.2013, 12:21   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,805
По умолчанию

Как загрузить картинку из PngImageList1 в PngSpeedButton1? Тут уже сложнее.
Код:
procedure TForm1.PngSpeedButton1Click(Sender: TObject);
var
  png: TPNGObject;
begin
  png := TPNGObject.Create;
  PngSpeedButton1.Tag := Integer(not Boolean(PngSpeedButton1.Tag));
  PngImageList1.GetBitmap(PngSpeedButton1.Tag, png);
  PngSpeedButton1.Glyph := png;
  FreeAndNil(png);
end;
На строках с png
[Error] Unit1.pas(40): Incompatible types: 'TBitmap' and 'TPNGObject'
[Error] Unit1.pas(41): Incompatible types: 'TBitmap' and 'TPNGObject'

Несовместимые типы: 'TBitmap' и 'TPNGObject'
Shouldercannon вне форума   Ответить с цитированием
Старый 02.12.2013, 15:54   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,805
По умолчанию

Подскажите пожалуйста, как поместить картинку из PngImageList1 в TPNGObject.
С обычной загрузкой из файла всё просто
Код:
var
  png: TPNGObject;
begin
  png := TPNGObject.Create;
  PngSpeedButton1.Tag := Integer(not Boolean(PngSpeedButton1.Tag));
  png.LoadFromFile(ExtractFilePath(Application.ExeName) + Format('%d.png', [PngSpeedButton1.Tag]));
  PngSpeedButton1.PngImage.Assign(png);
  FreeAndNil(png);
end;
но как это сделать с PngImageList1?

Последний раз редактировалось Shouldercannon; 02.12.2013 в 17:08.
Shouldercannon вне форума   Ответить с цитированием
Старый 02.12.2013, 16:50   #9
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,044
По умолчанию

Для этого нужно как минимум иметь такие компоненты. Первый раз об их существовании слышу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 02.12.2013, 17:08   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,805
По умолчанию

Ура.
Код:
procedure TForm1.PngSpeedButton1Click(Sender: TObject);
var
  png: TPNGObject;
begin
  png := TPNGObject.Create;
  PngSpeedButton1.Tag := Integer(not Boolean(PngSpeedButton1.Tag));
  png := PngImageList1.PngImages.Items[PngSpeedButton1.Tag].PngImage;
  PngSpeedButton1.PngImage.Assign(png);
  //FreeAndNil(png); // Не высвобождаем или вызовет ошибку на третьем клике. Скорее всего само высвобождается после закрытия программы
end;
Сие есть, называется PngComponents, имеет на борту: PngSpeedButton, PngBitBtn, PngImageList, PngImageCollection, PngCheckListBox.
Shouldercannon вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как загрузить картинку ser70 Общие вопросы C/C++ 6 02.09.2013 12:32
Не могу загрузить картинку в ImageList АлМазСофт Компоненты Delphi 11 22.08.2013 16:51
Загрузить картинку в PictureBox Wolf-alone C# (си шарп) 3 25.03.2012 03:47
как загрузить в paintbox картинку? blackstersl Общие вопросы Delphi 7 05.06.2009 18:20
Как загрузить картинку? Editor Работа с сетью в Delphi 11 15.07.2008 23:13


05:03.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.