Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: Cryogen2003
Дата сообщения: 09.04.2014 20:02
приветствую всех.
Есть MDI приложение. Одна форма MDI Form и куча форм MDI Child.
На каждой форме валяется TcxBarManager со своим меню. При открытии MDI Child все меню стандартным способом сливаются в одно меню.

Сейчас кинул на форму TdxTabbedmdimanager (хочу отказаться от собственного компонента для переключения между MDI Child). Все бы хорошо, но на всех MDI Child меню остается.
В итоге получается так, что есть меню основное сверху (с MDI Form и MDI Child скомпонованные в одно меню) и чуть пониже меню из MDI Child.

Как сделать так, что бы второе меню из MDI Child не показывалось? Или это глюк девовских компонент?
Автор: makz
Дата сообщения: 10.04.2014 04:21
G787
Тогда так:
http://files.mail.ru/3B816F92AB224DE9AADC933F7D396B5F
PowerChute
Класс TcxSchedulerControlEvent - пустышка, само событие в Storage создается, там и надо id брать.
Автор: G787
Дата сообщения: 10.04.2014 05:09
Cryogen2003
Попробуй завести для каждого меню свой dxBarDockControl

makz

Сенькую
Автор: Cryogen2003
Дата сообщения: 10.04.2014 06:19
G787
оке, и что дальше будет?

У меня такое ощущение, что девэкспресс просто у себя ошибку допустили. Ведь без TdxTabbedmdimanager все работает
Автор: G787
Дата сообщения: 10.04.2014 06:45
Cryogen2003

У меню, в свойстве DockControl прописать нужные Доки, и менюшка будет жить в доке, должно помочь.
В моём MDI так и всё работает.
Автор: Andryshok
Дата сообщения: 10.04.2014 07:19
Поделитесь опытом с девами... вобщем ситуация следующая - есть exeшник написанный на Delphi
есть Dll -ка написанная тоже на Delphi - в Dll хранится несколько форм которые показываются при вызове определенных функций - так вот проблема в том что к формам которые в exeшнике применяются скины от DevExpress а к формам которые вызываются из Dll не применяются - Dll загружается вышеназванным exeшником. Нарыл на офф сайте что типа надо инициализировать девовскуюю gdiplus - сделал все в точности как было там указано - все равно не работает ... ( . Может кто подскажет как это реализовать, желательно небольшим кусочком кода .
Автор: jonikDk
Дата сообщения: 10.04.2014 08:08
Andryshok
Откуда скины грузишь из файла или из ресурсов?
Автор: Andryshok
Дата сообщения: 10.04.2014 08:39
jonikDk Я их не гружу, там всего 1 скин, в exeшнике зашит, ну и в dll тоже - через dxSkinControler
Автор: Cryogen2003
Дата сообщения: 10.04.2014 08:54
G787
эээээ, не совсем понял как у тебя это выглядит. DockControl - это в принципе PopupForm же. И честно говоря не очень бы хотелось все меню переносить, там дофига пунктов меню
Автор: jonikDk
Дата сообщения: 10.04.2014 08:56
dll должна экспортировать функции, которые надо вызывать в приложении
exports
dxFinalizeGDIPlus,
dxInitializeGDIPlus;

Я не до конца понял, каким образом скин зашит в dll?
Попробуй явно подложить файл и загрузить скин методом dxSkinsUserSkinLoadFromFile. А затем уже установи этот скин в dxSkinController
Потому что у меня предположение, что в dll нет скина...
Автор: Andryshok
Дата сообщения: 10.04.2014 11:55
jonikDk Есть в dll skin, там прямо на вызываемой форме висит dxSkinController и в нем указан скин и в дизайнтайме этот скин действует, но когда вызываю эту Dll то скин не работает.... вообще никакое оформеление на девы не работает - стандартные квадратные кнопочки и панели показывает
Автор: ChSerg
Дата сообщения: 10.04.2014 13:30
Andryshok
На офсайте читали этот тикет: KA18891 - How to use DevExpress controls in DLL?
Автор: G787
Дата сообщения: 10.04.2014 13:50
Как програмно у cxGridChartView DataGroup изменить в ToolBox-е Data Levels значение ?
Если делать через DataGroups[0].ActiveValue := ; то меняется только текст, Chart не меняется.

Добавлено:
Cryogen2003 Путаешь DockPanel c BarDockControl , BarDockControl специальный док для баров.


Автор: Cryogen2003
Дата сообщения: 10.04.2014 15:49
G787
Да, точно спутал.
Ты тоже используешь TdxTabbedMDImanager ?
Автор: G787
Дата сообщения: 10.04.2014 17:44
Cryogen2003
да
Автор: jonikDk
Дата сообщения: 10.04.2014 17:48
Andryshok
ну а сделать как я предложил загрузить скин из файла в dll и затем его активировать?
Автор: Andryshok
Дата сообщения: 10.04.2014 18:42
jonikDk Ну зачем таскать мне 1 скин в файле... он там и так активирован по умолчанию, тут что то не так ChSerg - я так и делал... но почему то не работает (

Автор: jonikDk
Дата сообщения: 11.04.2014 09:24
Andryshok
можешь сделать минимальный пример, я поковыряю на выходных?
Насколько я помню, там особых проблем не должно быть.
Автор: Cryogen2003
Дата сообщения: 11.04.2014 16:55
G787
Сделал как ты предложил, вообщем получается так.
Создается первый mdichild, все как раньше. Вроде меню смержилось, но в child все равно показывается. Создал второй mdichild и в обоих child меню смержилось и пропало.
Как сделать так, чтобы при первом открытии оно мержилось и пропадало?

И вопрос еще в вдогонку, как отловить переключение табов в этом компоненте? Или только через FormActive?
Автор: Andryshok
Дата сообщения: 14.04.2014 20:14
jonikDk - так какой тут пример - обычная Dll с одной формой вызываемая из самого обычного exe шника
Товарищи - вопрос по работе скинов дев в DLL все еще актуален...., неужели никто еще с этим не сталкивался? Не может быть такого что я один модульные приложения пишу .....
Автор: ChSerg
Дата сообщения: 14.04.2014 23:27

Цитата:
Не может быть такого что я один модульные приложения пишу

Тоже в детстве этим баловался...
Только если Вы делаете один ЕХЕ и несколько DLL без динамической линковки BPL, то получается совсем не айс, потому как каждая такая DLL-ка содержит в себе практическу всю VCL.
Если же использовать динамическую линковку BPL, то все выглядит нормально, за исключением возни с этими же DLL-ками и BPL-ками, которые надо таскать за ЕХЕ-шником, отслеживать их версионность между собой и самим ЕХЕ-шником и т.д. ИМХО
Автор: Andryshok
Дата сообщения: 15.04.2014 06:11
ChSerg Как то не критично в нынешнее время 4-5 DLL пусть даже они будут весить метра по 3 , а если еще и пережать их то меньше одного.... для проекта который состоит из главного модуля и 4 дополнительных (опциональных), которые могут быть не включены вовсе или не куплены клиентом )


Цитата:
Тоже в детстве этим баловался...
- так если баловались - дайте кусочек кода в студию
Автор: ChSerg
Дата сообщения: 15.04.2014 06:42
Andryshok

Цитата:
Как то не критично...

Согласен.
"Кусочки кода" посмотрю в архивах - давно это было...
Автор: jonikDk
Дата сообщения: 15.04.2014 09:14
Andryshok
я года два назад делал и не помню чтобы у меня возникали проблемы. Но у меня скины загружались из файла.
Автор: ChSerg
Дата сообщения: 15.04.2014 13:31
Andryshok
Ребята из девелопер экспрес говорят, что если комбинация такая:
основной ехе-шник + dll-ки без динамической линковки, то каждая dll-ка должна иметь свой скин-контроллер и при переключении скина в ехе-шнике надо синхронизировать скин-контроллеры dll-лек. То есть получается, если сами скины линкуются в ехе, то те же скины надо линковать и в dll-ки, что совсем невесело... Проще их подгружать снаружи.
Автор: jonikDk
Дата сообщения: 15.04.2014 13:36

Цитата:
То есть получается, если сами скины линкуются в ехе, то те же скины надо линковать и в dll-ки, что совсем невесело... Проще их подгружать снаружи.

Точно уже не помню, но скорее всего из-за этого и был выбран вариант хранения скинов в файле.
Автор: Andryshok
Дата сообщения: 15.04.2014 20:09
jonikDk так пусть они где угодно хранятся.... проблема в том что они не хотят инициализироваться вообще...

Автор: ChSerg
Дата сообщения: 15.04.2014 23:51
Andryshok
Все нормально инициализируется. Вот примерчик по-быстрому набросал:
_http://www.datafilehost.com/d/af5b8d9c
Пароль стандартный.
Автор: svs123456789
Дата сообщения: 21.04.2014 10:06
не подскажите как получить значение первичного ключа у dataset связанного c TcxGrid - по выбранной пользователем строке грида ?
Автор: dred2k
Дата сообщения: 21.04.2014 10:40
svs123456789

Код:
<DBTableView>.DataController.Values[<DBTableView>.DataController.GetFocusedRecordIndex, <DBTableView>.DataController.GetItemByFieldName(<имя поля первичного ключа датасета>).Index]

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.