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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volser
Да, придется править исходники - делать проверку на количество видимых колонок. Эх...

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 12:13 26-06-2009
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roma4ke
 
Не надо мучаться с конструкторами и деструкторами, если нужен только доступ к protected свойствам. Они вообще никак не учавствуют, т.к. объект не создается, а преобразуется ссылка с одного типа на другой.
 
Добавлено:
 
 
Вот работающий пример:
 
class TcxCustomGridTableItemWrapper : public TcxCustomGridTableItem
{
public:
  TcxEditStyle *__fastcall GetCellStyle(void)
  {
    return TcxCustomGridTableItem::GetCellStyle();
  }
};
 
 
{
...  ((TcxCustomGridTableItemWrapper*)GridViewColumn1)->GetCellStyle()->Assign(((TcxCustomGridTableItemWrapper*)GridViewColumn2)->GetCellStyle());
...
}
 
Проверял в проекте, никаких ошибок и проблем. Под рукой не было TcxEditStyle стиля, поэтому просто написал ((TcxCustomGridTableItemWrapper*)GridViewColumn2)->GetCellStyle().
 
 
Кстати, вместо TcxCustomGridTableItem(cxGrid1TableView1Column1).Styles->Assign(cxButtonEdit1->Style), что однозначно не правильно, надо писать ((TcxCustomGridTableItem*)cxGrid1TableView1Column1)->Styles->Assign(cxButtonEdit1->Style). За работоспособность не отвечаю, но ошибок не должно быть.
 

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 12:46 26-06-2009 | Исправлено: jicoff, 13:21 26-06-2009
Roma4ke

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volser
Версия 6.0.
создал класс.  
  class TcxCustomGridTableItemWrapper : public  TcxCustomGridTableItem
    {
 
       public:
     inline __fastcall virtual  TcxCustomGridTableItemWrapper(TComponent* AOwner):TcxCustomGridTableItem(AOwner)
     {TcxCustomGridTableItem::TcxCustomGridTableItem(AOwner);}
     inline __fastcall virtual  ~TcxCustomGridTableItemWrapper () {TcxCustomGridTableItem::~TcxCustomGridTableItem();}
 
    }   ;
 
потом пишу так :  
TcxCustomGridTableItem *Hel;
          TcxCustomGridTableItemWrapper(Hel).GetCellStyle();  -- getCellStyle все не доступен.
 
Добавлено:
jicoff
спасибо разъяснил, но ошибка вылетает  аксес валейшн в адресе таком то в модуле cxGrid6.bpl

Всего записей: 21 | Зарегистр. 24-06-2009 | Отправлено: 15:50 26-06-2009
volser

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

Цитата:
Версия 6.0

 
А точнее? Какой билд?
 
То что написал jicoff не работает?

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:00 26-06-2009
Roma4ke

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
исправился, ошибка не вылетает ,но стиль не задается ((
пишу :
 ((TcxCustomGridTableItemWrapper*)tvTestGoPaus(моя колонка))->GetCellStyle()->Assign(cxButtonEdit1->Style);

Всего записей: 21 | Зарегистр. 24-06-2009 | Отправлено: 16:06 26-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roma4ke
На какое событие пишешь код?
И выложи наконец код того что у тебя получилось. Телепатические способности на исходе

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:10 26-06-2009 | Исправлено: volser, 16:12 26-06-2009
Roma4ke

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  class TcxCustomGridTableItemWrapper : public  TcxCustomGridTableItem
    {
 
      public:
 
         TcxEditStyle *__fastcall GetCellStyle(void)
  {
    return TcxCustomGridTableItem::GetCellStyle();
  }
     inline __fastcall virtual  TcxCustomGridTableItemWrapper(TComponent* AOwner):TcxCustomGridTableItem(AOwner)
     {TcxCustomGridTableItem::TcxCustomGridTableItem(AOwner);}
     inline __fastcall virtual  ~TcxCustomGridTableItemWrapper () {TcxCustomGridTableItem::~TcxCustomGridTableItem();}
 
    }   ;
 
 
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
 
         cxGrid1->DoubleBuffered = true;
 
 
  for (int i=0; i< 7; i++)
        {
        tvBasicTest->DataController->InsertRecord(i);
        tvBasicTest->DataController->Values[i][0] = i + 1 ;
        tvBasicTest->DataController->Values[i][5] = "00:00:00" ;
        tvBasicTest->DataController->Values[i][3] = "00:00:00" ;
        cxEditRepository1->CreateItem(__classid(TcxEditRepositoryButtonItem));
        cxEditRepository1->Items[i+1]->Properties = cxEditRepository1ButtonItem1->Properties;
 
 
        }
 
    ((TcxCustomGridTableItemWrapper*)tvTestGoPaus)>GetCellStyle()>Assign(cxButtonEdit1->Style);
 
}
ну впринципе вот , создаю грид, создаю рекорды ,пытаюсь назначить стиль кнопкам
 
Добавлено:
как будто Assign не работает , просто игнорируется.

Всего записей: 21 | Зарегистр. 24-06-2009 | Отправлено: 16:16 26-06-2009
volser

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

Цитата:
((TcxCustomGridTableItemWrapper*)tvTestGoPaus)>GetCellStyle()>Assign(cxButtonEdit1->Style);  

 
Это реальная строка или писал по памяти?

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:30 26-06-2009
Roma4ke

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
реальная строка, ((TcxCustomGridTableItemWrapper*)tvTestGoPaus)->GetCellStyle()->Assign(cxButtonEdit1->Style);  
еще вот так пытался.
TcxEditStyle *h = ((TcxCustomGridTableItemWrapper*)tvTestGoPaus)->GetCellStyle();
         TcxEditStyle *s =  cxButtonEdit1->Style;
         h->Assign(s);
 
ошибок не выдаёт, но assign не срабатывает ((

Всего записей: 21 | Зарегистр. 24-06-2009 | Отправлено: 16:36 26-06-2009
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Roma4ke
 
А что должно быть на выходе? Если глянуть в исходники (под рукой только 40 версия), то метод Assign затрагивает мемберы:
 
  FButtonStyle
  FButtonTransparency
  FGradient
  FGradientButtons
  FGradientDirection
  FPopupBorderStyle
  FPopupCloseButton
 
 
Добавлено:
Ошибся, там еще родительский метод вызывается.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 18:11 26-06-2009
Neogar

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый.. Использую в Builder 2009 TcxSpreadSheetBook. Все было нормально до тех пор пока не подключил Fastreport. При компиляции выдает:
 
(590): E2015 Ambiguity between 'fsSolid' and 'Cxsstypes::fsSolid'
(590): W8006 Initializing TcxSSFillStyle with TfrxFrameStyle
 
Посмотрел - действительно fsSolid есть в devExpress
cxSSTypes.hpp
....
#pragma option push -b-
enum TcxSSFillStyle { fsSolid, fsGray75, fsGray50, fsGray25, fsGray12, fsGray6, fsHorzStrip, fsVertStrip, fsRevDiagonalStrip, fsDiagonalStrip, fsDiagCrossHatch, fsThickCrossHatch, fsThinHorzStrip, fsThinVertStrip, fsThinRevDiagonalStrip, fsThinDiagonalStrip, fsThinDiagCrossHatch, fsThinThickCrossHatch };
#pragma option pop
.....
 
 и в FastReport  
Frxclass.hpp
....
#pragma option push -b-
enum TfrxFrameStyle { fsSolid, fsDash, fsDot, fsDashDot, fsDashDotDot, fsDouble, fsAltDot, fsSquare };
#pragma option pop
....
 
Подскажите, что можно сделать? namespace?

Всего записей: 199 | Зарегистр. 03-09-2004 | Отправлено: 16:57 28-06-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neogar
ну если когда либо попадалось одинаковое название типов переменных то писали namespace вначале, но как быть с членами перечисляемого типа хз... ну давно бы попробовал уже namespace дописать и с нами поделиться результатом...

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
Сорри, сам ступил.. namespace'ы там есть
в юните поменял везде
типа
 
SetCellPattern(2, 27, 3, 32, 19, 5, fsSolid);
на
SetCellPattern(2, 27, 3, 32, 19, 5, Cxsstypes::fsSolid);
 
и все ОК...

Всего записей: 199 | Зарегистр. 03-09-2004 | Отправлено: 11:06 29-06-2009 | Исправлено: Neogar, 11:09 29-06-2009
ecix

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

Цитата:
ecix  
 
Цитата:Как можно отледить события сортировки или группировки колонок? ... События cxGrid.DataController.OnSortingChanged и OnGroupingChanged не вызываются  
 
Именно этими событиями и можно отследить. Только что проверил - обрабатываются. Может у вас что-то специфическое? Давайте пример кода, попробуем разобраться.

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

Цитата:
ecix  
 
Цитата:Как можно перечислить строки в cxGrid в том порядке...  
 
Посмотреть в сторону TcxCustomDataController.ForEachRow

 
Эта функция перечисляет только ВИДИМЫЕ строки, а нужны и НЕВИДИМЫЕ (не развернутые значком "+"). Видимые, кстати, можно без просто перечислить в цикле как Grid.ViewData.Records[x].

Всего записей: 3 | Зарегистр. 19-02-2009 | Отправлено: 14:14 29-06-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, кто подскажет есть у меня cxComboBox в нем список таблиц в БД, если в пропертиз ставлю ридонли, то редактировать имя таблицы нельзя - то, что мне и нужно, но и выбрать другое значение из списка тоже нельзя.. А мне нужно менять значение, только теми, что в списке, но запретить возможность что-либо набирать с клавиатуры - кто чего подскажет?

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скажите кто знает, как сделать так что бы значение в ячейке устанавливались ,только тогда жмешь кнопку enter, а то у ихнем гриде , сменил фокус и значение уже занесено в ячейку.

Всего записей: 21 | Зарегистр. 24-06-2009 | Отправлено: 16:45 29-06-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meister Floh
TcxComboBox.Properties.DropDownListStyle = lsEditFixedList ?
 
Добавлено:
Roma4ke
вообще то это не в ихнем гриде, а в любом датасете такое поведение... так что тут отлавливать например событие OnBeforePost например... или какое либо другое

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 17:21 29-06-2009
Meister Floh



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

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 20:13 29-06-2009 | Исправлено: Meister Floh, 20:14 29-06-2009
vladman

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

Цитата:
Посмотреть в сторону TcxCustomDataController.ForEachRow ...
Эта функция перечисляет только ВИДИМЫЕ строки, а нужны и НЕВИДИМЫЕ

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

Цитата:
 It takes into account data records and grouping rows which are visible or potentially visible by scrolling (i.e. not hidden in a collapsed group). You can use the MakeRecordVisible method first to make a particular record visible if it is hidden within a collapsed group.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 20:38 29-06-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!!!
В проекте использую TcxTreeList. Делаю колонки. В одной из них хочу отобразить картинку из листа. При нажатии на строку буду менять картинку в этом столбце. Пробую, не получается. Подскажите (по пунктам 1,2,3...) что надо сделать.  
 
Указал, что столбец типа ГРАФ, а куда указать на индекс картинки из ИМАДЖЛИСТ не могу найти.
СПАСИБО!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 07:28 30-06-2009 | Исправлено: clear2121, 07:39 30-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-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru