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

Как обратиться к переменной MDIChild

05.08.2013, 23:36. Показов 1537. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
создал класс, объект которого является 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
unit NewForm;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls;
type
  TNForm = class(TForm)
    .....
  private
    { Private declarations }
  public
    { Public declarations }
     inf: shotstring;
  end;
 
var
  NForm: TNForm; 
 
implementation
 
uses Main, PrivateForm;
 
{$R *.dfm}
 
.....
 
end.
Пытаюсь обратиться к переменной INF при переборе MDIChild форм (в ней описание формы, т.к. Caption будет меняться), чтобы проверить не была ли создана такая ранее, НО вылетает ошибка: Undeclared identifier 'INF'.
Подскажите если сделать INF как и Caption свойством она будет видна? И как это сделать???
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TMain1.CreateForm(Cap, Name: String);
var
   i: word;
begin
     for i:= 0 to Main1.MDIChildCount - 1 do
     begin
          if (Main1.MDIChildren[i].inf = Cap) and (Main1.MDIChildren[i].Tag = 2) then exit;
     end;
     NForm:= TNForm.Create(Main1);
     NForm.Name:= Name + IntToStr(Main1.MDIChildCount);
     NForm.Caption:= Cap;
     NForm.Inf:=Cap;
     NForm.Tag:=2;
....
     NForm.Say.SetFocus;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2013, 23:36
Ответы с готовыми решениями:

Как обратиться к переменной, если после функции тебе дали строку, с именем переменной
Допустим есть Function Generation():String; там генерируется строка, с именем нашего обьекта(имя...

Можно ли из MDIchild формы открывать другую Mdichild форму?
Поясню. Mdichild(дочерняя форма) содержится в mdiform(родительская форма), из родительской формы...

В переменной типа string хранится имя переменной, к которой нужно обратиться. Как это сделать?
Пример: int speed = 10; string s = "speed"; MessageBox.Show(/*как-то обратиться к...

Как подставляя значение переменной к неполному имени переменной обратиться "куда надо"?
Салют, нужно в циклах обращаться к разным переменным ($b1-$b5), но так ручками писать муторно,...

4
пофигист широкого профиля
4705 / 3141 / 857
Регистрация: 15.07.2013
Сообщений: 18,113
06.08.2013, 00:16 2
Delphi
1
if (Main1.MDIChildren[i] is TNForm) and (TNForm(Main1.MDIChildren[i]).inf = Cap)
0
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 7
06.08.2013, 02:50  [ТС] 3
Спасибо, работает!!! А если можно скажите где посмотреть или может хоть чуть разъясните почему именно так??
Delphi
1
TNForm(Main1.MDIChildren[i]).inf = Cap
0
пофигист широкого профиля
4705 / 3141 / 857
Регистрация: 15.07.2013
Сообщений: 18,113
06.08.2013, 03:27 4
Цитата Сообщение от AiraKobra45 Посмотреть сообщение
может хоть чуть разъясните почему именно так?
Потому что свойство
Delphi
1
property MDIChildren[I: Integer]: TForm;
имеет тип TForm для того чтобы в нем можно было хранить любой класс наследник TForm. А какой конкретно наследник TForm хранится в MDIChildren[i] никому не известно. Свойство inf имеется у класса TNForm и для того чтобы нам получить к нему доступ мы выполняем приведение типа (type cast)
Delphi
1
TNForm(Main1.MDIChildren[i])
Добавлено через 5 минут
Цитата Сообщение от northener Посмотреть сообщение
никому не известно
Точнее сказать - компилятору не известно.
0
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 7
06.08.2013, 07:22  [ТС] 5
Теперь стало понятно.
0
06.08.2013, 07:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2013, 07:22
Помогаю со студенческими работами здесь

Как обратиться к переменной?
Есть сайт, на котором я хочу обратиться к переменной bet_sum Вот начало кода, где содержится эта...

Как обратиться к переменной в цикле?
вот код: If Drinks.n1 > i1 Then Drinks.n1 = Drinks.n1 - 3 If Drinks.n2 > i1 Then Drinks.n2 =...

Как обратиться к переменной по ее имени?
В runtime необходимо обратиться к переменной, хранящей объект. Имя этой переменной содержится в...

Как обратиться к элементу переменной?
Как обратится к элементу переменной?


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

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

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