Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание диначмического компонента на, Динамически созданном компоненете? 
V
    Опции темы
ivan219
  Дата 30.9.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Уменя на форме есть PageControl и вкладка TabSheet

Создаю кнопку на TabSheet
Код

procedure TForm1.ButtonClick(Sender: TObject);
var
   S:String;
   Button1: TButton;
begin
 S:=FloatToStr(I1);
 Button1:=TButton.Create(Self);
 Button1.Parent:= Form1.TabSheet;
 Button1.Caption := 'Button'+S;
 Button1.Name:='Button'+S;
 Button1.Top:=I;
 Button1.Left:=I;
// Button1.Visible:=True;
 //Button1.OnClick:= Calc.SomeMenuItemClick;
 Inc(I1);
 Inc(I,10);
end;


А как создать кнопку на TabSheet если TabSheet на форме нет smile 
PM MAIL ICQ   Вверх
Romikgy
Дата 30.9.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146





Цитата(ivan219 @  30.9.2006,  12:08 Найти цитируемый пост)
А как создать кнопку на TabSheet если TabSheet на форме нет

имхо разницы нет где находится табшит главное 
Цитата(ivan219 @  30.9.2006,  12:08 Найти цитируемый пост)
Button1.Parent:= Form1.TabSheet;

передай кто будет родителем


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ivan219
  Дата 30.9.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Не разница есть так неполучается я пробовал тамже TabSheet не существует глый PageControl и компилятор выдаёт ошибку.

Вот рабочий код.
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button: TButton;
    XPManifest: TXPManifest;
    PageControl: TPageControl;
    procedure ButtonClick(Sender: TObject);
    procedure SomeMenuItemClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  I1:Integer;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SomeMenuItemClick(Sender: TObject);
begin
 Close;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var
   S:String;
   Button: TButton;
   TabSheet: TTabSheet;
   LabeledEdit: TLabeledEdit;
begin
 S:=FloatToStr(I1);

 //Создаём TabSheet
 TabSheet:=TTabSheet.Create(Self);
 TabSheet.Caption:='Tab'+S;
 TabSheet.Name:='Tab'+S;

 //Пирсваеваем TabSheet PageControl
 TabSheet.PageControl:=PageControl;

 //Создаём кнопку
 Button:=TButton.Create(Self);
 Button.Caption := 'Button'+S;
 Button.Name:='Button'+S;
 Button.OnClick:= Form1.SomeMenuItemClick;

 //Сздаём LabeledEdit
 LabeledEdit:=TLabeledEdit.Create(Self);
 LabeledEdit.Name:='LabeledEdit'+S;
 LabeledEdit.Text := '';
 LabeledEdit.Top:=30;

//Присваеваем кнопку TabSheet
 TabSheet.InsertControl(Button);

//Присваеваем LabeledEdit TabSheet
 TabSheet.InsertControl(LabeledEdit);
 Inc(I1);
end;
end.




Это сообщение отредактировал(а) ivan219 - 30.9.2006, 14:23
PM MAIL ICQ   Вверх
Zero
Дата 30.9.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(ivan219 @  30.9.2006,  14:50 Найти цитируемый пост)
Вот рабочий код.

Это вопрос, или ты сам разобрался?
Если вопрос, то откуда ты воткнул page control?
PM MAIL ICQ   Вверх
ivan219
  Дата 30.9.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Это рабочий код.
PageControl уже на форме хотя можно и его попробовать создать smile 

Прблема с LabeledEdit когда его создаёш динамически
Код

 LabeledEdit:=TLabeledEdit.Create(Self);
 LabeledEdit.Name:='LabeledEdit'+S;
 LabeledEdit.Text := '';
 LabeledEdit.Top:=30;


То его Label неотображается даже поле добавления этой строки
Код

LabeledEdit.EditLabel.Caption:='adfdf';

Но при этом всё компилится без ошибок.


Кто знает как решить эту проблему smile 

Это сообщение отредактировал(а) ivan219 - 30.9.2006, 14:45
PM MAIL ICQ   Вверх
ivan219
Дата 30.9.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



А вот и PageControl создан динамически
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button: TButton;
    XPManifest: TXPManifest;
    procedure ButtonClick(Sender: TObject);
    procedure SomeMenuItemClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  PageControl:TPageControl;
  I1:Integer;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SomeMenuItemClick(Sender: TObject);
begin
 Close;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var
   S:String;
   TabSheet: TTabSheet;
   Button: TButton;
   LabeledEdit: TLabeledEdit;
begin
 S:=FloatToStr(I1);

 //Создаём TabSheet
 TabSheet:=TTabSheet.Create(Self);
 TabSheet.Caption:='Tab'+S;
 TabSheet.Name:='Tab'+S;
 //Пирсваеваем TabSheet PageControl
 TabSheet.PageControl:=PageControl;

 //Создаём кнопку
 Button:=TButton.Create(Self);
 Button.Caption := 'Button'+S;
 Button.Name:='Button'+S;
 Button.OnClick:= Form1.SomeMenuItemClick;
 //Присваеваем кнопку TabSheet
 TabSheet.InsertControl(Button);

 //Сздаём LabeledEdit
 LabeledEdit:=TLabeledEdit.Create(Self);
 LabeledEdit.Name:='LabeledEdit'+S;
 LabeledEdit.Text := '';
 LabeledEdit.Top:=50;
 LabeledEdit.EditLabel.Caption:='adfdf';
 //Присваеваем LabeledEdit TabSheet
 TabSheet.InsertControl(LabeledEdit);

 Inc(I1);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 //Создаём PageControl
 PageControl:=TPageControl.Create(Self);
 PageControl.Name:='PageControl';
 PageControl.Parent:=Form1;
end;
end.


Добавлено @ 15:07 
А как можно определить создан компонент или нет smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.