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

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



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
упсс .  Глючит меня .
 
Как выводить DateTime  в ячейке cxGrid  например  в формате  dd/mm/yy

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 20:39 01-10-2009
Perets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос, может кто знает.
Пытаюсь освоить cxGridDBBandedTableView, где одна колонка берется из SQL запроса, вторая - просто CheckBox, то есть с БД не связана.
Заполняю все чекбоксы False-ами, запускаю. При проставлении галки в любом чекбоксе остальные изменяются на Null. С чем это может быть связано и как с этим бороться?

Всего записей: 120 | Зарегистр. 02-05-2006 | Отправлено: 20:40 01-10-2009
Chukotka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
QuantumTreeList - как получить данные о видимости и размере полосок скроллбаров?

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 20:50 01-10-2009
FunCode



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

Цитата:
Такой вопрос, может кто знает.
Пытаюсь освоить cxGridDBBandedTableView, где одна колонка берется из SQL запроса, вторая - просто CheckBox, то есть с БД не связана.
Заполняю все чекбоксы False-ами, запускаю. При проставлении галки в любом чекбоксе остальные изменяются на Null. С чем это может быть связано и как с этим бороться?

что значит не связан с БД, такое возможно, но только косвенно, потому как у Grid нет такого состояния когда одновременно и связанные и несвязанные поля ... я обычно делаю так в таких случаях, текст SQL запроса к примеру такой
SELECT id, name, CAST(0 AS bit) AS checkfield FROM MyTable (вариант для MS SQL)
 
Добавлено:
Chukotka

Цитата:
QuantumTreeList - как получить данные о видимости и размере полосок скроллбаров?
 

что имеется ввиду под размером полосок ? если визуально, то они будут соотвественно Height и Width самого TreeLista ... а насчет видимости, так там же помоему по аналогии с GridView выставляется в OptionsView.ScrollBars их отображение ... (просто сейчас поставил 2010 и Tree не ставил пока, поэтому точного названия этого свойства сказать не могу)

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 21:33 01-10-2009 | Исправлено: FunCode, 21:43 01-10-2009
Perets



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

Цитата:
что значит не связан с БД, такое возможно, но только косвенно, потому как у Grid нет такого состояния когда одновременно и связанные и несвязанные поля ...

А что значит косвенно? GridDBBandedTableView как раз и создан для существования  колонок, с базой не связанных. В свойстах столбца задается только тип и никакой видимой привязки к полям БД. В Демо есть проект UnboundColumnsDemo, там такого как у меня не происходит, правда грид связан с таблицей, а не с запросом.
Может дело как раз в этом...

Всего записей: 120 | Зарегистр. 02-05-2006 | Отправлено: 21:50 01-10-2009
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Perets
Сейчас нет возможности поставить демки, но с удовольствием посмотрю, потому как не слышал про unbound mode при подключенных данных, потому как вроде из названия следует, что он и есть unbound mode, может для столбцов сейчас сделали ... А KeyField точно прописан в DataControllere ?

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 21:58 01-10-2009 | Исправлено: FunCode, 21:58 01-10-2009
Perets



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

Цитата:
А KeyField точно прописан в DataControllere ?

В DataControllere таблицы никаких полей не прописано.
У столбцов есть DataBinding, так у того, кто связан с запросом, KeyFieldName прописан и значение поля в гриде отображается.
У второго, который чекбокс, прописан только тип boolean и есть свойства чекбокса.

Всего записей: 120 | Зарегистр. 02-05-2006 | Отправлено: 22:10 01-10-2009
Chukotka

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

Цитата:
что имеется ввиду под размером полосок ? если визуально, то они будут соотвественно Height и Width самого TreeLista...
Глупости. Какое, по-вашему, значение Width будет у VScrollBar?

Цитата:
...а насчет видимости, так там же помоему по аналогии с GridView выставляется в OptionsView.ScrollBars их отображение
Это свойство для возможности отображения - но скроллбар появляется, только если список не полностью помещается в размерах контрола по вертикали и горизонтали соответственно.

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 22:34 01-10-2009 | Исправлено: Chukotka, 22:35 01-10-2009
vladman

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

Цитата:
Пытаюсь освоить cxGridDBBandedTableView, где одна колонка берется из SQL запроса, вторая - просто CheckBox, то есть с БД не связана.  

По-моему эта статья уже стала христоматийной - How to set up an unbound item in a data-aware View
FunCode

Цитата:
что значит не связан с БД, такое возможно, но только косвенно, потому как у Grid нет такого состояния когда одновременно и связанные и несвязанные поля

Пожалуйста, проверяйте свои утверждения до публикации на паблике, и не вводите, тем более тех, кто только пытается освоить, в заблуждение.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 23:48 01-10-2009
Perets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
Вот спасибо, выручил. =))
Оказывается я не сделал аж две вещи:
.DataController.DataModeController.SmartRefresh := True;
.DataController.KeyFieldNames := 'aUniqueField';
Попеременно включал, а обе сразу не догадался.
Теперь все заработало.

Всего записей: 120 | Зарегистр. 02-05-2006 | Отправлено: 00:03 02-10-2009 | Исправлено: Perets, 00:05 02-10-2009
vladman

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

Цитата:
Можно ли TcxGridPopupMenu повесить так чтобы он вызывался только на определенном столбце (поле БД)  

Можно, обрабатывайте событие OnPopup вашего TcxGridPopupMenu  

Код:
 
procedure <YourForm>.<YourcxGridPopupMenu>Popup(ASenderMenu: TComponent; AHitTest: TcxCustomGridHitTest; X, Y: Integer; var
    AllowPopup: Boolean);
begin
  AllowPopup := (AHitTest is TcxGridColumnHeaderHitTest ) and
      (TcxGridDBColumn(TcxGridColumnHeaderHitTest(AHitTest).Column).DataBinding.FieldName = '<YourColumnName>');
end;
 

 
Добавлено:
SIgor33

Цитата:
Можно ли поменять картинку у кнопки в таблице и сделать в ней надпись при этом не использовать  в  Properties  tcxButtonEdit  

Не совсем понятен вопрос, уточните. Что вы имеете ввиду под "кнопкой в таблице"
 
Добавлено:
JohnSilver182

Цитата:
Я так понял  что cxGridCellTextOffset прямо в исходниках Девок забит  

ant0ni02004

Цитата:
cxGridCellTextOffset:integer = 2;
а дальше присваивать сколько нужно  

Это подойдет если во всех гридах нужен одинаковый CellTextOffset. В случае, если нужно для определенного грида/столбца сделать CellTextOffset отличный от стандартного - обрабатывайте, как уже советовалось, событие OnCustomDrawCell используя процедуру TcxCanvas.DrawText(const Text: string; R: TRect; Flags: Integer; Enabled: Boolean = True); изменяя параметр R: TRect сможете изменять отступы текста в ячейке.
 
Добавлено:
JohnSilver182

Цитата:
Как выводить DateTime  в ячейке cxGrid  например  в формате  dd/mm/yy

Если для всех гридов модуля/приложения - используйте  

Код:
uses
  cxFormats;
 
initialization
  ShortDateFormat := 'dd/mm/yy';
  cxFormatController.UseDelphiDateTimeFormats := True;

Если для одного столбца - используйте MaskEdit в качестве EditProperty с соответствующей маской
 
Добавлено:
Chukotka

Цитата:
QuantumTreeList - как получить данные о видимости и размере полосок скроллбаров?

Воспользуйтесь триком позволяющим получать доступ к protected свойствам компонента. Как-то здесь это уже обсуждалось.

Код:
 
type
  TcxTreeListAccessor = class (TcxTreeList);
...
  if TcxTreeListAccessor(<YourQuantumTreeList>).HScrollBar.Visible then
     ShowMessage(IntToStr(TcxTreeListAccessor(cxDBTreeList1).HScrollBar.Height));
  if TcxTreeListAccessor(<YourQuantumTreeList>).VScrollBar.Visible then
     ShowMessage(IntToStr(TcxTreeListAccessor(cxDBTreeList1).VScrollBar.Width));
...
 

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 00:17 02-10-2009 | Исправлено: vladman, 01:12 02-10-2009
SIgor33

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

Цитата:
procedure <YourForm>.<YourcxGridPopupMenu>Popup(ASenderMenu: TComponent; AHitTest: TcxCustomGridHitTest; X, Y: Integer; var  
    AllowPopup: Boolean);  
begin  
  AllowPopup := (AHitTest is TcxGridColumnHeaderHitTest ) and  
      (TcxGridDBColumn(TcxGridColumnHeaderHitTest(AHitTest).Column).DataBinding.FieldName = '<YourColumnName>');  
end;  
 

Спасибо за помощь. Но у тебя здесь это событие обрабатывается когда кликаешь по заголовку грида а хотелось чтобы на конкретной ячеки я понял что надо использовать  вместо TcxGridColumnHeaderHitTest  TcxGridRecordCellHitTest и застопорился подскажи выход

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 09:35 02-10-2009
vladman

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

Цитата:
хотелось чтобы на конкретной ячеки

TcxGridPopupMenu по умолчанию имеет три "места" где оно может активироваться:
- Column Header
- Footer
- Group Row
Как у вас происходит так что TcxGridPopupMenu активируется на конекретной ячейке?
Вы скорее всего дополнили встроенные меню своим PopupMenu, и у становили у него свойство HitType в том числе и в gvhtCell. Правильно ли я вас понял?

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 11:05 02-10-2009
SIgor33

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
Да вы меня правильно поняли именно это интересует.
А по поводу второго вопроса я имел то что допустим если в качестве edita используешь допустим BlobEdit и включаешь ShowEditButtons отображается кнопка в качестве рисунка у нее точки и когда наводишь на нее hint ни какой не виден. Хотелось бы поменять картинку и увидить hint  

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 11:43 02-10-2009
ZalivkoDenis



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!  
Как и у многих других, у меня ступор.  
Есть cxGrid, есть два cxGridDBTableView оформленные как master-detail, каждый View основывается на TpFIBDataSet. Также имеется некая кнопка, пускай cxButton.  
Необходимо, чтобы cxButton.Enable := False, если выбрана запись MasterDataset и, соотвественно cxButton := True, при выбранной записи DetailDataset...
Я так понимаю, что необходимо использовать для каждого cxGridDBTableView событие типа OnFocusedItemChanged? Чёт не получается :.( (уже на грани истерики). (Dev46, Multiselect=False, SyncMode=True, SmartRefresh=True, CellSelect=False).
Спасибо.

Всего записей: 537 | Зарегистр. 06-10-2005 | Отправлено: 11:57 02-10-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZalivkoDenis
В cxGrid есть свойство ActiveView.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 12:10 02-10-2009
ZalivkoDenis



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser
А не подскажете на что повесить его проверку, на какое событие?

Всего записей: 537 | Зарегистр. 06-10-2005 | Отправлено: 12:16 02-10-2009
SIgor33

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос хотелось бы для колонки в которой находиться Blob сделать так чтобы если он пуст то вне ячейке текст НЕТ Данных
Вот  нашел способ сделать для поля integer  
procedure <MainForm>.<MaincxGridDBColumn>GetDisplayText(
  Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
  var AText: String);
begin
if   ARecord.Values[Sender.Index]>3 then
  AText:='Больше трех';
  end;
А для bloba ни как не пойму что делать

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 12:24 02-10-2009 | Исправлено: SIgor33, 12:25 02-10-2009
ZalivkoDenis



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

Цитата:
В cxGrid есть свойство ActiveView.

Это свойство почему то возвращает всё время самый верхний View... Видимо, как-то по-другому нужно делать. (повесился на событие cxGrid.OnFocusedViewChanged)...
 
Проблема пока, к сожалению не решена

Всего записей: 537 | Зарегистр. 06-10-2005 | Отправлено: 12:29 02-10-2009
FunCode



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

Цитата:
Это свойство почему то возвращает всё время самый верхний View... Видимо, как-то по-другому нужно делать. (повесился на событие cxGrid.OnFocusedViewChanged)...
 
Проблема пока, к сожалению не решена  

Так а чем не устраивает OnFocusedViewChanged ?
 
Так а если просто надо узнать какой View - то не ActiveView, а FocusedView ...

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 12:30 02-10-2009 | Исправлено: FunCode, 12:44 02-10-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