Показать сообщение отдельно
  #3  
Старый 01.09.2012, 23:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от angvelem
Изучаем свойство Tag компонентов + ComponentCount.

Вообще-то, для этого лучше кнопки создавать динамически.

Код:
var // или в классе
  ButtonMatrix : Array [1..6,1..21] Of TButton;

procedure TForm1.FormCreate(Sender : TObject);
var
  I, J : Integer;
begin
  For I := 1 To 6 Do
    For J := 1 To 21 Do
      Begin
        ButtonMatrix[I,J] := TButton.Create(Self);
        ButtonMatrix[I,J].Top := (I-1) * 24;
        ButtonMatrix[I,J].Left := (J-1) * 32;
        ButtonMatrix[I,J].Width := 28;
        ButtonMatrix[I,J].Height :=16;
        ButtonMatrix[I,J].Caption := Format('%d %d',[I,J]);
        ButtonMatrix[I,J].Tag := I*1000 + J; // Комбинированный идентификатор
        ButtonMatrix[I,J].OnClick := MyClick;
      End;
end;

procedure TForm1.MyClick(Sender : TObject);
var
  I, J : Integer;
begin
  If (Sender Is TButton) Then
    If (Sender As TButton).Tag > 0 Then
      Begin
        I := (Sender As TButton).Tag div 1000;
        J := (Sender As TButton).Tag mod 1000;
        ButtonMatrix[I,J].Caption := Format('%d %d *',[I,J]);
      End;
end;

При нажатии кнопки в ее заголовок добавляется '*'.
Ответить с цитированием