0 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 17
1

Обращение к объектам, расположенным на MDIChild

14.01.2014, 17:20. Показов 1767. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На главной форме расположено меню. Средствами этого меню создается дочерняя форма. Но из этого же меню не могу обратиться к эдитам расположенным на дочерней форме.
Обращение к объектам, расположенным на MDIChild
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2014, 17:20
Ответы с готовыми решениями:

Обращение к компонетам, расположенным на GroupBox1
Добрый день! Подскажите а как обращаться к компонентам, расположенным на GroupBox1 ? Например на...

Обращение к функциям С++, расположенным в других файлах *.cpp
Я пишу ПО с пустого проекта всегда, но мне хочется научиться раскладывать функции по файлам *.cpp*....

Обращение к объектам
Подскажите пожалуйста. Вот создал шаблон в PyQt, сгенерировал код питон импортирую его в основной...

Обращение к объектам
Добрый вечер! Не пойму, как убедить Visual Studio Code воспринимать ${...} как обращению к объекту,...

4
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
14.01.2014, 17:25 2
Код-то покажешь?
0
0 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 17
14.01.2014, 18:18  [ТС] 3
В коде "Главной формы" в самом конце пытаюсь вывести ShowMessage с текстом из первого эдита из "Второй дочерней формы". largebtnPrintClick это кнопка на "Главной форме" с Caption "Экспорт в Excel".
В результате получаю выше указанную ошибку.

Такое ощущение будто для кнопки на "Главной форме" "Вторая дочерняя форма" остается не созданной.

Главная форма:
Обращение к объектам, расположенным на MDIChild

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
unit Unit_Main;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
  cxLookAndFeelPainters, dxRibbonSkins, dxBar, cxLocalization, dxRibbon, Unit_Forms,
  dxRibbonGallery, cxClasses, Vcl.Menus, cxCheckComboBox, cxCheckGroup,
  cxRadioGroup, cxCheckBox, cxBarEditItem, dxBarExtItems, A7Rep, Vcl.StdCtrls;
 
type
  TfrmMaim = class(TForm)
    dxBarManager1: TdxBarManager;
    dxRibbon1Tab1: TdxRibbonTab;
    dxRibbon1: TdxRibbon;
    dxRibbonDropDownGallery1: TdxRibbonDropDownGallery;
    TdxBarManagerСправочники: TdxBar;
    cxLocalizer1: TcxLocalizer;
    largebtnОрганизации: TdxBarLargeButton;
    RibbonTabFirms: TdxRibbonTab;
    TdxBarManagerОрганизации: TdxBar;
    largebtnЗакрыть: TdxBarLargeButton;
    largebtnInsert: TdxBarLargeButton;
    largebtnИзменить: TdxBarLargeButton;
    largebtnУдалить: TdxBarLargeButton;
    RibbonTabSoobshenie: TdxRibbonTab;
    TdxBarManagerСообщение: TdxBar;
    largebtnClose: TdxBarLargeButton;
    largebtnSave: TdxBarLargeButton;
    largebtnPrint: TdxBarLargeButton;
    largebtnExit: TdxBarLargeButton;
    dxBarButton1: TdxBarButton;
    dxBarCombo1: TdxBarCombo;
    dxRibbonGalleryItem1: TdxRibbonGalleryItem;
    CustomdxBarCombo1: TCustomdxBarCombo;
    dxBarSubItem1: TdxBarSubItem;
    dxBarListItem1: TdxBarListItem;
    dxBarContainerItem1: TdxBarContainerItem;
    dxBarStatic1: TdxBarStatic;
    dxBarToolbarsListItem1: TdxBarToolbarsListItem;
    cxBarEditItem1: TcxBarEditItem;
    cxBarEditItem2: TcxBarEditItem;
    cxBarEditItem3: TcxBarEditItem;
    checkFSS: TcxBarEditItem;
    checkPFR: TcxBarEditItem;
    TdxBarManagerЭкспорт: TdxBar;
    A7Rep1: TA7Rep;
    procedure largebtnОрганизацииClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure largebtnЗакрытьClick(Sender: TObject);
    procedure largebtnInsertClick(Sender: TObject);
    procedure largebtnCloseClick(Sender: TObject);
    procedure largebtnSaveClick(Sender: TObject);
    procedure largebtnУдалитьClick(Sender: TObject);
    procedure largebtnИзменитьClick(Sender: TObject);
    procedure largebtnExitClick(Sender: TObject);
    procedure largebtnPrintClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frmMaim: TfrmMaim;
 
implementation
 
{$R *.dfm}
 
uses Unit_Form_Soobshenie, Unit_DataModule;
 
procedure TfrmMaim.FormCreate(Sender: TObject);
begin
  RibbonTabFirms.Visible:= False; // делается НЕ видимой вкладка Организаций
  frmMaim.RibbonTabSoobshenie.Visible:= False; // делается НЕ видимой вкладка Сообщение
  frmMaim.largebtnSave.Enabled:= False; // кнопка Сохранить делается НЕ активной
end;
 
procedure TfrmMaim.largebtnCloseClick(Sender: TObject);
begin
  ActiveMDIChild.Close; // закрывается активная дочерняя форма
  DataModule1.qryСообщение.CancelUpdates;
  DataModule1.qryСообщение.Requery; // обновляем запрос
end;
 
procedure TfrmMaim.largebtnExitClick(Sender: TObject);
begin
  Close; // выход из программы
end;
 
procedure TfrmMaim.largebtnInsertClick(Sender: TObject);
begin
  TfrmFofmaSoobshenie.Create(Self).Show; // создается форма Сообщение
  ActiveMDIChild.WindowState:= wsMaximized; // форма разворачивается на всё окно
  RibbonTabFirms.Visible:= False; // делается НЕ видимой вкладка Организаций
  RibbonTabSoobshenie.Visible:= True; // делается видимой вкладка Сообщение
  RibbonTabSoobshenie.Active:= True; // делается активной вкладка Сообщение
  DataModule1.qryСообщение.Insert; // добавление новой записи
end;
 
procedure TfrmMaim.largebtnSaveClick(Sender: TObject);
begin
  DataModule1.qryСообщение.Post; // сохраняем запись
  largebtnSave.Enabled:=False; // кнопка Сохранить делается НЕ активной
end;
 
procedure TfrmMaim.largebtnЗакрытьClick(Sender: TObject);
begin
  ActiveMDIChild.Close; // закрывается активная дочерняя форма
  DataModule1.qryСообщение.Requery; // обновляем запрос
end;
 
procedure TfrmMaim.largebtnИзменитьClick(Sender: TObject);
begin
  TfrmFofmaSoobshenie.Create(Self).Show; // создается форма Сообщение
  ActiveMDIChild.WindowState:= wsMaximized; // форма разворачивается на всё окно
  RibbonTabFirms.Visible:= False; // делается НЕ видимой вкладка Организаций
  RibbonTabSoobshenie.Visible:= True; // делается видимой вкладка Сообщение
  RibbonTabSoobshenie.Active:= True; // делается активной вкладка Сообщение
end;
 
procedure TfrmMaim.largebtnОрганизацииClick(Sender: TObject);
begin
  TfrmForms.Create(Self).Show; // создается форма Организаций
  largebtnОрганизации.Enabled:=False; // делается не активной кнопка создания формы
  ActiveMDIChild.WindowState:= wsMaximized; // форма разворачивается на всё окно
  RibbonTabFirms.Visible:= True; // делается видимой вкладка Организаций
  RibbonTabFirms.Active:= True; // делается активной вкладка Организаций
  DataModule1.qryСообщение.Requery; // обновляем запрос
end;
 
procedure TfrmMaim.largebtnУдалитьClick(Sender: TObject);
begin
  if MessageDlg('Вы уверены, что хотите удалить запись ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    DataModule1.qryСообщение.Delete; // удаляем запись
  DataModule1.qryСообщение.Requery; // обновляем запрос
end;
 
procedure TfrmMaim.largebtnPrintClick(Sender: TObject);
begin
    ShowMessage(frmFofmaSoobshenie.edit_Firm_Name.Text);
end;
 
end.
Первая дочерняя форма:
Обращение к объектам, расположенным на MDIChild

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
unit Unit_Forms;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, DBGridEhGrouping,
  Vcl.ExtCtrls, GridsEh, DBGridEh;
 
type
  TfrmForms = class(TForm)
    gridФирмы: TDBGridEh;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure gridФирмыDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frmForms: TfrmForms;
 
implementation
 
{$R *.dfm}
 
uses Unit_Main, Unit_DataModule;
 
procedure TfrmForms.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree; //уничтожается форма
  frmMaim.largebtnОрганизации.Enabled:= True; //делается активной кнопка создания формы
  frmMaim.RibbonTabFirms.Visible:= False; // делается НЕ видимой вкладка Организаций
end;
 
procedure TfrmForms.gridФирмыDblClick(Sender: TObject);
begin
  frmMaim.largebtnИзменить.Click;
end;
 
end.[/CODE][/SPOILER]
 
Вторая дочерняя форма:
[ATTACH]354070[/ATTACH]
[SPOILER][CODE]unit Unit_Form_Soobshenie;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, DBCtrlsEh,
  Vcl.DBCtrls, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
  cxContainer, cxEdit, cxTextEdit, cxDBEdit;
 
type
  TfrmFofmaSoobshenie = class(TForm)
    ScrollBox1: TScrollBox;
    grp1: TGroupBox;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    edit_Firm_Name: TDBEditEh;
    ComboBoxEh_Фирма_Сообщает: TDBComboBoxEh;
    ComboBox_Фирма_Тип: TDBComboBoxEh;
    grp2: TGroupBox;
    grp3: TGroupBox;
    grp4: TGroupBox;
    lbl5: TLabel;
    edit_ФСС_Наименование: TDBEditEh;
    grp5: TGroupBox;
    lbl6: TLabel;
    edit_ПФР_Наименование: TDBEditEh;
    grp6: TGroupBox;
    edit_ФСС_ПочтовыйАдрес: TDBEditEh;
    lbl7: TLabel;
    edit_Банк_ПолноеНаименование: TDBEditEh;
    edit_Фирма_РасчетныйНомер: TDBEditEh;
    lbl4: TLabel;
    lbl8: TLabel;
    lbl9: TLabel;
    datatime_Фирма_Счет: TDBDateTimeEditEh;
    ComboBoxEh_Фирма_ТипЛица: TDBComboBoxEh;
    edit_Фирма_ИННРуководителя: TDBEditEh;
    edit_Фирма_Телефон: TDBEditEh;
    edit_Фирама_Email: TDBEditEh;
    datatime_Фирма_Сообщение: TDBDateTimeEditEh;
    lbl10: TLabel;
    lbl11: TLabel;
    lbl12: TLabel;
    lbl13: TLabel;
    lbl14: TLabel;
    lbl16: TLabel;
    lbl17: TLabel;
    lbl18: TLabel;
    lbl19: TLabel;
    memo_Фирма_Адрес: TDBMemo;
    lbl15: TLabel;
    lbl20: TLabel;
    lbl21: TLabel;
    lbl22: TLabel;
    lbl23: TLabel;
    lbl24: TLabel;
    lbl25: TLabel;
    edit_Фирма_ИНН: TDBEditEh;
    edit_Фирма_КПП: TDBEditEh;
    edit_Фирма_ОКАТО: TDBEditEh;
    edit_Фирма_ОГРН: TDBEditEh;
    edit_Фирма_НомерФСС: TDBEditEh;
    edit_Фирма_НомерПФР: TDBEditEh;
    edit_Фирма_КодНалОргана: TDBEditEh;
    edit_Фирма_Руководитель: TDBEditEh;
    edit_Фирма_Должность: TDBEditEh;
    edit_Фирма_Бух: TDBEditEh;
    lbl26: TLabel;
    edit_Банк_БИК: TDBEditEh;
    lbl27: TLabel;
    lbl28: TLabel;
    lbl29: TLabel;
    lbl30: TLabel;
    lbl31: TLabel;
    lbl32: TLabel;
    lbl33: TLabel;
    lbl34: TLabel;
    lbl35: TLabel;
    lbl36: TLabel;
    lbl37: TLabel;
    lbl38: TLabel;
    lbl39: TLabel;
    lbl40: TLabel;
    lbl41: TLabel;
    lbl42: TLabel;
    lbl43: TLabel;
    lbl44: TLabel;
    lbl45: TLabel;
    lbl47: TLabel;
    ComboBoxEh_Банк_Регион: TDBComboBoxEh;
    edit_Банк_СокрИмя: TDBEditEh;
    edit_Банк_ИНН: TDBEditEh;
    edit_Банк_КПП: TDBEditEh;
    edit_Банк_ОГРН: TDBEditEh;
    edit_Банк_Корр: TDBEditEh;
    edit_Банк_Индекс: TDBEditEh;
    edit_Банк_Район: TDBEditEh;
    edit_Банк_Город: TDBEditEh;
    edit_Банк_НасПункт: TDBEditEh;
    edit_Банк_Улица: TDBEditEh;
    edit_Банк_Дом: TDBEditEh;
    edit_Банк_Корпус: TDBEditEh;
    edit_Банк_Офис: TDBEditEh;
    memo_Банк_АдресБанка: TDBMemo;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure edit_Firm_NameKeyPress(Sender: TObject; var Key: Char);
    procedure ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    procedure ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frmFofmaSoobshenie: TfrmFofmaSoobshenie;
 
implementation
 
{$R *.dfm}
 
uses Unit_Main, Unit_DataModule;
 
procedure TfrmFofmaSoobshenie.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:= caFree; //уничтожается форма
  frmMaim.RibbonTabFirms.Visible:= True; // делается видимой вкладка Организаций
  frmMaim.RibbonTabSoobshenie.Visible:= False; // делается НЕ видимой вкладка Сообщение
end;
 
    // прикручиваем скролинг к мышке
procedure TfrmFofmaSoobshenie.ScrollBox1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  Scrollbox1.VertScrollBar.Position:= Scrollbox1.VertScrollBar.Position+15; // скрол в низ
end;
 
procedure TfrmFofmaSoobshenie.ScrollBox1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  Scrollbox1.VertScrollBar.Position:= Scrollbox1.VertScrollBar.Position-15; // скрол вверх
end;
 
procedure TfrmFofmaSoobshenie.edit_Firm_NameKeyPress(Sender: TObject;
  var Key: Char);
begin
  frmMaim.largebtnSave.Enabled:= True  // кнопка Сохранить делается НЕ активной
end;
 
end.
Миниатюры
Обращение к объектам, расположенным на MDIChild  
0
пофигист широкого профиля
4705 / 3141 / 857
Регистрация: 15.07.2013
Сообщений: 18,113
14.01.2014, 19:52 4
Цитата Сообщение от serg1980serg Посмотреть сообщение
ShowMessage(frmFofmaSoobshenie.edit_Firm_Name.Text);
А с какого перепуга переменная frmFofmaSoobshenie должна содержать ссылку на форму созданную вот так:
Цитата Сообщение от serg1980serg Посмотреть сообщение
TfrmFofmaSoobshenie.Create(Self).Show; // создается форма Сообщение
???
0
0 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 17
14.01.2014, 20:27  [ТС] 5
Вопрос закрыт:

Строчку:
Delphi
1
TfrmFofmaSoobshenie.Create(Self).Show; // создается форма Сообщение
Заменил на:
Delphi
1
2
frmFofmaSoobshenie:=TfrmFofmaSoobshenie.Create(Self); // создается форма Сообщение
frmFofmaSoobshenie.Show; // открывается форма Сообщение
0
14.01.2014, 20:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2014, 20:27
Помогаю со студенческими работами здесь

Обращение к объектам в цикле
Помогите с данным кодом - цель чтобы при наведении курсора на объект выдавала true, а кол-во...

Обращение к HTML объектам
Ситуация такая. Есть HTML объект <span id=..></span> В этот спан php файл выводит много чексбоксов...

Обращение к объектам формы
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {...

Обращение к объектам класса
Привет, всем. Пожалуйста, объясните в чем ошибка: TestPr.javapublic class TestPr { /** ...

Обращение к объектам системы
Всем привет. Как написать программу которая бы обращалась к определенным объектам в системе,т.е....

Обращение ко всем объектам
Если на форме есть тысячи Лэйблов, а возникла такая необходимость поменять шрифт или цвет или...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru