Подстановка данных
Но теперь приложение MDI, а у дочерних форм модального режима кажется нет..
Как лучше переделать приложение?
Form->Show(); форма будет как модальная;)
ну оставь эту форму fsNormal и вызывай обычно:
Form->Show(); форма будет как модальная;)
ShowModal()
дык я так и сделала,.. просто некрасиво это, и сама форма за рамки основной вылезает :'(
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-
А такое не подойдет?
А такое не подойдет?
Интерестно.. я сразу сделала несколько модулй данных, но не по одному - на сущность, а по одному на подсистему - адресную, банковскую, эконоич.классификаторы ... и т.д. Я все-таки иногда думаю :)...
мысли о фреймах у меня были, но не нашла как их можно использовать..
Спасибо, буду думать :)
Есть база данных. MDI. Пока она была не MDI подстановка выбор данных из одной формы в другую осуществлялся просто: в нужном месте осуществлялся вызов второй формы в модальном режиме, после чего в той же процедуре менялось значение поля...
Но теперь приложение MDI, а у дочерних форм модального режима кажется нет..
Как лучше переделать приложение?
Может Я не совсем понял, но MDI предполагает наличие ОДНОТИПНЫХ окон(документов), а тут получается каждый документ несет свой смысл? Нафиг тогда MDI тебе не нужен. Если Я ошибся, то наверно лучше сделать через клипбоард или др-н-дроп. А?
Может Я не совсем понял, но MDI предполагает наличие ОДНОТИПНЫХ окон(документов), а тут получается каждый документ несет свой смысл? Нафиг тогда MDI тебе не нужен. Если Я ошибся, то наверно лучше сделать через клипбоард или др-н-дроп. А?
Скажем так тут есть несколько однотипных документов.
Смысл такой, это база данных. В документ долны быть ну скажем выбраны люди из справочника.. др-н-дроп не удобно..
ShowModal()
дык я так и сделала,.. просто некрасиво это, и сама форма за рамки основной вылезает :'(
Кроме того, эти формы (их штук 7) не всегда нужны мне как модальные..X)-
Использоание модального режима - это не есть хорошо и удобно. Если используется несколько форм то и ДМ должно быть несколько. Или вариант Freemen
Использоание модального режима - это не есть хорошо и удобно. Если используется несколько форм то и ДМ должно быть несколько. Или вариант Freemen
Вот и я говорю, некрасиво это...
Только вариант Freemenа мне не подходит, придется все переделывать.. Очень много
Вот и я говорю, некрасиво это...
Только вариант Freemenа мне не подходит, придется все переделывать.. Очень много
А почему бы не завести кнопочку ShowRequest?
Можно так же использовать событие OnShow() в MDI - формах. Решений на самом деле очень много.
А почему бы не завести кнопочку ShowRequest?
Можно так же использовать событие OnShow() в MDI - формах. Решений на самом деле очень много.
А что должна делать кнопочка?
Я вот думала повесить событие подстановки на OnClose() 2-й формы (из которой данные выбираются).. Только не могу обратиться к первой..
Owner почему-то равен NULL
А что должна делать кнопочка?
Она может определять для какой mdi-формы и выполнять необходимый sql запрос, формируя необходимые данные и заполняя поля в форме. А потом сделать Refresh или SetFocus нужной MDI формы
Она может определять для какой mdi-формы и выполнять необходимый sql запрос, формируя необходимые данные и заполняя поля в форме. А потом сделать Refresh или SetFocus нужной MDI формы
Сорри, не догоняю...
Вся проблема в том, что после создания формы я не могу обратиться к форме из-под которой я ее создала..
Точнее я не могу это сделать из-под второй формы
может пригодится тебе для опытов...
{
if (MDIChildren->Tag != xxxx)
{
// проверим что-нибудь... например Tag
// так ищем окно, которое нам нужно
}
else {
// вот оно найдено - активируем и работаем с ним
MDIChildren->BringToFront();
TMDIChild* child=dynamic_cast<TMDIChild*> ( ActiveMDIChild );
if (!child) return;
if (child->WindowState==wsMinimized)
{ child->WindowState=wsMaximized;}
}
Вот кусок кода,
может пригодится тебе для опытов...
Спасибо, но дело в том, что искать по Тагу проблемно, так как могут быть открыты два одинаковых документа одновременно, и в обоих одновременно выбираться люди..
Можно конечно таг менять при создании формы,-документа как-нибудь чтоб он уникальным был, потом передавать это в форму-справочник...
Только это долго и некрасиво. Я думаю что должно быть более простое обращение к форме, из под которой был создан справочник, что-то типа Owner...
Ток он у меня почему-то равен NULL:-?
Я думаю что должно быть более простое обращение к форме, из под которой был создан справочник, что-то типа Owner...
Ток он у меня почему-то равен NULL:-?
-1-
Я не знаю почему у тебя Owner==NULL
Может в класс дочерней формы добавить свой указатель на родителя и при создании дочерней формы смостоятельно заполнить указатель на форму -родитель.
Вообще
Owner - владелец..
Parent - родитель...
Попробуй заполнить сразу после создания формы.
-2-
можно разработать правила генерации тагов так,
чтобы он всегда однозначно определял форму и ее
состояние - и не надо таг никуда передавать.
Просто всегда интерпретировать таг в соответствии
с правилом.
например:
первая цифра - определяет тип формы
вторая цифра - определяет тип документа, с
которым работет в данный момент форма
третья цифра - определяет какую-то стадию
процесса обработки документа
четвертая цифра - код ошибки
Ну это, понято - утомительное дело... лучше с указателями
-1-
Owner - владелец..
Parent - родитель...
Попробуй заполнить сразу после создания формы.
Спасибо, приду домой - попробую...
Может в класс дочерней формы добавить свой указатель на родителя и при создании дочерней формы смостоятельно заполнить указатель на форму -родитель.
Как вариант тоже хорошо. :)
[B-2-
можно разработать правила генерации тагов так,
чтобы он всегда однозначно определял форму и ее
состояние - и не надо таг никуда передавать.
Просто всегда интерпретировать таг в соответствии
с правилом.
например:
первая цифра - определяет тип формы
вторая цифра - определяет тип документа, с
которым работет в данный момент форма
третья цифра - определяет какую-то стадию
процесса обработки документа
четвертая цифра - код ошибки
Не надежно по-моему, возможны совпадения
я форму создаю так:
void __fastcall TfrmEnterprise::DBEnterpriseDblClick(TObject *Sender)
{
Application->CreateForm(__classid(TfrmEnterpriseForMod), &frmEnterpriseForMod);
}
я понимаю что тормоз, ток не понимаю где ошибкаP(
Parent тоже равен NULL...
я форму создаю так:
void __fastcall TfrmEnterprise::DBEnterpriseDblClick(TObject *Sender)
{
Application->CreateForm(__classid(TfrmEnterpriseForMod), &frmEnterpriseForMod);
}
я понимаю что тормоз, ток не понимаю где ошибкаP(
Лучше однако вот так:
тогда парент у тебя будет указывать на frmEnterprise.
Соответственно для модальной формы в целом будет выглядеть:
//Какие либо действия перед показом формы.
....
if(frmEnterpriseForMod->ShowModal()==mrOk){
//Действия после показа формы
...
}
delete frmEnterpriseForMod;
Тока нне модальное окно, так как у чайлдов модальности нет, парент по прежнему нул, зато овнер показывает на нужную форму:D
Еще раз всем большое спасибо