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

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

Автор: Postscriptum
Дата сообщения: 07.04.2009 07:38
Еще вопрос по гриду - как в реал-тайме узнать, есть ли у данной колонки Summary? Что-то типа GridDBTableView1.Columns[i].IsSummary?
Автор: Aleksandr_N
Дата сообщения: 07.04.2009 10:57
vladman
Пока данный код проверить не могу, Вопрос только в том, будут ли сохраняться свойства поля как маскированного? Например при вызове автофильтра на маскированном поле, в диалоге автофильтра уже присутствует маска и т.д. Не будут ли теряться эти свойства? Тем более работа осложняется тем, что поля создаются динамически...
Автор: afiget
Дата сообщения: 07.04.2009 10:58
vladman
Элегантно. Причем, если для стилей такой подход знаком, то с Properties как-то сразу не догадался

Postscriptum
GridDbColumn.Summary.FooterKind
или GroupFooterKind, GroupKind отличные от skNone (в числовом выражении - больше 0)
Автор: vladman
Дата сообщения: 07.04.2009 15:04
Aleksandr_N

Цитата:
в диалоге автофильтра уже присутствует маска

Наверное, имелось ввиду диалоге *Пользовательского фильтра* (*Custom filter*). Если именно в этом диалоге, то нет, маска при вводе значения для фильтра присутствовать не будет. Но можно подумать как это обработать, если это актуально.
Да, динамическое создание полей немного сложнее, чем в дизайнтайме, но не более того. Всегда можно ведь подсмотреть в исходники как это делают ребята из ДевЭкспресс.
afiget
Спасибо за
Цитата:
Элегантно.
Автор: Aleksandr_N
Дата сообщения: 07.04.2009 16:08
vladman

Цитата:
Если именно в этом диалоге, то нет

Жалко, ну что-нибудь придумаю


Цитата:
Всегда можно ведь подсмотреть в исходники как это делают ребята из ДевЭкспресс.


Честно говоря я что-то не заметил что они там делают что-то сверхординарное - банальные примеры.
Автор: vladman
Дата сообщения: 07.04.2009 17:23
Aleksandr_N

Цитата:
Честно говоря я что-то не заметил что они там делают что-то сверхординарное - банальные примеры

Так не в примерах я предлагал подсматривать, а именно в исходниках самих компонент, ..\ExpressQuantumGrid 6\Sources\cxGridTableView.pas, например.
Автор: Aleksandr_N
Дата сообщения: 07.04.2009 17:46
vladman
Я тут ещё подумал: использовать маску типа emkRegExprEx. Но тут возникает та-же проблема. В этой маске исчезают символы типа "-", но начальные "2-24" остаются. Уточню: не запретить пользователю вводить символы кроме начальных "2-24", а именно при начале редактирования УЖЕ было "2-24". У меня не получилось создать такую маску. Не подскажете как правильно?
Автор: TechnoDreamer
Дата сообщения: 08.04.2009 01:47
Изучаю TcxDBTreeList.
Мне нужно, что бы цвет шрифта был соответствующим записи в БД (у каждого элемента есть свое поле FontColor).
Цвет я могу без проблем изменить в OnCustomDrawCell, а вот как мне узнать\прочитать его из БД? Т.е. нужно определить для какой записи компонент рисует ноду. Возможно ли такое вообще?
Автор: Postscriptum
Дата сообщения: 08.04.2009 04:51
Подскажите еще такую вещь - в реалтайме делаю Summary. Хотелось бы еще сумму по группе - чего-то не получается:

with Form1.GridDBTableView1.DataController.Summary do
begin
BeginUpdate;
try
with FooterSummaryItems.Add as TcxGridDBTableSummaryItem do
begin
s:=Pokaz.Items[Pokaz.ItemIndex];
Column:=Form1.GridDBTableView1.GetColumnByFieldName(Form1.T1.FindField(s).FieldName);
Format := 'Сумма= ,0.00;-,0.00';
Kind := skSum;
end;
finally
EndUpdate;
end;
Form1.GridDBTableView1.DataController.ClearDetails;
end;

Т.е. сделал Summary по полю Form1.T1.FindField(s).FieldName - все нормально отображается, суммируется. Теперь по группе:

with Form1.GridDBTableView1.DataController.Summary do
begin
BeginUpdate;
try
SummaryGroups.Clear;
with SummaryGroups.Add do
begin
TcxGridTableSummaryGroupItemLink(Links.Add).Column := Form1.GridDBTableView1.GetColumnByFieldName(Form1.T1.FindField(s).FieldName);
with SummaryItems.Add as TcxGridDBTableSummaryItem do
begin
Column := Form1.GridDBTableView1.GetColumnByFieldName(Form1.T1.FindField(s).FieldName);
Kind := skSum;
Format := 'Сумма= ,0.00;-,0.00';
Position:=spGroup;
end;
end;
finally
EndUpdate;
end;
Form1.GridDBTableView1.DataController.ClearDetails;

чего-то не появляется сумма по группе. В GridDBTableView1.OptionsView.GroupFooters=gfVisibleWhenExpanded
Автор: infomSB
Дата сообщения: 08.04.2009 08:14
TechnoDreamer
Конечно возможно, так пробовали ?

procedure TForm1.cxDBTreeList1CustomDrawCell(Sender: TObject; ACanvas:
TcxCanvas; AViewInfo: TcxTreeListEditCellViewInfo; var ADone: Boolean);
begin
if not VarIsNull(AViewInfo.Node.Values[<Номер колонки со значением FontColor>]) then
begin
<Рисование>
end;
end;
Автор: Postscriptum
Дата сообщения: 08.04.2009 12:48
Все, сам разобрался - теперь заработало
Последний (я надеюсь) вопрос по Гриду - пытаюсь настроить стили для грида. Настроил 3 стиля в GridDBTableView1.Styles - Header, Content и Footer. C Content все отлично - каким шрифтом и цветом настроил, таким содержимое и отображается, а с заголовком и подвалом никак не хочет. Чего-то в супе не хватает?
Автор: TechnoDreamer
Дата сообщения: 08.04.2009 13:21
infomSB, спасибо. Про ваш вариант я то думал, но у меня то не было колонки с цветом. Я как то сразу не подумал, что можно сделать скрытую колонку, а вы натолкнули на мысль.
Автор: Aleksandr_N
Дата сообщения: 08.04.2009 18:42
Сформулирую вопрос про маски cxGrid по другому. Тип маски emkRegExprEx мне что-то напоминает. Никто не вспомнит откуда они это взяли? Файла справки по маскам для меня недостаточно.
Спасибо.
Автор: Felias Fogg
Дата сообщения: 08.04.2009 19:08
по кнопкам CxVerticalGrid
добавил ряд ButtonEdit, на кнопке установил Hint.
Кнопка видима только когда активен данный ряд. когда навожу на кнопку мышку, подсказка не появляется! Как сделать, чтобы она появилась?
Автор: jicoff
Дата сообщения: 08.04.2009 19:17
Aleksandr_N

Что именно напоминает: такой тип или название? Если название, то есть такой класс TRegExpr.
Автор: Aleksandr_N
Дата сообщения: 08.04.2009 19:21
jicoff
Напоминает способ написания маски например "(\(\d\d\d\))? \d(\d\d?)? - \d\d - \d\d"

Цитата:
TRegExpr

А поконкретнее - что такое?

Добавлено:
jicoff

Цитата:
TRegExpr

Уже нашел, изучу на досуге.
Автор: greenpc
Дата сообщения: 09.04.2009 07:30
Felias Fogg
хинт появляется при наведении на caption
Автор: Postscriptum
Дата сообщения: 09.04.2009 09:01

Цитата:
Последний (я надеюсь) вопрос по Гриду - пытаюсь настроить стили для грида. Настроил 3 стиля в GridDBTableView1.Styles - Header, Content и Footer. C Content все отлично - каким шрифтом и цветом настроил, таким содержимое и отображается, а с заголовком и подвалом никак не хочет. Чего-то в супе не хватает?

Дополню свой вопрос - немного неправильно спросил - и в содержимом, и в заголовке, и в подвале меняется только начертание (гарнитура) шрифта, кегль шрифта, но не могу поменять цвет, хотя в GridDBTableView1.Styles.Content.AssignedValues стоит[svColor,svFont,svTextColor]. Вернее, поменять-то можно все, но изменения цвета не отображаются на гриде. (Ставил ParentFont в false - без разницы). Что не так?
Автор: Chukotka
Дата сообщения: 09.04.2009 09:17
Столкнулся со странным поведением DockLibrary: TdxTabContainerDockSite, содержит три закладки, на каждой закладке - TMemo. Если программно сменить dxDockController.ActiveDockControl на другую закладку, то закладка активизируется, но фокус остается на TMemo с предыдущей закладки.
Это баг али фича? И в любом случае как с этим бороться?
Автор: xokc
Дата сообщения: 09.04.2009 10:12
Chukotka
На меня вообще DockLibrary произвел глюкавое впечатление.
Автор: afiget
Дата сообщения: 09.04.2009 10:33
greenpc
Думаю, имелся ввиду другой хинт - хинт кнопки. В справке по этому поводу, кстати, ничего не написано. У меня ситуация воспроизводится: хинт на кнопке не появляется.
Автор: Felias Fogg
Дата сообщения: 09.04.2009 11:35

Цитата:
greenpc
хинт появляется при наведении на caption

Только что пробовал сделать Button.Kind - bkText, Caption - 'B1', - при наведении на Caption хинт не показывается : (
Автор: sldaac
Дата сообщения: 09.04.2009 13:21
Felias Fogg

Цитата:
хинт появляется при наведении на caption


Цитата:
Только что пробовал сделать Button.Kind - bkText, Caption - 'B1', - при наведении на Caption хинт не показывается : (


TcxGrid...ParenCustomHint -??
Автор: Felias Fogg
Дата сообщения: 09.04.2009 16:47


Цитата:
TcxGrid...ParenCustomHint -??

Я использую TcxDBVerticalGrid, ряд - ButtonEdit, TcxEditButton.Hint
В справке написано только

Цитата:

TcxEditButton.Hint
TcxEditButton
Specifies a hint message for the button.

property Hint: string;
Автор: ZBEP
Дата сообщения: 09.04.2009 21:13
Здрасте, извените если (скорее всего) не в той теме и если такой вопрос задавали, вообщем можите подсказать как сделать нормально работающию прокрутку (AutoScroll) на форме с Ribbon.
При прокрутки сдвигаются все объекты включая и сам Ribbon с сис.кнопками.
___________
П.с.
Или дайте хотяб ссыль на нужную тему, или подскажите что нить плз)
Автор: vladman
Дата сообщения: 10.04.2009 00:39
Felias Fogg

Цитата:
по кнопкам CxVerticalGrid

greenpc
afiget
Нужно установить свойство формы ShowHint = true. У себя проверил - хинт показывается при наведении на кнопку активной строки, т.е. все работает.
Но есть нюанс который мне не совсем понятен.
В SupportCenter есть BugReport - _http://www.devexpress.com/issue=B133178
Bug Report Details: TcxButtonEdit column - The column's hint is not displayed, if the ShowHint property is True
Итогом этого репорта есть - Public Fix Published for 6.42 by Developer Express Team at 1/26/2009 9:27:01 AM
Читает Release Notes для 42 билда _http://www.devexpress.com/Support/WhatsNew/VCL/files/42.xml, находим B133178 (B133178 - TcxButtonEdit column - The column's hint is not displayed, if the ShowHint property is True ) и видим, что не обманули.
Но, у меня стоит 41 билд, и все работает!
Какие у вас билды, и будет ли отображаться хинт при установке свойства формы ShowHint = true?

Добавлено:
Aleksandr_N

Цитата:
использовать маску типа emkRegExprEx...Не подскажете как правильно?

Если я правильно понял Ваши пожелания и исходя из маски "!2-24-0000;1;_", то попробуйте так - '2-24-\d\d\d\d'

Добавлено:
Postscriptum

Цитата:
но изменения цвета не отображаются на гриде. (Ставил ParentFont в false - без разницы). Что не так?

Цвет начертания шрифта (TextColor) не меняется или не меняется заливка (Background) Header'a и Footer'a?
Если первое - то все так, и цвет начертания шрифта должен меняться и у себя проверил - меняется. Если второе, то скорее всего Вы используете скины, а они отрисовуют своими методами Header и Footer. Чтобы при использовании скинов изменить дефолтные цвета нужно выполнить некоторые дополнительные действия. Если это актуально, могу описать подробней.

Добавлено:
Chukotka

Цитата:
Столкнулся со странным поведением DockLibrary

Попробуйте так:
<YourTabContainerDockSite>.ActiveChild := <YourDockPanel>
Должно работать.

Добавлено:
ZBEP

Цитата:
если (скорее всего) не в той теме

Если Ribbon от DevExpress, то в самой той.
Цитата:
как сделать нормально работающию прокрутку (AutoScroll) на форме с Ribbon.

Если приведете пример либо скриншот - будет намного понятнее что Вы хотите сделать.
Автор: Postscriptum
Дата сообщения: 10.04.2009 01:38
vladman

Цитата:
Цвет начертания шрифта (TextColor) не меняется или не меняется заливка (Background) Header'a и Footer'a?

Первое!

Цитата:
Если второе, то скорее всего Вы используете скины, а они отрисовуют своими методами Header и Footer. Чтобы при использовании скинов изменить дефолтные цвета нужно выполнить некоторые дополнительные действия. Если это актуально, могу описать подробней.

Нет, скины не использую-при первой же компиляции выскакивало окно с предложением включить скины - отрубил на фиг. Или под скинами что-то другое подразумевается?
Автор: vladman
Дата сообщения: 10.04.2009 01:57
Postscriptum

Цитата:
Или под скинами что-то другое подразумевается?

Скины они и есть скины (TdxSkinController).

Цитата:
Первое!

Тогда тестовое приложение где это не работает на анализ.
Автор: Postscriptum
Дата сообщения: 10.04.2009 04:50
vladman

Цитата:
Тогда тестовое приложение где это не работает на анализ.

Блин, в тестовом приложении все работает. SkinControllera нет. Я так подозреваю, с какими-то настройками грида что-то намудрил. Грохнул грид, добавил новый с настройками по умолчанию - все работает. Ща буду разбираться - где я накосячил, чтоб потом опять на эти грабли не наступить.
Автор: neznayka3
Дата сообщения: 10.04.2009 08:19
можно в TreeList сделать также, как qip\icq отображает дерево контактов? необходимо сворачивание\разворачивание групп

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

Предыдущая тема: Delphi: tcp клиент в потоке


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