Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Динамические создание объектов в TabbedNotebook 2

Delphi , Компоненты и Классы , Вкладки и Страницы

Динамические создание объектов в TabbedNotebook 2

Как мне поместить кнопку (во время выполнения программы) на страницу TabbedNoteBook?


procedure TForm1.Button1Click(Sender: TObject);
var
  Button2:Tbutton;
begin
  button2:=tbutton.create(self);
  button2.parent:=TabbedNotebook1.Pages.Object[0] as TTabPage;
  button2.setbounds(30,30,60,30);
end;

Here's the translation of the content into Russian:

Что за отличный вопрос!

Код, который вы предоставили, почти корректен, но есть маленькая проблема с тем, как вы создаете и позиционируете новый кнопку.

Вот что происходит:

  1. Вы создаете новую инстанцию TButton с помощью метода Create.
  2. Вы устанавливаете родителя кнопки в первую страницу TabbedNotebook.
  3. Вы устанавливаете границы (позицию и размер) кнопки с помощью метода SetBounds.

Проблема заключается в том, что когда вы вызываете SetBounds, она устанавливает позицию и размер кнопки относительно ее родительского контрола, который в этом случае - страница внутри TabbedNotebook. Однако, поскольку страница сама не имеет фиксированной ширины или высоты (она управляется TabbedNotebook), установка границ в этом виде не будет работать так, как ожидалось.

Чтобы исправить это, вы можете использовать свойства ClientWidth и ClientHeight страницы для расчета актуальной позиции, где вы хотите разместить кнопку. Вот обновленная версия вашего кода:

procedure TForm1.Button1Click(Sender: TObject);
var
  Button2: TButton;
begin
  Button2 := TButton.Create(self);
  Button2.Parent := TabbedNotebook1.Pages[0] as TTabPage;

   // Получаем клиентскую ширину и высоту страницы
  var PageWidth, PageHeight: Integer;
  PageWidth := (TabbedNotebook1.Pages[0] as TTabPage).ClientWidth;
  PageHeight := (TabbedNotebook1.Pages[0] as TTabPage).ClientHeight;

   // Устанавливаем позицию и размер кнопки
  Button2.SetBounds(30, 30, 60, 30);
end;

В этом обновленном коде мы сначала получаем клиентскую ширину и высоту страницы с помощью свойств ClientWidth и ClientHeight. Затем, когда устанавливаем границы кнопки, мы используем эти значения для расчета актуальной позиции, где мы хотим разместить кнопку.

Обратите внимание, что вы можете изменять значения, использованные в методе SetBounds (например, 30, 30, 60 и 30), чтобы изменить позицию и размер кнопки по мере необходимости.

В статье рассматривается создание объектов динамически на страницах TabbedNoteBook 2, а также пример кода на Delphi, который демонстрирует добавление кнопки на страницу при выполнении программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Вкладки и Страницы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-30 17:44:03/0.0036399364471436/0