Добавление элементов управления в TTabbedNotebook и TNotebook
Добавление элементов управления в TTabbedNotebook и TNotebook
Я несколько раз видел в конференциях вопросы типа "как мне добавить элементы управления в TTabbedNotebook или TNotebook во время выполнения программы?". Теперь, когда у меня выдалось несколько свободных минут, я попытаюсь осветить этот вопрос как можно подробнее:
TTabbedNotebook
Добавление элементов управления в TTabbedNotebook во время проектирования – красивая и простая задача. Все, что Вам нужно – это установить свойство PageIndex или ActivePage на необходимую страницу и начать заполнять ее элементами управления.
Добавление элементов управление во время выполнения приложения также очень просто. Тем не менее, в прилагаемой документации по Delphi вы не найдете рецептов типа Что-и-Как. Видимо для того, чтобы окончательно запутать начинающих программистов, фирма-изготовитель даже не удосужилась включить исходный код TTabbedNotebook в VCL-библиотеку. Таким образом, TTabbedNotebook остается для некоторых тайной за семью печатями. К счастью, я имею некоторый опыт, коим и хочу поделиться.
Первым шагом к раскрытию тайны послужит просмотр файла DELPHIDOCTABNOTBK.INT, интерфейсной секции модуля TABNOTBK.PAS, в котором определен класс TTabbedNotebook. Беглый просмотр позволяет обнаружить класс TTabPage, описанный как хранилище элементов управления отдельной страницы TTabbedNotebook.
Вторым шагом в исследовании TTabbedNotebook может стать факт наличия свойством Pages типа TStrings. В связи с этим отметим, что Delphi-классы TStrings и TStringList соорганизуются с двумя свойствами: Strings и Objects. Другими словами, для каждой строки в TStrings есть указатель на соответствующий Objects. Во многих случаях этот дополнительный указатель игнорируется, нам же он очень пригодится.
После небольшого эксперимента выясняем, что свойство Objects указывает на нашу копию TTabPage и ссылается на имя страницы в свойстве Strings. Блестяще! Всегда полезно знать что ищешь. Теперь посмотрим что мы можем сделать:
{ Данная процедура добавляет кнопку в случайной позиции на }
{ текущей странице данного TTabbedNotebook. }
procedure AddButton(tabNotebook : TTabbedNotebook);
var
tabpage: TTabPage;
button: TButton;
begin
with tabNotebook do tabpage:= TTabPage(Pages.Objects[PageIndex]);
button:= TButton.Create(tabpage);
try
with button do begin
Parent:= tabpage;
Left:= Random(tabpage.ClientWidth – Width);
Top:= Random(tabpage.ClientHeight – Height);
end;
except
button.Free;
end;
end;
TNotebook
Операция по заполнению элементами управления компонента TNotebook почти такая же, как и в TTabbedNotebook – разница лишь в типе класса – TPage вместо TTabPage. Тем не менее, если вы заглянете в DELPHIDOCEXTCTRLS.INT, декларацию класса TPage вы там не найдете. По неизвестной причине Borland не включил определение TPage и в DOC-файлы, поставляемые с Delphi. Декларация TPage в EXTCTRLS.PAS (можно найти в библиотеке VCL-исходников), правда, расположена в интерфейсной части модуля. Мы восполним пропущенную информацию о классе TPage:
TPage = class(TCustomControl)
private
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
protected
procedure ReadState(Reader: TReader); override;
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
published
property Caption;
property Height stored False;
property TabOrder stored False;
property Visible stored False;
property Width stored False;
end;
Теперь, по аналогии с вышеприведенной процедурой, попробуем добавить кнопку на TNotebook. Все, что мы должны сделать – заменить "TTabbedNotebook" на "TNotebook" и "TTabPage" на "TPage". Вот что должно получиться:
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Добавление и удаление элементов Web-страницы
Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в
Создание элементов управления
Создание элементов управления Большинство элементов управления HTML создают посредством одинарного тега <INPUT>. Какой именно элемент управления следует создать, указывают с помощью необязательного атрибута TYPE этого тега. Некоторые элементы управления, такие как
События элементов управления
События элементов управления Специфические события, поддерживаемые элементами управления, перечислены в табл. 20.1. Их немного. Элементы управления также поддерживают события dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover и mouseup, описанные в табл.
Добавление и удаление элементов Web-страницы
Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в
События элементов управления
События элементов управления Специфические события, поддерживаемые элементами управления, перечислены в табл. 20.1. Их немного. Элементы управления также поддерживают события dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover и mouseup, описанные в табл.
Добавление в проект элементов и редактирование их свойств
Добавление в проект элементов и редактирование их свойств С помощью панели инструментов вкладки Building (Строение) можно вносить в проект здания недостающие элементы: окна, двери, лестницы и др. Кроме того, можно редактировать проект в объемном 3D-виде, что очень наглядно.
Добавление элементов управления из панели инструментов Toolbox
Добавление элементов управления из панели инструментов Toolbox Теперь заготовка формы на экране, и можно добавлять в нее элементы управления - всякие разные штучки в форме, с помощью которых взаимодействуют люди. Элементы управления берутся из панели элементов управления
Выравнивание элементов управления
Выравнивание элементов управления Даже при включенной сетке довольно часто оказывается, что элементы управления, которые должны были бы находиться на одной линии, на самом деле располагаются зигзагообразно.Вместо того чтобы исправлять это вручную, воспользуйтесь
Добавление новых элементов в панель элементов управления
Добавление новых элементов в панель элементов управления Чтобы получить возможность использовать элемент управления ActiveX, выполните следующее.1. Установите программное обеспечение элемента управления на жесткий диск.Мне кажется, это имеет смысл.2. Зарегистрируйте
Разработка элементов управления
Разработка элементов управления Microsoft не просто разрешает сторонним производителям создавать элементы управления ActiveX - она призывает к этому. В стандартную поставку Visual Basic 5 и 6 входят средства, позволяющие создавать пользовательские элементы управления. Только знайте,
Добавление и удаление элементов таблицы
Добавление и удаление элементов таблицы При редактировании таблицы иногда бывает необходимо добавлять в нее дополнительные элементы – строки или столбцы. Для этого выделите такое количество строк или столбцов, какое нужно добавить. Затем перейдите на вкладку Работа с
Добавление элементов управления в форму вручную
Добавление элементов управления в форму вручную Независимо от того, какой именно элемент управления вы выбираете для размещения в форме, последовательность шагов, которые при этом выполняются, оказывается одной и той же. Во-первых, вы должны определить члены-переменные,
Добавление элементов управления в форму в Visual Studio 2005
Добавление элементов управления в форму в Visual Studio 2005 Теперь, когда вы понимаете суть процесса добавления элементов управления в форму, давайте посмотрим, как Visual Studio 2005 может автоматизировать этот процесс. Создайте новый проект Windows Application, выбрав дня него произвольное
Природа Web-элементов управления
Природа Web-элементов управления Возможно, самым большим преимуществом ASP.NET является возможность компоновки пользовательского интерфейса страниц с помощью типов, определенных в пространстве имен System.Web.UI.WebControls. Соответствующие этим типам элементы управления (для
Динамическое добавление (и удаление) элементов управления
Динамическое добавление (и удаление) элементов управления Но что делать, если нужно изменить содержимое Panel в среде выполнения? Соответствующий процесс должен показаться вам очень знакомым, если вы внимательно прочитали материал книги, посвященный работе с Windows Forms.
Категории Web-элементов управления ASP.NET
Категории Web-элементов управления ASP.NET Типы в System.Web.UI.WebControls можно разбить на несколько больших категорий.• Простые элементы управления• Элементы управления с расширенными возможностями• Элементы управления для работы с источниками данных• Элементы управления для