Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение данных модальной формой, ... и измение данных в основном модуле 
:(
    Опции темы
HalkaR
  Дата 18.4.2003, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Собственно САБЖ.
Как получить в модальной форме данные из основной. И как из нее изменить данные в основном модуле?
Все это набилдере.
Спасибо.
PM MAIL   Вверх
TaTaP
Дата 18.4.2003, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не знаю, как в Билдере ( не люблю я его ), но в Visual C++ это делается примерно так ( алгоритм ) :
1) создаем свой либо наследуем от существующего класс "диалог";
2) создаем объект этого класса;
3) передаем в него данные ( можно через свою функцию, которую ты сам определил в наследнике );
4) запускаем диалог как модальный;
5) работаем с диалогом и потом закрываем его;
6) возвращаемся туда, откуда был вызван диалог и получаем из объекта всю нужную нам информацию.
Самое тут главное, чтобы при закрытии диалога сам объект "диалог" не уничтожался, а становился невидимым, тогда после окончания работы с юзером можно будет к нему обратится.

PM MAIL   Вверх
HalkaR
Дата 18.4.2003, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



В общем с этим я разобрался, спасибо, хотя и не так как мне советовали.
Но теперь другой, дурацкий вопрос - как узнать сколько строк заполнено в StrinGrid? Пробовал считать количество строк через TStrings - не работает.
PM MAIL   Вверх
Step
Дата 21.4.2003, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



а как ты их считать пробывал


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vyacheslav
Дата 21.4.2003, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



По поводу передачи информации модальному окну и обратно
Код

void fastcall TTripConfigModule::EditTrip(void)
{
   //в конструкторе передаем информацию, которая
   //нужна для правильного создания модального окна
   std::auto_ptr<TTripForm> dlg(new TTripForm(NULL, TripConfigurator, false, false));
   //передаем через проперти остальную информацию
   dlg->Shifr    = Trips_Shifr->AsString;
   dlg->TripName = Trips_Name->AsString;
   dlg->Code     = Trips_Code->AsString;
   dlg->Description = Trips_Description->AsString;
   dlg->StorehouseID = Trips_SHouseID->AsCurrency;
   dlg->TransportID =  Trips_ProcCenterID->AsCurrency;
   if (dlg->ShowModal()== mrOk)
   {
      Application->ProcessMessages();
      Trips_->AfterScroll = NULL;
      //получаем информацию из модального окна
      Trips_->Edit();
      Trips_Shifr->AsString = dlg->Shifr;
      Trips_Name->AsString = dlg->TripName;
      Trips_Code->AsString = dlg->Code;
      Trips_Description->AsString = dlg->Description;
      Trips_->Post();
      Trips_->AfterScroll = Trips_AfterScroll;
   }
}




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 21.4.2003, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



а шаблон зачем


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vyacheslav
Дата 21.4.2003, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



чтобы обеспечить автоматическое удаление объекта по выходе его из области видимости
При этом не требуется предпринимать дополнительных мер на случай генерации исключений
Стандартно этb меры выглядят примерно так
Код

TMyClass cls = new TMyClass;
try
{
//здесь делаем что нибудь
}
cath(...)
{
//обрабатываем исключение
}
//уничтожаем cls
delete cls;

или с использованием билдеровского расширения немного попроще
Код

TMyClass cls = new TMyClass;
try
{
//здесь делаем что нибудь
}
finally
{
//уничтожаем cls
delete cls;
}

и совсем просто с использованием auto_ptr
Код

std::auto_ptr<TMyClass> cls(new TMyClass);
//делаем что нибудь






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 21.4.2003, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



а ты статически его создай и тогда на стеки он сам удалиться


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vyacheslav
Дата 21.4.2003, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Цитата
а ты статически его создай и тогда на стеки он сам удалиться

Без комметариев


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Step
Дата 21.4.2003, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



это ты к чему


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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