Показать сообщение отдельно
  #4  
Старый 21.11.2010, 09:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    FImage: array [0..4, 0..4] of TImage;
    procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  AImage: TImage;
  i, j: Integer;
begin
  for i:=0 to 3 do
    for j:=0 to 3 do
    begin
      AImage:=TImage.Create(Self);
      AImage.Parent:=Self;
      AImage.Width:=20;
      AImage.Height:=20;
      AImage.Left:=i*AImage.Width;
      AImage.Top:=j*AImage.Height;
      AImage.OnMouseDown:=ImageMouseDown;
      // сохраним индексы массива картинки
      AImage.Tag:=MakeWord(i, j);
      AImage.Canvas.Rectangle(0, 0, AImage.Width, AImage.Height);
      FImage[i, j]:=AImage;
    end;
end;

procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  AImage: TImage;
  i, j: Integer;
begin
  AImage:=TImage(Sender);
  // i, j - содержат индексы картинки в массиве
  i:=HIBYTE(AImage.Tag);
  j:=LOBYTE(AImage.Tag);
  Caption:='i, j = '+IntToStr(i)+', '+IntToStr(j);
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием