|
|
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Суть проблемы такая есть программа которая будет использовать MDI интерфейс, хочу для вывода результов различных запросов использовать одну форму в которой будет грид, соответственно, и приблуды для печати, соответственно создавать их по мере необходимости, но вопрос собственно в том как и гланое сколько мне придется использовать компонентов таких как датасет, транзакция... потому что например есть такой случай что в зависимости от значения определенного поля перекрасить всю строку и соответственно у меня такая ерунда получилась запускаю два окошка с разными запросами, а они используют один и тот же датасет, и получается ерунда, поля прописаны динамически ессно не совпадают и полный крах Поделитесь соображениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 15:53:17 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Каждое окно должно иметь "свой" кошелёк, то-бишь датасет и показывать его "содержимое". Это вообще касается всех окон. Датасет - это локальный класс, который хранит _один_ набор данных в ед. времени, со своим bookmark-ми, набором правил представления данных, со своим курсосром на сервере и т.д. в то время как другие mdi-child окна _могут_возжелать_ показывать этот-же набор с другими bookmark-ми, правилами представления данных, с другим уровнем изоляции транзакций и т.д. Короче, даёшь каждому окну свой Датасет! :)) Имхо, лучше всего создавать датасеты динамически и не полениться написать для этого класс-обёртку TCommonDataset ... хотя для ленивых, можно иметь статические датасеты (в data module) типа DS1, DS2, DS3 ... которые инкапсулируют одно и то-же для нескольких одновременно открытых окон .... , это нормально, но не оптимально ... mapnn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 16:31:39 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Брр Сори, но или я ничего не понял или одно из двух На форме этого окна у меня есть датасет, транзакция, и датасорце. Датабей используесться с главного окна, что я должен сделать чтобы все заработало как надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 16:53:39 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Опа забыл про существенный момент, глюк происходит Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. И соответственно ругается index out of bounds предложите пути решения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 17:03:21 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
alex777Опа забыл про существенный момент, глюк происходит Tvo_spis* vo = dynamic_cast<Tvo_spis*>(Main->ActiveMDIChild); if(!vo) return; switch (vo->doc_type) { case 0: //?????? ?????????? т.е. происходит перерисовывание окошка когда я начинаю двигать одно окно над другим прога находит АКТИВНОЕ окно и пытатся перерисовать НЕАКТИВНОЕ И соответственно ругается index out of bounds предложите пути решения Напиши if(!vo || vo != this) return; а то получишь всегда !vo )) mapnn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 17:35:36 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Да не в этом фишка Код: plaintext Код: plaintext как мне определить какое окно пытается перерисовать виндос, загвоздка здесь в Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 17:47:51 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
alex777Да не в этом фишка Код: plaintext Код: plaintext как мне определить какое окно пытается перерисовать виндос, загвоздка здесь в Код: plaintext Код: plaintext >виндос перерисовывает НЕАКТИНОЕ окно когда я двигаю АКТИВНОЕ и >соответственно находит vo->doc_type Я может, не совсем понял, что ты хочешь, но Windows, имхо всегда перерисовывает background окна при данной операции, и в этом случае посылает всем нижележащим окнам (согласно z-порядку) сообщение на перерисовку, в ответ на которое, твои нижележащие гриды (в нижележащих окнах) тоже пытаются перерисоваться в каждой форме, где существует указанный тобой код, и в этом случае для них происходит указанное тобой событие, а так как ты _игнорируешь_ проверку, что _именно_ данный_ грид является "активным", то и все твои гриды "пытаются" делать проверку vo->doc_type, что вполне может привести к исключению. Активное окно всегда _одно_ а у тебя в коде проверяется "есть - ли вообще активные окна" ... они есть!!! и отрабатывается код _во_всех_ "нижележащих окнах" ... что неправильно mapnn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2004, 19:01:00 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Теперь я тебя не понял, вот вчера я сделал так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. т.е. здесь я просто отлавливаю исключения и вставляю для них пустой обработчик, а как мне сделать так (о чем я уже спрашивал) чтобы знать какое окно в данный момент перерисовывается, т.е. как я уже говорил ранее делать проверку не Код: plaintext 1. 2. 3. а другую, а какую именно я как раз и спрашиваю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2004, 11:46:39 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
alex777 т.е. здесь я просто отлавливаю исключения и вставляю для них пустой обработчик, а как мне сделать так (о чем я уже спрашивал) чтобы знать какое окно в данный момент перерисовывается, т.е. как я уже говорил ранее делать проверку не Код: plaintext 1. 2. 3. а другую, а какую именно я как раз и спрашиваю может это тебе надо: Код: plaintext 1. 2. 3. 4. mapnn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2004, 13:53:53 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Нет не то здесь идет перебор всех чилдов, мне необходимо перед case точно знать что событие ON_PAINT возникло для этого окна, а не перебирать в цикле всех чилодов, это будет очень тормозить, и требуемого результата я все равно не добьюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2004, 08:56:50 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
Все разобрался, оказалось проще чем я думал, проблема была в том что мне не надо было выбирать окно, при событии перерисовки, я УЖЕ нахожусь в том окне которое перерисовывается, окончательный вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. т.е просто убран dynamic_cast, оказывается он был некчему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2004, 10:36:30 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
счас я, наконец, понял, что ты хотел ... Меня извиняет то, то в "пивном состоянии" в выходные трудно разглядеть смысл .... задачки ... сразу ... :>) Просто хотелось помочь земляку ... :>) С уважением, Игорь Ильинский e-mail: mapnn@sinn.ru http: www.sinn.ru/~mapnn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2004, 19:54:09 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
[ Просто хотелось помочь земляку ... :>) С уважением, Игорь Ильинский e-mail: mapnn@sinn.ru http: www.sinn.ru/~mapnn[/quot]<=================== Все это классно но как получить бы программу и поюзать ее? Есть просто справочник предприятий, без карты но зато с товарами и ценами и где его взять по Нижнему Новгороду? ЗЫ проезжал я как то ваш город ночью год назад на комтек 2003 ехали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 19:26:33 |
|
||
|
организация программы
|
|||
|---|---|---|---|
|
#18+
О чём речь коллега? :) Что поюзать? Речь о ГИС или просто о справочнике пердприятий? Если просто о справочнике - ищи на www.nn.ru PS. с гис я завязал (тошнит уже) - денег это не приносит в принципе, работаешь 2 года как вол - пользуются все но ... даже спасибо никто не скажет ... РОССИЯ ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 23:19:41 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32578648&tid=1578321]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
216ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 524ms |

| 0 / 0 |
