| 
| 
 | Вопрос # 4 868/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Скажите как создать код, при выборе строки Comboboxа на Image происходит смена рисунков.
 Мучаюсь..спасибо заранее!!
 
|  |   Вопрос задал: садыров (статус: Посетитель)Вопрос отправлен: 29 декабря 2010, 14:54
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: DNK Здравствуйте, садыров!Чтото типа этого:
 
 
 procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  ImageList1.GetBitmap(TComboBox(Sender).ItemIndex, Image1.Picture.Bitmap);
end; 
|  | Ответ отправил: DNK (статус: Студент)Время отправки: 29 декабря 2010, 15:42
 
 |  
 Мини-форум вопросаВсего сообщений: 9; последнее сообщение — 30 декабря 2010, 06:47; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 29 декабря 2010, 15:03 [#1]:А как эти картинки хранятся? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | садыров (статус: Посетитель), 29 декабря 2010, 15:29 [#2]:Вот я не могу связать ImageList и Image, рисунки в формате jpeg их 20 штук. Как сделать все это? Ума не хватает!!
 Помогите!!
 |  
|   | садыров (статус: Посетитель), 29 декабря 2010, 15:30 [#3]:ведь Image больше одного рисунка не может в память загрузить.. |  
|   | Вадим К (статус: Академик), 29 декабря 2010, 15:41 [#4]:больше одного в один момент времени. Но по очереди - может. Для Combobox используем событие OnChange - оно будет вызываться как только поменяться выделенный элемент. Проверяем ItemIndex и решаем, какую картинку подгрузить через LoadFromFile. А можно смотреть событие OnCloseUp. Оно сработает, когда бокс свернется...
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | садыров (статус: Посетитель), 29 декабря 2010, 15:46 [#5]:ВадимК, вот например в моем случае есть форма, на нем Combobox,ImageList и Image. Как все это собрать-то..
 На ImageList я загружу 20 рисунков, а дальше как?
 |  
|   | садыров (статус: Посетитель), 29 декабря 2010, 15:47 [#6]:мне бы код реализации.. |  
|   | min@y™ (статус: Доктор наук), 29 декабря 2010, 15:53 [#7]:Щас мужики подскажут, а мне некогда. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  29 декабря 2010, 19:56: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. 
|   | КМ (статус: Посетитель), 30 декабря 2010, 06:42 [#8]:вот действующий код: 
 unit Unit1;
 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Spin, ImgList, ExtCtrls;
 
 type
 TForm1 = class(TForm)
 Image1: TImage;
 ImageList1: TImageList;
 SpinButton1: TSpinButton;
 procedure FormCreate(Sender: TObject);
 procedure SpinButton1UpClick(Sender: TObject);
 procedure SpinButton1DownClick(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 
 var
 Form1: TForm1;
 ImgIndex:Integer;
 
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
 ImgIndex:= 0;
 ImageList1.Draw(Image1.Canvas, 0, 0, ImgIndex);
 end;
 
 procedure TForm1.SpinButton1UpClick(Sender: TObject);
 begin
 inc(ImgIndex);
 if ImgIndex>=ImageList1.Count then ImgIndex:= 0;
 Image1.Picture.Bitmap.Canvas.FillRect(Rect(0, 0, ImageList1.Width, ImageList1.Height));
 ImageList1.Draw(Image1.Picture.Bitmap.Canvas, 0, 0, ImgIndex);
 Image1.Repaint;
 end;
 
 procedure TForm1.SpinButton1DownClick(Sender: TObject);
 begin
 dec(ImgIndex);
 if ImgIndex<0 then ImgIndex:= ImageList1.Count-1;
 Image1.Picture.Bitmap.Canvas.FillRect(Rect(0, 0, ImageList1.Width, ImageList1.Height));
 ImageList1.Draw(Image1.Picture.Bitmap.Canvas, 0, 0, ImgIndex);
 Image1.Repaint;
 end;
 
 end.
 |  
|   | КМ (статус: Посетитель), 30 декабря 2010, 06:47 [#9]:только в Вашем случае вместо SpinButton1 нужно использовать собылие изменения
 комбобокса и его индекс
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |