Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подстановка данных

4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
Есть база данных. MDI. Пока она была не MDI подстановка выбор данных из одной формы в другую осуществлялся просто: в нужном месте осуществлялся вызов второй формы в модальном режиме, после чего в той же процедуре менялось значение поля...
Но теперь приложение MDI, а у дочерних форм модального режима кажется нет..
Как лучше переделать приложение?
6.4K
11 мая 2005 года
MerlinWind
52 / / 01.05.2005
ну оставь эту форму fsNormal и вызывай обычно:
Form->Show(); форма будет как модальная;)
4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by MerlinWind
ну оставь эту форму fsNormal и вызывай обычно:
Form->Show(); форма будет как модальная;)


ShowModal()
дык я так и сделала,.. просто некрасиво это, и сама форма за рамки основной вылезает :'(
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-

10
11 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Крыс
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-


А такое не подойдет?

4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by Freeman
А такое не подойдет?


Интерестно.. я сразу сделала несколько модулй данных, но не по одному - на сущность, а по одному на подсистему - адресную, банковскую, эконоич.классификаторы ... и т.д. Я все-таки иногда думаю :)...
мысли о фреймах у меня были, но не нашла как их можно использовать..
Спасибо, буду думать :)

246
12 мая 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Крыс
Есть база данных. MDI. Пока она была не MDI подстановка выбор данных из одной формы в другую осуществлялся просто: в нужном месте осуществлялся вызов второй формы в модальном режиме, после чего в той же процедуре менялось значение поля...
Но теперь приложение MDI, а у дочерних форм модального режима кажется нет..
Как лучше переделать приложение?


Может Я не совсем понял, но MDI предполагает наличие ОДНОТИПНЫХ окон(документов), а тут получается каждый документ несет свой смысл? Нафиг тогда MDI тебе не нужен. Если Я ошибся, то наверно лучше сделать через клипбоард или др-н-дроп. А?

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by GIZMO
Может Я не совсем понял, но MDI предполагает наличие ОДНОТИПНЫХ окон(документов), а тут получается каждый документ несет свой смысл? Нафиг тогда MDI тебе не нужен. Если Я ошибся, то наверно лучше сделать через клипбоард или др-н-дроп. А?


Скажем так тут есть несколько однотипных документов.
Смысл такой, это база данных. В документ долны быть ну скажем выбраны люди из справочника.. др-н-дроп не удобно..

1
12 мая 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Крыс
ShowModal()
дык я так и сделала,.. просто некрасиво это, и сама форма за рамки основной вылезает :'(
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-


Использоание модального режима - это не есть хорошо и удобно. Если используется несколько форм то и ДМ должно быть несколько. Или вариант Freemen

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by kot_
Использоание модального режима - это не есть хорошо и удобно. Если используется несколько форм то и ДМ должно быть несколько. Или вариант Freemen


Вот и я говорю, некрасиво это...
Только вариант Freemenа мне не подходит, придется все переделывать.. Очень много

259
12 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Крыс
Вот и я говорю, некрасиво это...
Только вариант Freemenа мне не подходит, придется все переделывать.. Очень много


А почему бы не завести кнопочку ShowRequest?
Можно так же использовать событие OnShow() в MDI - формах. Решений на самом деле очень много.

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by AlexandrVSmirno
А почему бы не завести кнопочку ShowRequest?
Можно так же использовать событие OnShow() в MDI - формах. Решений на самом деле очень много.


А что должна делать кнопочка?
Я вот думала повесить событие подстановки на OnClose() 2-й формы (из которой данные выбираются).. Только не могу обратиться к первой..
Owner почему-то равен NULL

259
12 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Крыс
А что должна делать кнопочка?


Она может определять для какой mdi-формы и выполнять необходимый sql запрос, формируя необходимые данные и заполняя поля в форме. А потом сделать Refresh или SetFocus нужной MDI формы

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by AlexandrVSmirno
Она может определять для какой mdi-формы и выполнять необходимый sql запрос, формируя необходимые данные и заполняя поля в форме. А потом сделать Refresh или SetFocus нужной MDI формы



Сорри, не догоняю...
Вся проблема в том, что после создания формы я не могу обратиться к форме из-под которой я ее создала..
Точнее я не могу это сделать из-под второй формы

2.3K
12 мая 2005 года
ART-CODE
134 / / 15.11.2004
Вот кусок кода,
может пригодится тебе для опытов...

Код:
for (i=MDIChildCount-1; i >= 0; i--)
{
if (MDIChildren->Tag != xxxx)
  {
   // проверим что-нибудь... например Tag
   // так ищем окно, которое нам нужно
  }

else {
// вот оно найдено - активируем и работаем с ним
MDIChildren->BringToFront();
TMDIChild* child=dynamic_cast<TMDIChild*> ( ActiveMDIChild );
if (!child) return;
if  (child->WindowState==wsMinimized)
   { child->WindowState=wsMaximized;}
}
4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by ART-CODE
Вот кусок кода,
может пригодится тебе для опытов...


Спасибо, но дело в том, что искать по Тагу проблемно, так как могут быть открыты два одинаковых документа одновременно, и в обоих одновременно выбираться люди..
Можно конечно таг менять при создании формы,-документа как-нибудь чтоб он уникальным был, потом передавать это в форму-справочник...
Только это долго и некрасиво. Я думаю что должно быть более простое обращение к форме, из под которой был создан справочник, что-то типа Owner...
Ток он у меня почему-то равен NULL:-?

2.3K
12 мая 2005 года
ART-CODE
134 / / 15.11.2004
Цитата:
Originally posted by Крыс
Я думаю что должно быть более простое обращение к форме, из под которой был создан справочник, что-то типа Owner...
Ток он у меня почему-то равен NULL:-?


-1-
Я не знаю почему у тебя Owner==NULL
Может в класс дочерней формы добавить свой указатель на родителя и при создании дочерней формы смостоятельно заполнить указатель на форму -родитель.
Вообще
Owner - владелец..
Parent - родитель...
Попробуй заполнить сразу после создания формы.

-2-
можно разработать правила генерации тагов так,
чтобы он всегда однозначно определял форму и ее
состояние - и не надо таг никуда передавать.
Просто всегда интерпретировать таг в соответствии
с правилом.
например:
первая цифра - определяет тип формы
вторая цифра - определяет тип документа, с
которым работет в данный момент форма
третья цифра - определяет какую-то стадию
процесса обработки документа
четвертая цифра - код ошибки

Ну это, понято - утомительное дело... лучше с указателями

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by ART-CODE
-1-
Owner - владелец..
Parent - родитель...
Попробуй заполнить сразу после создания формы.


Спасибо, приду домой - попробую...

Цитата:
Originally posted by ART-CODE
Может в класс дочерней формы добавить свой указатель на родителя и при создании дочерней формы смостоятельно заполнить указатель на форму -родитель.


Как вариант тоже хорошо. :)

Цитата:
Originally posted by ART-CODE
[B-2-
можно разработать правила генерации тагов так,
чтобы он всегда однозначно определял форму и ее
состояние - и не надо таг никуда передавать.
Просто всегда интерпретировать таг в соответствии
с правилом.
например:
первая цифра - определяет тип формы
вторая цифра - определяет тип документа, с
которым работет в данный момент форма
третья цифра - определяет какую-то стадию
процесса обработки документа
четвертая цифра - код ошибки


Не надежно по-моему, возможны совпадения

4.2K
12 мая 2005 года
Крыс
98 / / 06.05.2005
Parent тоже равен NULL...
я форму создаю так:
void __fastcall TfrmEnterprise::DBEnterpriseDblClick(TObject *Sender)
{

Application->CreateForm(__classid(TfrmEnterpriseForMod), &frmEnterpriseForMod);
}
я понимаю что тормоз, ток не понимаю где ошибкаP(
1
13 мая 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Крыс
Parent тоже равен NULL...
я форму создаю так:
void __fastcall TfrmEnterprise::DBEnterpriseDblClick(TObject *Sender)
{

Application->CreateForm(__classid(TfrmEnterpriseForMod), &frmEnterpriseForMod);
}
я понимаю что тормоз, ток не понимаю где ошибкаP(


Лучше однако вот так:

 
Код:
frmEnterpriseForMod = new TfrmEnterpriseForMod(this);

тогда парент у тебя будет указывать на frmEnterprise.
Соответственно для модальной формы в целом будет выглядеть:
 
Код:
frmEnterpriseForMod = new TfrmEnterpriseForMod(this);
//Какие либо действия перед показом формы.
....
if(frmEnterpriseForMod->ShowModal()==mrOk){
//Действия после показа формы
...
}
delete frmEnterpriseForMod;
4.2K
13 мая 2005 года
Крыс
98 / / 06.05.2005
Большое спасибо, сделала...
Тока нне модальное окно, так как у чайлдов модальности нет, парент по прежнему нул, зато овнер показывает на нужную форму:D

Еще раз всем большое спасибо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог