![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MDI: Как обратится из одной child формы к объектам другой child ф [D7, Win2k]
CAMCOH © (2005-05-25 20:07:00)Собственно вопрос в subj
MDI: Как обратится из одной child формы к объектам другой child формы.
Например у меня есть такая строка:
s:=form2.edit1.Text;
Которая вызывается из form1.
Программа ругается и маерится. Обе формы child.
Заранее спасибо за ответ...
Mx (2005-05-25 21:06:00) [1]
> Defunct © (25.05.05 21:03) [36]
Я думаю мы друг друга поняли :)
Mx (2005-05-25 21:04:00) [2]Если форм действительно будет несколько CAMCOH, то тебе правильно говорят, впоследствии заколебешься.
Defunct (2005-05-25 21:03:00) [3]Mx © (25.05.05 21:00) [34]
> А еще всякие настройки, типа, DecimalSeparator, и их все-таки много и они глобальные.
Вы ими пользуетесь? Лично я - нет.
Как для меня, Application и Screen являются локальными в рамках одного DPR.
Defunct (2005-05-25 21:01:00) [4]> CAMCOH ©
Жаль что вы считаете, что справились с ошибкой. На самом деле вы преобрели гораздо более сложную ошибку, которую найти потом будет гораздо труднее.
Mx (2005-05-25 21:00:00) [5]
> Defunct © (25.05.05 20:56) [30]
Причем здесь количество? Я имею ввиду глобальные переменные в общем смысле. В этом смысле Application и Screen таковыми и являются. А еще всякие настройки, типа, DecimalSeparator, и их все-таки много и они глобальные.
Просто Джо (2005-05-25 20:59:00) [6]
> [32] CAMCOH © (25.05.05 20:58)
> Ураа вроде справились с ошибкой.
Это временно, можешь не сомневаться. Ты открыл для них очень широкую дорогу.
CAMCOH (2005-05-25 20:58:00) [7]Ураа вроде справились с ошибкой.
Спасибо Mx и всем остальным кто помогал ;)
Просто Джо (2005-05-25 20:57:00) [8]<offtop>
Ох, прав АП. Мороны гораздо хуже мормонов.
</offtop>
Defunct (2005-05-25 20:56:00) [9]Mx © (25.05.05 20:46) [22]
> А как же с Application, Screen и т.п. VCL
Вы написали и т.п., можете назвать еще? Глобальных переменных всего-то на пальцах можно пересчитать, и являются они не более чем фантазией языка "Delphi".
Application и Screen скорее просто локальные переменные в рамках программы. Ведь в программе не может быть 2 Application или 2 Screen.
А форм может быть сколько угодно.
CAMCOH (2005-05-25 20:56:00) [10]Мне 2 такие формы не понадобятся по определению.
Написал как ты сказал и что это должно дать ?
Mx (2005-05-25 20:54:00) [11]Напиши:
procedure TMainForm.N11Click(Sender: TObject);
begin
form2 := Tform2.Create(Application);
end;
А теперь представь, что тебе надо будет две таких формы. Таким образом, последующий N11Click затрет ссылку на предыдущую, так что подумай правильно ли ты все организуешь.
Просто Джо (2005-05-25 20:54:00) [12]
> [26] CAMCOH © (25.05.05 20:50)
Откуда в переменной Form2 появится ссылка на твою форму?
Если хочешь извращаться, то тогда уже так:
procedure TMainForm.N11Click(Sender: TObject);
begin
Form2 := Tform2.Create(Application);
end;
CAMCOH (2005-05-25 20:50:00) [13]Mx непонял вопроса...
procedure TMainForm.N11Click(Sender: TObject);
begin
Tform2.Create(Application);
end;
Mx (2005-05-25 20:49:00) [14]И чему это присваивается? Та глобальная переменная, которая автоматически добавляется не присваивается волшебным образом, если результат конструктора в нее не занести (Form2 := TForm2.Create(Application)), то в Form2 - ничего нет.
CAMCOH (2005-05-25 20:47:00) [15]TForm2.Create(Application);
Mx (2005-05-25 20:46:00) [16]
> CAMCOH © (25.05.05 20:46) [21]
Как создается Form2?
Mx (2005-05-25 20:46:00) [17]
> Defunct © (25.05.05 20:43) [18]
> то в программе нет глобальный переменных вообще
А как же с Application, Screen и т.п. VCL Не грамотно сделана? Иногда такой механизм все-таки нужен!
CAMCOH (2005-05-25 20:46:00) [18]В данном кокретном случае на форме2 лежит таблица dbgrid.
а внутри процедур формы1 возникает необходимость выдёргивать данные из этой таблицы.
Defunct (2005-05-25 20:44:00) [19]CAMCOH © (25.05.05 20:41) [17]
Следствие того, что написано в [18] о глобальных переменных.
Mx (2005-05-25 20:43:00) [20]
> CAMCOH © (25.05.05 20:41) [17]
Видимо за Form2 ничего не закреплено. Напиши наконец в чем задача?