Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > продвинутый listbox


Автор: Darkmaster 25.7.2006, 15:32
посоветуйте пожалуйста бесплатный компонент наподбие как используется в программе icq. Вроде listbox, но чтобы можно было картинки вставлять...  

Автор: DemoCode 25.7.2006, 15:35
Так и вобычный listbox можно вставлять картинки, в обработчике OnDrawItem. А вообще я обычно для этих целей пользуюсь компонентом TTreeView (и в ICQ похоже, тоже он или его потомок, а не ListBox). 

Автор: ~FoX~ 25.7.2006, 16:32
В аське аналог/потомок RichEdita.

Вот как можно в начало каждого итема запихнуть картинку в ЛистБоксе
Код

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  Bitmap: TBitmap;
  Offset: Integer;
  BMPRect: TRect;
begin
  with (Control as TListBox).Canvas do
  begin
    FillRect(Rect);
    Bitmap := TBitmap.Create;
    ImageList1.GetBitmap(1, Bitmap); //тут лежит битмап
    Offset := 0;
    if Bitmap <> nil then
    
    begin
      BMPRect := Bounds(Rect.Left+2, Rect.Top+2, (Rect.Bottom-Rect.Top-2), Rect.Bottom-Rect.Top-2);
      BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
      Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
      Offset := (Rect.Bottom-Rect.Top+1)+3;
    end;
    TextOut(Rect.Left+Offset, Rect.Top, ListBox1.Items[index]);
    Bitmap.Free;
  end;
end;
 

Автор: Yanis 25.7.2006, 16:53
Если имеется ввиду список с контактами так это обычный TreeView. 

Автор: DemoCode 25.7.2006, 17:03
Цитата(Yanis @  25.7.2006,  17:53 Найти цитируемый пост)
Если имеется ввиду список с контактами так это обычный TreeView

И я про это. 

Автор: Yanis 25.7.2006, 17:34
Набросал пример. Без единой строчки кода....
user posted image
http://yanis.front.ru/files/tmp/icq_gui.zip 

Автор: Darkmaster 25.7.2006, 19:02
спасибо всем! Особый респект Yanis'у 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)