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

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

Типа listbox'a только в место текста картинки


Батя ©   (2006-10-17 11:13:00) 

Подскажите пожалуйсто, нужен компонет позволяющий пользователю выбрать из множества BMP-шек одну. Например как в listbox.Только вместо текста должны отображаться эти самые bmp(они храняться в imageList). Спасибо


Батя   (2006-10-18 01:19:00) [1]


> Schamane   (18.10.06 01:04) [8]
>
> Гы-гы... Это, значит, у картинки есть текст... в каком-то
> месте... И нужен, типа, listbox, только - в это самое место!
>

М-да. Ну ты укуренный!


Schamane   (2006-10-18 01:04:00) [2]

Гы-гы... Это, значит, у картинки есть текст... в каком-то месте... И нужен, типа, listbox, только - в это самое место!


Schamane   (2006-10-18 00:59:00) [3]

Бать, а, бать! Уточни, а что есть «место текста»... или «текст картинки», что-ли?:)


RASkov   (2006-10-17 23:48:00) [4]

Используются DrawGrid и ImageList1:

procedure TForm1.drawgridDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
var Index: integer;
begin
 Index :=ARow * drawgrid.ColCount + ACol;
 with Sender as TDrawGrid do
 begin
  if (gdFocused in State)or(gdSelected in State) then
   begin
    Canvas.Brush.Color := clSilver;
    Canvas.DrawFocusRect(Rect);
   end else Canvas.Brush.Color := clWhite;
  Canvas.FillRect(Rect);
  ImageList1.Draw(Canvas, Rect.Left, Rect.Top, Index);
 end;
end;


В ImageList1 картинки. У drawgrid настрой ColCount и RowCount
например так в одну строчку:

procedure TForm1.FormCreate(Sender: TObject);
begin
 drawgrid.ColCount:=ImageList1.Count;
end;


И ее получение:

procedure TForm1.drawgridSelectCell(Sender: TObject; ACol, ARow: Integer;
 var CanSelect: Boolean);
begin
* Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
 ImageList1.GetBitmap(ARow * drawgrid.ColCount + ACol, Image1.Picture.Bitmap);
* Image1.Refresh;
end;


То что * может и не надо.


EvS   (2006-10-17 13:08:00) [5]

ItemEx.AddItem( параметры );
только не забудь Images:=ImageList1;


Батя   (2006-10-17 11:57:00) [6]

А вот как добовлять программно в ComboBoxEx.


Percent   (2006-10-17 11:35:00) [7]

Например как в listbox

TListBox
См. OnDrawItem


Dmitrij_K   (2006-10-17 11:29:00) [8]

ListView


EvS   (2006-10-17 11:25:00) [9]

drawgrid


Наверх

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