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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача параметров между формами в MDI приложении 
:(
    Опции темы
Uragan
Дата 4.6.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 29.10.2005

Репутация: нет
Всего: 0



Здравствуйте! Извините что не в том разделе, при попытки задать вопрос в разделе Общие вопросы происходит ошибка почему-то smile
В моем приложении я использую MDI формы, мне необходимо значение одного поля(Edit1.Text) первой формы присвоить значению другого поля(Edit1.Text) другой формы.

Например при использовании обычных форм, работает вот такая конструкция:

Код

Form1.Edit1.Text:=Form2.Edit1.Text;


Но при использовании MDI происходит ошибка.
Формы у меня создаются не автоматически.
Как реализовать обмен данными между формами, что я делаю не так? 
Заранее благодарен!
PM MAIL WWW   Вверх
pseud
Дата 4.6.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(Uragan @  4.6.2007,  08:57 Найти цитируемый пост)
Но при использовании MDI происходит ошибка.Формы у меня создаются не автоматически.Как реализовать обмен данными между формами, что я делаю не так? Заранее благодарен!


А поподробнее.
А то кто-нить нальет много воды.
А ты скажешь - не то.

Как создаются? Как обращаешься? Как передаешь?



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 4.6.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Uragan @  4.6.2007,  08:57 Найти цитируемый пост)
Но при использовании MDI происходит ошибка.

КАКАЯ???????????????????????? smile

Добавлено через 1 минуту
в секцию "USES" у Form1 добавь Form2

Добавлено через 8 минут и 21 секунду
чтобы один юнит знал о существовании другого
PM MAIL   Вверх
Rodman
Дата 4.6.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Uragan, а если ты написал такой код, Делфи при компиляции должно выдать сообщение, мол не знает компонета, и если подтвердит - то Form2 самостоятельно в uses пропишется!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
kobra
Дата 4.6.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: нет
Всего: 9



Код
Form1.Edit1.Text:=Form2.Edit1.Text;
в случае с MDI, встает вопрос. а с ккого именно Form2 брать? веть их может быть открыто сколько угодно.
PM MAIL   Вверх
pseud
Дата 5.6.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



kobra, 
Цитата(kobra @  4.6.2007,  23:01 Найти цитируемый пост)
в случае с MDI, встает вопрос. а с ккого именно Form2 брать? веть их может быть открыто сколько угодно.


Form2 - это переменная - это ссылка на 1 компонент класса TForm2 (хотя может и не только).

поэтому открыто несколько форм класса TForm2, а переменная Form2 - ссылается лишь на одну из них.

Для доступа к формам предлагаю воспользоваться (раз уж MDI):

Код

var
  i: Integer;
  frm: TForm1;
begin
  for i := 0 to MainForm.MDIChildCount - 1 do
    if MainForm.MDIChildren[i].ClassName = 'TForm2' then
    begin
      frm := MainForm.MDIChildren[i];
      if frm.Name = 'Form2_уникальное_имя' then
        делаем чего хотим с этой frm класса TForm2
    end;
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
kobra
Дата 5.6.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: нет
Всего: 9



Цитата(pseud @  5.6.2007,  09:29 Найти цитируемый пост)
Form2 - это переменная - это ссылка на 1 компонент класса TForm2 (хотя может и не только).
точно. и я о томже. на какои именно эгземпляр указывает ссылка в данныи момент, сложно выяснить (на тот что был открыт последным).
исходя из этого, приведенный выше код самое то.
правда я при этом всегда имею уникальный Caption и допольнителный числавой идентификатор, залатой запас.
PM MAIL   Вверх
Uragan
Дата 6.6.2007, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 29.10.2005

Репутация: нет
Всего: 0



Спасибо огромное! smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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