Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)

Модерирует : ShIvADeSt

ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:31 07-02-2009 | Исправлено: vladman, 14:36 24-10-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для наглядности переделал твои (на самом деле просто изменены имена)

Код:
 
void __fastcall TForm3::cxDBTreeList1Collapsed(TObject *Sender, TcxTreeListNode *ANode)
{
     if ((static_cast<TcxDBTreeList *>(Sender)->Focused()) && (ANode != NULL))  
        cxDBTreeList2->Items[ANode->RecordIndex]->Expanded = false;
};
 

Остальное само собой аналогично...

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 20:14 12-06-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Meister Floh

Цитата:
cxDBTreeList2->Items[ANode->RecordIndex]->Expanded = false;

ну повнимательнее немного - из-за того чаще всего мы ошибки и вычисляем подолгу
в моем примере я использую не Items, а Nodes - разница есть
выдержка из help по Items:

Цитата:
Provides indexed access to the collection of root level nodes within the control.

выдержка из help по Nodes:

Цитата:
Returns an object representing the control's node collection.

Так что меняем и пробуем ...

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 20:52 12-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я же написал в классе TcxTreeListNodes нету property Expanded...

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 20:59 12-06-2009 | Исправлено: Meister Floh, 21:00 12-06-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Meister Floh

Цитата:
Да только через Items, потому как в С++ нет property enabled у property Nodes - может в этом причина?

может быть ты имел ввиду Expanded ... потому как что Nodes, что Items содержат коллекцию из одних и тех же классов TcxTreeListNode ...
 
Добавлено:
Meister Floh

Цитата:
Я же написал в классе TcxTreeListNodes нету property Expanded...

а кто про него говорит, ты же обращаешься так же как к Items через индекс и получаешь TcxTreeListNode, а не TcxTreeList Nodes

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 21:01 12-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все уже сообразил вот так надо -

Код:
 
void __fastcall TForm3::cxDBTreeList1Collapsed(TObject *Sender, TcxTreeListNode *ANode)
{
     if ((static_cast<TcxDBTreeList *>(Sender)->Focused()) && (ANode != NULL))  
        cxDBTreeList2->Nodes->Items[ANode->RecordIndex]->Expanded = false;
};  
 

тонкости перевода из паскакаля в си...
 
Добавлено:
И действительно так работает.. спасибо.. Просто глубше копнуть надо было.. сам виноват

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 21:07 12-06-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Meister Floh

Цитата:
сxDBTreeList2->Nodes->Items[ANode->RecordIndex]->Expanded = false;  

а неужели вот так не работает

Код:
сxDBTreeList2->Nodes[ANode->RecordIndex]->Expanded = false;

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 21:17 12-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FunCode

Цитата:
а неужели вот так не работает  

нету property Expanded - более тонкое соблюдение наследования классов в Си.. Полиморфизм понимаешь.. Наследование.. С++
 
 
Добавлено:
Грубо говоря TcxTreeListNodes это контейнер для TcxTreeListNode, который уже в свою очередь описывает каждую ветвь, которая имеет свойство Expanded... Просто оч тяжело писать что-то с компонентами, которые написаны на паскакале, и хэлп по ним такой же и примеры тоже на нем же.. теряешь чувство целостности

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 21:25 12-06-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Meister Floh
Эх сишники, сишники - ничего против не имею, сам когда-то начинал из языков высокого уровня с си на ДВК-3, не уважал Паскаль, много приходилось писать на ассемблере, но потом волею судьбы пришлось пересесть на Delphi, но чего не отнять у Си так это компилятора который очень хороший код выдает на выходе, но следствием этого выступают я так понял ограничения описанные тобой выше ... ну это оффтоп ...
главное задача решена ...

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 22:36 12-06-2009
258268258



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый всем!
 
Вопрос по созданию наследников компонент
 
Хотел по аналогии с TCheckGroupBox, который можно найти в инете, хотел создать класс TcxCheckGroupBox. Вроде бы получилось, но
 - не получается изменить состояние CheckBox
 - Caption у cxCheckGroupBox вроде имеет свойство Transparent установленным в false
 
Ниже представляю код класса:
Текст модуля с классом

Всего записей: 94 | Зарегистр. 23-02-2008 | Отправлено: 00:00 13-06-2009 | Исправлено: 258268258, 00:01 13-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FunCode

Цитата:
с си на ДВК-3
Гы а я как сел 1989 году на си так вот и сижу..  
 
 
 
Добавлено:
Кстати тут еще вопрос назрел.. а как-бы все это настроить чтоб правильно работало, в случае если скажем cxDBTreeList1->RootValue = -1, а cxDBTreeList2->RootValue = 1 ?

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 10:14 13-06-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Meister Floh

Цитата:
Кстати тут еще вопрос назрел.. а как-бы все это настроить чтоб правильно работало, в случае если скажем cxDBTreeList1->RootValue = -1, а cxDBTreeList2->RootValue = 1 ?

ну изначально то разговор шел об одинаковых TreeList
надо смотреть ...

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 13:16 13-06-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
в ini файле True встречается только вот в этих строках:

Код:
 
cxSEditCheckBoxChecked
cxSTextTrue
scxBoolTrue
sdxTrue
 

соответственно False здесь:

Код:
 
cxSEditCheckBoxUnchecked
cxSTextFalse
scxBoolFalse
sdxFalse
 

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 08:39 15-06-2009
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь пробовал с помощью TcxShellBrowserDialog реализовать работу со StateImages? Правда у меня старые Девки, может в новых уже реализовано это.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 19:39 15-06-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
Использую в проекте TdxRibbon (типа главное меню). В нем есть несколько TdxRibbonTab. На одном из них построено выпадающее меню в качестве пункта которого использую TdxBarDateCombo. Нажимаю -> выходит календарь. Щелкаю по текущей дате, но ничего не срабатывает. Сначала другую дату тыкнешь (сработало), а потом текущую. Так работает. В чем дело?
Спасибо!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 14:34 16-06-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
выпадающее меню TdxBarSubItem? в нем TdxBarDateCombo?
что значит ничего не срабатывает? что именно должно сработать?
дата же выставляется выбранная...

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 15:18 16-06-2009
sam291074



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
Посмотри в сторону свойства ImmediateUpdate или других Immediate...
Сейчас под рукой нет на чем проверить Так что пробуй выставить в true.

Всего записей: 113 | Зарегистр. 22-03-2006 | Отправлено: 19:48 16-06-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
sam291074
Ребят, ситуация такова. К TdxRibbonTab привязываем TdxBar. На него вешаем TdxBarLargeButton. К этой кнопке привязываем TdxBarPopupMenu и кнопке в свойстве ButtonStyle  говорим, что она теперь - bsDropDown. На кнопочке появляется стрелочка. Теперь в дизайнере по этой кнопке правой клавишей мыши и в раскрывшемся списке выбираем ДОБАВИТЬ ЭЛЕМЕНТ -> TdxBarDateCombo. Т.е. - если прогу запустить, выбрать таб и нажать на кнопку, то появится календарь.  
На какое событие надо навесит код, чтоб я ткнул в любое число и у меня все заработало. Пока не пойму. Click не работает. Календарь исчезает, а событие не наступает. Exit не успевает поменять дату. Change не срабатывает первый раз. Как быть?
СПАСИБО!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 20:29 16-06-2009
sam291074



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
По логике код должен быть навешен на Change. Посмотри все-таки в Object Inspector, есть ли для Combo свойства (это вероятней всего в EditProperties), которые начинаются с Immediate (ImmediateUpdate, ImmediatePost и т.д.). Эти свойства отвечают за НЕМЕДЛЕННОЕ обновление и как правило по умолчанию они стоят в false, а, следовательно, должны быть переключены в состояние true. Я с этим сталкивался на Vertical Gride и именно с ComboBox в строках, тоже не обновлялись с первого раза, только с потерей фокуса это происходило.
Если таковых не имеется, смотри выше на контейнер, который содержит DateCombo, может у него эти события имеются.

Всего записей: 113 | Зарегистр. 22-03-2006 | Отправлено: 21:35 16-06-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sam291074
не, такого нет. копаю дальше

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 22:46 16-06-2009 | Исправлено: clear2121, 22:47 16-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет под рукой студии.. Но Думаю, что надо смотреть в сторону свойства PostEdit, а события в разделе Properties

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 23:03 16-06-2009
   

Страницы: 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)
ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru