Создать массив кнопок во время выполненияDelphi , Компоненты и Классы , RTTIСоздать массив кнопок во время выполнения
Оформил: DeeCo private {...} procedure RunTimeButtonClick(Sender: TObject); end; {...} var Form1: TForm; {Declare an Array of TButtons} RunTimeButtons: array[1..10] of TButton; {...} implementation {...} procedure TForm1.RunTimeButtonClick(Sender: TObject); begin {Show the Button Nummer that was clicked} ShowMessage('Button' + IntToStr((Sender as TButton).Tag) + ' clicked!'); end; procedure TForm1.Button13Click(Sender: TObject); var i: Byte; begin for i := 1 to 10 do begin {Create the buttons} RunTimeButtons[i] := TButton.Create(Self); with RunTimeButtons[i] do begin Parent := Form1; Caption := 'Button ' + IntToStr(i); Top := i * Height; Tag := i; {Assign a OnClick handler} OnClick := RunTimeButtonClick; Visible := True; end; end; end; Программный код на Delphi создает массив TButton-компонентов в runtime. Вот подробное описание того, что код делает:
Результатом является создание 10 кнопок в runtime с различными заголовками и позициями, каждая из которых имеет обработчик события, который будет вызван при клике по кнопке. Когда кнопка кликается, процедура Альтернативное решение: Вместо создания кнопок в runtime и присваивания их массиву, можно создавать их динамически с помощью цикла и хранить в списке или коллекции. Этоapproach будет упрощать управление кнопками и их свойствами. Например:
В этом примере мы создаем список, называемый В статье описывается создание массива кнопок в динамическом режиме с помощью языка программирования Delphi, где каждая кнопка имеет уникальный номер и на клик можно отображать информацию о номере нажатой кнопки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |