Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.03.2015, 21:28
Macrobot Macrobot вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 8
Версия Delphi: Rad studio XE7
Репутация: 10
По умолчанию ComboBox и TImage

Приветствую всех. Друзья помогите справится с задачей. Надо чтоб при выборе в компоненте ComboBox менялась картинка в компоненте TImage
Как поменять цвет например самого обьекта form разобрался а как к картинкам привязать не пойму.
Картинки находятся в папке image

С изменением цвета код такой
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
i: integer;
begin
i:=combobox1.ItemIndex;
case i of

 0: color:= clred;
 1: color:= clblue;
 2: color:= clgreen;
end;
end;
end.
Админ: Пользуемся тегами для оформления кода!

Впринципе разобрался. Но на сколько корректно подскажите.
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.ItemIndex = 0 then
    Image1.Picture.LoadFromFile('1.jpg')

  else if ComboBox1.ItemIndex = 1 then
    Image1.Picture.LoadFromFile('2.jpg')

  else if ComboBox1.ItemIndex = 2 then
    Image1.Picture.LoadFromFile('3.jpg')

  else if ComboBox1.ItemIndex = 3 then
    Image1.Picture.LoadFromFile('4.jpg')

   else if ComboBox1.ItemIndex = 4 then
    Image1.Picture.LoadFromFile('5.jpg')

 end;

Последний раз редактировалось Macrobot, 02.03.2015 в 22:52.
Ответить с цитированием
  #2  
Старый 03.03.2015, 01:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Корректно, но можно короче:
Код:
if ComboBox1.ItemIndex <> -1 then
  Image1.Picture.LoadFromFile(IntToStr(ComboBox1.ItemIndex) + '.jpg')
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Macrobot (03.03.2015)
  #3  
Старый 03.03.2015, 11:09
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Лучше загружать не из файла, а заранее поместить картинки в TImageList. Оттуда потом брать по индексу.
Ответить с цитированием
Этот пользователь сказал Спасибо AlexSku за это полезное сообщение:
Macrobot (03.03.2015)
  #4  
Старый 03.03.2015, 11:14
Macrobot Macrobot вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 8
Версия Delphi: Rad studio XE7
Репутация: 10
По умолчанию

Если можно строчку кода напишите чтоб извлекать в Timage
примерно так?
Код:
var
 Index: integer;  //индекс картинки в ImageList
begin
 Index:=0; // берем 1-ю картинку и вставляем в Image1
  Imagelist1.GetBitmap(Index, Image1.Picture.Bitmap);
end;

Не совсем получается через Imagelist картинки очень мелкие становятся. А по умалчанию 200пикселов они. Где поменять в свойствах чтоб размер реальный был?

Последний раз редактировалось Macrobot, 03.03.2015 в 13:32.
Ответить с цитированием
  #5  
Старый 04.03.2015, 23:07
Macrobot Macrobot вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 8
Версия Delphi: Rad studio XE7
Репутация: 10
По умолчанию

Может кто подсказать почему картинки в Imagelist становятся маленькими. хотелось бы чтоб они были оригинальными
Ответить с цитированием
  #6  
Старый 05.03.2015, 06:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

все картинки в ImageList одинакового размера. У самого ImageList есть свойства, определяющие высоту и ширину картинки. ImageList полезен, когда у тебя небольшие (по физ. размерам) картинки одинакового размера. Если данное условие не соблюдается, то лучше при старте программы просто загрузить картинки в массив или список и потом просто копировать их в TImage (ну или брать из ресурсов, но это, как я понимаю, для тебя пока высший пилотаж).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter