Консультация № 170696
22.07.2009, 16:42
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста,
есть ли в Delphi 7 Enterprise, компонент, с помощью которого
можно реализовать на форме меню с вкладками, что-то похожее на
панель с компонентами в среде Delphi. Если есть такое - подскажите пожалуйста как
работать с компонентом. Спасибо!

Обсуждение

давно
Студент
15716
139
22.07.2009, 17:07
общий
это ответ
Здравствуйте, Николай // Programmator .

Это вроде обычный TPageControl на вкладке Win32.
Для создания новой вкладки в дизайнере -> Правой кнопкой мыши на компоненте -> New Page
Для создания в Run-Time код в приложении

Приложение:
procedure TForm1.Button1Click(Sender: TObject);
var
tab : TTabSheet;
begin
tab:=TTabSheet.Create(Form1);
tab.PageControl:=PageControl1;
tab.Caption:='New';
end;
5
Неизвестный
22.07.2009, 17:48
общий
это ответ
Здравствуйте, Николай // Programmator .
Немного усовершенствовал ответ Александр Романов [Alexo]
Добавил динамическое создание кнопок.

uses
..., ComCtrls, Buttons;
...
public
procedure SpeedButtonClick(Sender: TObject);
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
tab : TTabSheet;
i : integer;
begin
tab:=TTabSheet.Create(Form1);
tab.PageControl:=PageControl1;
tab.Caption:='New';

for i:=0 to 4 do //количество кнопок на закладке
with TSpeedButton.Create(tab) do
begin
parent:=tab;//присваиваем родителя кнопке
left:=width*i;
PageControl1.Tag:=PageControl1.Tag+1;//количество кнопок увеличиваем на единицу
Name:='SpeedButton'+inttostr(PageControl1.Tag); //называем кнопку
caption:=inttostr(PageControl1.Tag);//надпись на кнопке
OnClick:=SpeedButtonClick;//присваиваем событие
end;
end;

//обработка нажатия на кнопку
procedure TForm1.SpeedButtonClick(Sender: TObject);
begin
if (Sender is TSpeedButton) then
form1.Caption:=TSpeedButton(Sender).Name;//получаем имя нажатой кнопки
end;
5
Форма ответа