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

Заранее описываешь процедуру соотв. типа. Далее, созданному компоненту присваиваешь эту процедуру. Ну а смещение делается через сохранение координат последнего созданного компонента. Пример:
Код:
type
  TForm1 = class(TForm)
  ...
    procedure RunTimeButtonClick(Sender : TObject);
  end;

procedure TForm1.RunTimeButtonClick(Sender : TObject);
begin
  ShowMessage('Run-time event handler.');
end;

procedure TForm1.Button1Click(Sender : TObject);
var
  I : Integer;
  X, Y : Integer;
  RTButton : TButton;
begin
  X := 0;
  Y := 0;
  For I := 0 To 9 Do
    Begin
      RTButton := TButton.Create(Self);
      RTButton.Caption := 'Button ' + IntToStr(I);
      RTButton.OnClick := RunTimeButtonClick;
      RTButton.Top := Y;
      RTButton.Left := X;
      X := X + RTButton.Width;
      Y := Y + RTButton.Height;
    End;
end;
Ответить с цитированием