С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 5

Динамическое создание компонентов

01.11.2010, 14:50. Показов 2965. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно создать 2 идентичные формы в режиме design-time run-time, проблемы со вторым, вроде описываю все правильно, форма run-time получается пустой

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
unit UnitMain;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DesignTimeFormUnit, RunTimeFormUnit;
 
type
  TMainForm = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  MainForm: TMainForm; DesignTimeForm: TDesignTimeForm;
 
implementation
 
{$R *.dfm}
 
procedure TMainForm.Button1Click(Sender: TObject);
begin
DesignTimeForm:=TDesignTimeForm.Create(Self);
DesignTimeForm.Show;
 
end;
 
procedure TMainForm.Button2Click(Sender: TObject);
 
begin
RunTimeForm:=TRunTimeForm.Create(Self);
RunTimeForm.Show;
end;
 
end.
 
форма run-time:cry:
unit RunTimeFormUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Buttons;
 
type
  TRunTimeForm = class(TForm)
    procedure FormCreate(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  RunTimeForm: TRunTimeForm;
implementation
 
{$R *.dfm}
procedure TRunTimeForm.FormCreate(Sender: TObject);
 var  New:TButton;
begin
New:=TButton.Create(RunTimeForm);
 New.Parent:=RunTimeForm;
New.Top:=20;
New.Width:=20;
New.Left:=20;
 New.Height:=10;
 New.Name:='Button';
New.Show;
 New.Free;
 New:=nil;
 
end;
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2010, 14:50
Ответы с готовыми решениями:

Динамическое создание компонентов
Вот хочу сделать что то похожие на pagecontrol. procedure TForm1.SpeedButton1Click(Sender: TObject); var // pages: TPanel; Pages:...

Динамическое создание компонентов.
Если я создаю динамически компоненты, например IdHttp var Http:array of TIdHttp; i:Integer; ... for i:=1 to 5 do begin ...

Динамическое создание компонентов
напишите прогу для динамического создания button

9
 Аватар для Sanprof
96 / 96 / 16
Регистрация: 28.01.2008
Сообщений: 426
01.11.2010, 15:01
ну так и наследуйте вашу копию от TMainForm
0
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 5
01.11.2010, 15:13  [ТС]
разве тут нужно что-то наследовать? я не понимаю(
0
 Аватар для Sanprof
96 / 96 / 16
Регистрация: 28.01.2008
Сообщений: 426
01.11.2010, 15:18
попробуйте так
Delphi
1
2
3
4
5
6
7
8
9
var   MainForm: TMainForm; 
  RunTimeForm: TMainForm;{<<<<-------}   
implementation   
{$R *.dfm}   
procedure TMainForm.Button1Click(Sender: TObject); 
begin    
  RunTimeForm := TMainForm.Create(Self); 
  RunTimeForm.Show; 
 end;






0
23 / 23 / 3
Регистрация: 27.07.2010
Сообщений: 71
01.11.2010, 15:18
А что такое
Delphi
1
2
3
New.Show;
New.Free;
New:=nil;
Вы ж кнопку после создания сразу убиваете...
0
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 5
01.11.2010, 15:27  [ТС]
такой способ не работает, ошибка [Error] UnitMain.pas(37): Incompatible types: 'TMainForm' and 'TRunTimeForm'
0
23 / 23 / 3
Регистрация: 27.07.2010
Сообщений: 71
01.11.2010, 15:37
Цитата Сообщение от Shnu Посмотреть сообщение
такой способ не работает, ошибка [Error] UnitMain.pas(37): Incompatible types: 'TMainForm' and 'TRunTimeForm'
Я ж говорю, нужно убрать из кода
Delphi
1
2
3
New.Show;
New.Free;
New:=nil;
Все остальное оставить как было. Должно работать.
0
 Аватар для Sanprof
96 / 96 / 16
Регистрация: 28.01.2008
Сообщений: 426
01.11.2010, 15:51
Цитата Сообщение от Shnu Посмотреть сообщение
такой способ не работает, ошибка [Error] UnitMain.pas(37): Incompatible types: 'TMainForm' and 'TRunTimeForm'
Я там подправил вместо RunTimeForm := TRunTimeForm.Create(Self) нужно RunTimeForm := TMainForm.Create(Self);
У меня работает даже каскадно - из одной создаю другую, из другой - третью, из третьей и тд.
0
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 5
01.11.2010, 16:30  [ТС]
Sanprof, в таком варианте при нажатии кнопки run-time, снова создается главная форма
0
 Аватар для Sanprof
96 / 96 / 16
Регистрация: 28.01.2008
Сообщений: 426
02.11.2010, 13:35
Цитата Сообщение от Shnu Посмотреть сообщение
нужно создать 2 идентичные формы
разве вопрос был не в этом???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2010, 13:35
Помогаю со студенческими работами здесь

Динамическое создание компонентов
Доброго времени суток, Возникла трудность взаимодействии с динамически созданными компонентами. На данный момент стоит следующая...

Динамическое Создание Компонентов
Помогите сделать игру в Delphi, в колледже на практике загрузили. Звучит так: Правила игры будут следующие: на форме появляется...

Динамическое создание компонентов
Возможно ли в Делфи создание компонентов через указатели? Если да, то можете показать пример?

Динамическое создание компонентов
unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList; ...

динамическое создание компонентов
Всем привет, вопрос состоит в следующем, нужно просто создать несколько компонентов Panel и указать им свойство Caption. Проблема в том,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru