Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2008, 10:16   #1
CrazyProgramer
Заблокирован
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 23
По умолчанию Листбох в виде списка миниизображений

Здравствуйте всем. Подскажите как сделать следующее:
Есть имадж лист в нем 10 картинком 64x64 (картинки для топов заданий)
Надо сделать что то вроде панели чтоб на ней отображались все эти самые картинки и при выборе выделялись?
CrazyProgramer вне форума Ответить с цитированием
Старый 14.07.2008, 10:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот например так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ImgList;

type
  TForm1 = class(TForm)
    ImageList1: TImageList;
    procedure FormPaint(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var  a,b:integer;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var xo,yo,x,y,i:integer;
begin
 x:=0; y:=0;
 for i:=0 to ImageList1.Count-1 do begin
  ImageList1.Draw(Form1.Canvas,x,y,i);
  if (a>x)and(a<(x+64))and(b>y)and(b<y+64) then begin
   Canvas.Pen.Color:=clRed;
   Canvas.Brush.Style:=bsClear;
   Canvas.Pen.Width:=5;
   Canvas.Rectangle(x,y,x+64,y+64);
  end else begin
   Canvas.Pen.Color:=clNone;
   Canvas.Pen.Width:=0;
  end;
  xo:=x;yo:=y;
  if x+ImageList1.Width<Width then inc(x,64)
   else begin
    inc(y,64);x:=0;
   end;
 end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  a:=x;
  b:=y ;
  Repaint;
end;

end.
Здесь только мыша работает, но и клаву прикрутить не сложно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский текст в виде ??? ? ?? ????? www3 PHP 5 15.05.2008 14:30
Меню в виде дерева pu4koff JavaScript, Ajax 7 16.10.2007 11:24
Как представить в виде цикла? Борис2 Компоненты Delphi 9 30.09.2007 14:38