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

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

Автор: vladman
Дата сообщения: 18.01.2010 14:38
AvGSoft

Цитата:
Пробывал не помогает.

только что проверил у себя, все работает, правда версия 47.
Вы уверены, что выполняете что-то вроде этого?

Код: <Your>cxDBTreeList.FocusedNode := <Your>cxDBTreeList.FindNodeByText(...)
<Your>cxDBTreeList.FocusedNode.MakeVisible;
Автор: Cryogen2003
Дата сообщения: 18.01.2010 15:20
vladman
Стоит это свойство. И не работает
Автор: fortezza
Дата сообщения: 18.01.2010 15:49
как в cxGrid можно заблокировать (сделать только для чтения) записи с датой до текущей?
Автор: SIgor33
Дата сообщения: 18.01.2010 15:56
fortezza
отследить события вставки редактированя и удаления у датасета
Автор: AvGSoft
Дата сообщения: 18.01.2010 16:01
vladman
Спасибо получилось

Код: void __fastcall TfrmSelectNode::FindNode(bool Forward, bool StartFrom, bool IgnoreSel)
{
TcxTreeListNode* ACurrentNode, *ANode, *AParent;

ACurrentNode = NULL;

if (StartFrom)
ACurrentNode = dbtlNodes->FocusedNode;

ANode = dbtlNodes->FindNodeByText(teSearch->Text,clnICN,ACurrentNode,false,Forward,false,
        TcxTreeListFindMode(1),NULL,IgnoreSel);

if (ANode!=NULL)
{
// ANode->MakeVisible(); -> стормозил
dbtlNodes->FocusedNode = ANode;
dbtlNodes->FocusedNode->MakeVisible();
}
}
Автор: vladman
Дата сообщения: 18.01.2010 16:12
Cryogen2003

Цитата:
Стоит это свойство. И не работает

А у TcxCustomGridTableItem, который отображает DateTime, это свойство установлено в True?

Добавлено:
Cryogen2003
Лучше, конечно, посмотреть ваш пример где это не работает.

Добавлено:
fortezza

Цитата:
как в cxGrid можно заблокировать (сделать только для чтения) записи с датой до текущей?

Например, можно обработать событие onFocusedRecordChanged вашего TableView:

Код: procedure <YourForm>.<YourGridTableView>FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
Sender.OptionsData.Deleting := not (AFocusedRecord.Values[<YourGridDateColumn>.index] < Today);
Sender.OptionsData.Editing := not (AFocusedRecord.Values<YourGridDateColumn>.index] < Today);
end;
Автор: Cryogen2003
Дата сообщения: 19.01.2010 08:01
vladman
По поводу TcxCustomGridTableItem - это куда копать то? У меня TkbmMemTable
Автор: AvGSoft
Дата сообщения: 19.01.2010 08:31
Еще вопрос можно ли изменить в критерии поиска символ '%' на '*' без изменения исходников в cxTL.pas

Код:
if LikeParams = nil then
begin
APercent := '%';
AUnderline := '_';
end

Автор: SIgor33
Дата сообщения: 19.01.2010 10:18
Cryogen2003

Цитата:
По поводу TcxCustomGridTableItem - это куда копать то? У меня TkbmMemTable

значит вам надо к производителю TkbmMemTable или переходите на девок
Автор: Cryogen2003
Дата сообщения: 19.01.2010 10:21
SIgor33
Ну ок, конкретно в этом проекте можно в этом месте перейти и на MemTable от девок. Просто в части третьей этого тома по поводу использования DevExpress, каждый первый сказал, что лучше TkbmMemTable пользоваться, чем MemTable от девок. Вот и остался на TkbmMemTable.
Автор: vladman
Дата сообщения: 19.01.2010 10:50
Cryogen2003

Цитата:
По поводу TcxCustomGridTableItem - это куда копать то? У меня TkbmMemTable

TcxCustomGridTableItem - это базовый класс для колонки TableView, и нет никакой разницы, в данном случае, что вы используете в качестве источника данных для их отображения в TableView. Выберите вашу колонку, которая отображает DateTime, и проверьте ее свойство Options.IgnoreTimeForFiltering. Должно быть True в вашем случае.
Автор: Cryogen2003
Дата сообщения: 19.01.2010 10:57
vladman
Вот мой код:
[more=Код DFM]object dbgCorrespondence: TcxGrid
Left = 0
Top = 0
Width = 669
Height = 524
Align = alClient
TabOrder = 0
DragOpening = False
LevelTabs.Style = 7
LookAndFeel.Kind = lfFlat
RootLevelOptions.TabsForEmptyDetails = False
object dbgCorrespondenceDBTableView1: TcxGridDBTableView
OnDblClick = dbgCorrespondenceDBTableView1DblClick
NavigatorButtons.OnButtonClick = dbgCorrespondenceDBTableView1NavigatorButtonsButtonClick
NavigatorButtons.ConfirmDelete = False
NavigatorButtons.First.Hint = #1055#1077#1088#1074#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.PriorPage.Hint = #1055#1077#1088#1077#1081#1090#1080' '#1085#1072' '#1087#1088#1077#1076#1099#1076#1091#1097#1091#1102' '#1089#1090#1088#1072#1085#1080#1094#1091
NavigatorButtons.PriorPage.Visible = True
NavigatorButtons.Prior.Hint = #1055#1088#1077#1076#1099#1076#1091#1097#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Next.Hint = #1057#1083#1077#1076#1091#1102#1097#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.NextPage.Hint = #1055#1077#1088#1077#1081#1090#1077' '#1085#1072' '#1089#1083#1077#1076#1091#1102#1097#1091#1102' '#1089#1090#1088#1072#1085#1080#1094#1091
NavigatorButtons.NextPage.Visible = True
NavigatorButtons.Last.Hint = #1055#1086#1089#1083#1077#1076#1085#1103#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Last.Visible = True
NavigatorButtons.Insert.Hint = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1079#1072#1087#1080#1089#1080
NavigatorButtons.Insert.Visible = False
NavigatorButtons.Append.Hint = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1079#1072#1087#1080#1089#1080' '#1074' '#1082#1086#1085#1077#1094
NavigatorButtons.Append.Visible = False
NavigatorButtons.Delete.Hint = #1059#1076#1072#1083#1080#1090#1100' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Delete.Visible = False
NavigatorButtons.Edit.Hint = #1056#1077#1076#1072#1082#1090#1080#1088#1086#1074#1072#1085#1080#1077' '#1079#1072#1087#1080#1089#1080
NavigatorButtons.Edit.Visible = False
NavigatorButtons.Post.Hint = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1080#1079#1084#1077#1085#1077#1085#1080#1103
NavigatorButtons.Post.Visible = False
NavigatorButtons.Cancel.Hint = #1054#1090#1084#1077#1085#1072' '#1080#1079#1084#1077#1085#1077#1085#1080#1081
NavigatorButtons.Cancel.Visible = False
NavigatorButtons.Refresh.Hint = #1054#1073#1085#1086#1074#1080#1090#1100
NavigatorButtons.SaveBookmark.Hint = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1079#1072#1082#1083#1072#1076#1082#1091
NavigatorButtons.GotoBookmark.Hint = #1055#1077#1088#1077#1081#1090#1080' '#1082' '#1079#1072#1082#1083#1072#1076#1082#1077
NavigatorButtons.Filter.Hint = #1060#1080#1083#1100#1090#1088
NavigatorButtons.Filter.Visible = False
FilterBox.CustomizeDialog = False
FilterBox.Position = fpTop
FilterBox.Visible = fvNever
OnCustomDrawCell = dbgCorrespondenceDBTableView1CustomDrawCell
DataController.DataModeController.SmartRefresh = True
DataController.DataSource = dsCorrespondence
DataController.Filter.Options = [fcoCaseInsensitive, fcoSoftNull, fcoSoftCompare]
DataController.Filter.Active = True
DataController.Filter.AutoDataSetFilter = True
DataController.Filter.TranslateBetween = True
DataController.Filter.TranslateIn = True
DataController.Filter.TranslateLike = True
DataController.Options = [dcoAnsiSort, dcoCaseInsensitive, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
DateTimeHandling.IgnoreTimeForFiltering = True
Filtering.ColumnFilteredItemsList = True
FilterRow.InfoText = #1053#1072#1078#1084#1080#1090#1077' '#1079#1076#1077#1089#1100', '#1095#1090#1086#1073#1099' '#1085#1072#1089#1090#1088#1086#1080#1090#1100' '#1092#1080#1083#1100#1090#1088
OptionsBehavior.GoToNextCellOnEnter = True
OptionsBehavior.IncSearch = True
OptionsBehavior.NavigatorHints = True
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnsQuickCustomization = True
OptionsCustomize.ColumnsQuickCustomizationReordering = qcrEnabled
OptionsCustomize.DataRowSizing = True
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Editing = False
OptionsData.Inserting = False
OptionsSelection.CellMultiSelect = True
OptionsView.Navigator = True
OptionsView.NoDataToDisplayInfoText = #1054#1090#1089#1091#1090#1089#1090#1074#1091#1102#1090' '#1076#1072#1085#1085#1099#1077
OptionsView.CellAutoHeight = True
OptionsView.GroupByBox = False
OptionsView.HeaderAutoHeight = True
OptionsView.Indicator = True
object dbgCorrespondenceDBTableView1Column1: TcxGridDBColumn
Caption = #1048#1044
DataBinding.FieldName = 'mail_id'
HeaderAlignmentVert = vaCenter
Width = 47
end
object dbgCorrespondenceDBTableView1Column2: TcxGridDBColumn
Caption = #1053#1086#1084#1077#1088' '#1087#1080#1089#1100#1084#1072
DataBinding.FieldName = 'mail_number'
HeaderAlignmentVert = vaCenter
Width = 97
end
object dbgCorrespondenceDBTableView1Column3: TcxGridDBColumn
Caption = #1044#1072#1090#1072' '#1089#1082#1072#1085#1080#1088#1086#1074#1072#1085#1080#1103
DataBinding.FieldName = 'create_date'
DateTimeGrouping = dtgByDateAndTime
HeaderAlignmentVert = vaCenter
Width = 146
end
object dbgCorrespondenceDBTableView1Column9: TcxGridDBColumn
Caption = #1044#1072#1090#1072' '#1086#1090#1087#1088#1072#1074#1082#1080' '#1087#1086#1083#1091#1095#1072#1090#1077#1083#1102
DataBinding.FieldName = 'senddate'
DateTimeGrouping = dtgByDateAndTime
HeaderAlignmentVert = vaCenter
Width = 146
end
object dbgCorrespondenceDBTableView1Column4: TcxGridDBColumn
Caption = #1064#1090#1088#1080#1093'-'#1082#1086#1076
DataBinding.FieldName = 'barcode'
HeaderAlignmentVert = vaCenter
Width = 127
end
object dbgCorrespondenceDBTableView1Column10: TcxGridDBColumn
Caption = #1042#1080#1076' '#1086#1090#1087#1088#1072#1074#1080#1090#1077#1083#1103
DataBinding.FieldName = 'typesender_str'
HeaderAlignmentVert = vaCenter
Width = 110
end
object dbgCorrespondenceDBTableView1Column5: TcxGridDBColumn
Caption = #1056#1077#1075#1080#1089#1090#1088#1072#1090#1086#1088
DataBinding.FieldName = 'emp_fio'
HeaderAlignmentVert = vaCenter
Width = 212
end
object dbgCorrespondenceDBTableView1Column7: TcxGridDBColumn
Caption = #1055#1086#1083#1091#1095#1072#1090#1077#1083#1100
DataBinding.FieldName = 'login_receiver'
HeaderAlignmentVert = vaCenter
Width = 130
end
object dbgCorrespondenceDBTableView1Column8: TcxGridDBColumn
Caption = #1055#1086#1083#1091#1095#1072#1090#1077#1083#1100' ('#1082#1086#1087#1080#1103')'
DataBinding.FieldName = 'login_receivercc'
HeaderAlignmentVert = vaCenter
Width = 130
end
object dbgCorrespondenceDBTableView1Column6: TcxGridDBColumn
Caption = #1057#1090#1072#1090#1091#1089' '#1087#1080#1089#1100#1084#1072
DataBinding.FieldName = 'mail_status_str'
HeaderAlignmentVert = vaCenter
Width = 139
end
end
object dbgCorrespondenceLevel1: TcxGridLevel
GridView = dbgCorrespondenceDBTableView1
end
end
[/more]
Автор: X11
Дата сообщения: 19.01.2010 12:06
Есть dxBarManager1 и bxBar в качестве главного меню.
Подскажите, пожалуйста, как можно закрасить пункты подменю (cxBarEditItem1) и изменять цвет текста. Т.е. нужно менять цвет текста и цвет фона.
Спасибо.
Автор: vladman
Дата сообщения: 19.01.2010 12:26
AvGSoft

Цитата:
Еще вопрос можно ли изменить в критерии поиска символ '%' на '*' без изменения исходников в cxTL.pas

Можно. Приведенный код из cxTL.pas дает хорошую подсказку как это сделать.
Вы, скорее всего, выполняете поиск посредством функции FindNodeByText.
Один из параметров этой функции является ALikeParams: TcxTreeListLikeParams = nil.
Перед вызовом этой функции создайте объект <YourLikeParams>: TcxTreeListLikeParams, например так: <YourLikeParams> := TcxTreeListLikeParams.Create('*', '_');
и передайте его как параметр функции FindNodeByText
Автор: X11
Дата сообщения: 19.01.2010 12:27
Вообще что нужно. CxGrid выводит записи. Некоторые записи выводятся разными стилями.
Например:
Красный шрифт обычный фон
Зелёный фон обычный шрифт
Коричневый фон обычный шрифт

Чтобы пользователь мог в любое время посмотреть, что означает тот или иной цветовой стиль я решил сделать пункты меню. В которых пункты будут иметь точно такие же цветовые схемы и в качестве названия будет пояснение. Ну типа запись удалена и т.д.
Автор: vladman
Дата сообщения: 19.01.2010 13:03
Cryogen2003

Цитата:
Вот мой код:

А это умышленно вы установили свойство dbgCorrespondenceDBTableView1.DataController.Filter.AutoDataSetFilter = True?
Подробнее: ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxDBDataFilterCriteria_AutoDataSetFilter.htm

Вот мой, рабочий код:
[more=Dfm]
object dbgCorrespondence: TcxGrid
Left = 0
Top = 0
Width = 920
Height = 655
Align = alClient
TabOrder = 0
DragOpening = False
LevelTabs.Style = 7
LookAndFeel.Kind = lfFlat
RootLevelOptions.TabsForEmptyDetails = False
ExplicitLeft = 8
ExplicitTop = -24
object dbgCorrespondenceDBTableView1: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
NavigatorButtons.First.Hint = #1055#1077#1088#1074#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.PriorPage.Hint = #1055#1077#1088#1077#1081#1090#1080' '#1085#1072' '#1087#1088#1077#1076#1099#1076#1091#1097#1091#1102' '#1089#1090#1088#1072#1085#1080#1094#1091
NavigatorButtons.PriorPage.Visible = True
NavigatorButtons.Prior.Hint = #1055#1088#1077#1076#1099#1076#1091#1097#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Next.Hint = #1057#1083#1077#1076#1091#1102#1097#1072#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.NextPage.Hint = #1055#1077#1088#1077#1081#1090#1077' '#1085#1072' '#1089#1083#1077#1076#1091#1102#1097#1091#1102' '#1089#1090#1088#1072#1085#1080#1094#1091
NavigatorButtons.NextPage.Visible = True
NavigatorButtons.Last.Hint = #1055#1086#1089#1083#1077#1076#1085#1103#1103' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Last.Visible = True
NavigatorButtons.Insert.Hint = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1079#1072#1087#1080#1089#1080
NavigatorButtons.Insert.Visible = False
NavigatorButtons.Append.Hint = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1079#1072#1087#1080#1089#1080' '#1074' '#1082#1086#1085#1077#1094
NavigatorButtons.Append.Visible = False
NavigatorButtons.Delete.Hint = #1059#1076#1072#1083#1080#1090#1100' '#1079#1072#1087#1080#1089#1100
NavigatorButtons.Delete.Visible = False
NavigatorButtons.Edit.Hint = #1056#1077#1076#1072#1082#1090#1080#1088#1086#1074#1072#1085#1080#1077' '#1079#1072#1087#1080#1089#1080
NavigatorButtons.Edit.Visible = False
NavigatorButtons.Post.Hint = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1080#1079#1084#1077#1085#1077#1085#1080#1103
NavigatorButtons.Post.Visible = False
NavigatorButtons.Cancel.Hint = #1054#1090#1084#1077#1085#1072' '#1080#1079#1084#1077#1085#1077#1085#1080#1081
NavigatorButtons.Cancel.Visible = False
NavigatorButtons.Refresh.Hint = #1054#1073#1085#1086#1074#1080#1090#1100
NavigatorButtons.SaveBookmark.Hint = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1079#1072#1082#1083#1072#1076#1082#1091
NavigatorButtons.GotoBookmark.Hint = #1055#1077#1088#1077#1081#1090#1080' '#1082' '#1079#1072#1082#1083#1072#1076#1082#1077
NavigatorButtons.Filter.Hint = #1060#1080#1083#1100#1090#1088
NavigatorButtons.Filter.Visible = False
FilterBox.CustomizeDialog = False
FilterBox.Position = fpTop
DataController.DataModeController.SmartRefresh = True
DataController.DataSource = DataSource1
DataController.Filter.Options = [fcoCaseInsensitive, fcoSoftNull, fcoSoftCompare]
DataController.Filter.Active = True
DataController.Filter.TranslateBetween = True
DataController.Filter.TranslateIn = True
DataController.Filter.TranslateLike = True
DataController.Options = [dcoAnsiSort, dcoCaseInsensitive, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
DateTimeHandling.IgnoreTimeForFiltering = True
Filtering.ColumnFilteredItemsList = True
FilterRow.InfoText = #1053#1072#1078#1084#1080#1090#1077' '#1079#1076#1077#1089#1100', '#1095#1090#1086#1073#1099' '#1085#1072#1089#1090#1088#1086#1080#1090#1100' '#1092#1080#1083#1100#1090#1088
OptionsBehavior.GoToNextCellOnEnter = True
OptionsBehavior.IncSearch = True
OptionsBehavior.NavigatorHints = True
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnsQuickCustomization = True
OptionsCustomize.ColumnsQuickCustomizationReordering = qcrEnabled
OptionsCustomize.DataRowSizing = True
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Editing = False
OptionsData.Inserting = False
OptionsSelection.CellMultiSelect = True
OptionsView.Navigator = True
OptionsView.NoDataToDisplayInfoText = #1054#1090#1089#1091#1090#1089#1090#1074#1091#1102#1090' '#1076#1072#1085#1085#1099#1077
OptionsView.CellAutoHeight = True
OptionsView.GroupByBox = False
OptionsView.HeaderAutoHeight = True
OptionsView.Indicator = True
object dbgCorrespondenceDBTableView1Column1: TcxGridDBColumn
Caption = #1048#1044
DataBinding.FieldName = 'f1'
HeaderAlignmentVert = vaCenter
Width = 47
end
object dbgCorrespondenceDBTableView1Column2: TcxGridDBColumn
Caption = #1053#1086#1084#1077#1088' '#1087#1080#1089#1100#1084#1072
DataBinding.FieldName = 'f2'
HeaderAlignmentVert = vaCenter
Width = 97
end
object dbgCorrespondenceDBTableView1Column3: TcxGridDBColumn
Caption = #1044#1072#1090#1072' '#1089#1082#1072#1085#1080#1088#1086#1074#1072#1085#1080#1103
DataBinding.FieldName = 'f3'
DateTimeGrouping = dtgByDateAndTime
HeaderAlignmentVert = vaCenter
Width = 146
end
object dbgCorrespondenceDBTableView1Column9: TcxGridDBColumn
Caption = #1044#1072#1090#1072' '#1086#1090#1087#1088#1072#1074#1082#1080' '#1087#1086#1083#1091#1095#1072#1090#1077#1083#1102
DataBinding.FieldName = 'f4'
DateTimeGrouping = dtgByDateAndTime
HeaderAlignmentVert = vaCenter
Width = 146
end
object dbgCorrespondenceDBTableView1Column4: TcxGridDBColumn
Caption = #1064#1090#1088#1080#1093'-'#1082#1086#1076
HeaderAlignmentVert = vaCenter
Width = 127
end
object dbgCorrespondenceDBTableView1Column10: TcxGridDBColumn
Caption = #1042#1080#1076' '#1086#1090#1087#1088#1072#1074#1080#1090#1077#1083#1103
HeaderAlignmentVert = vaCenter
Width = 110
end
object dbgCorrespondenceDBTableView1Column5: TcxGridDBColumn
Caption = #1056#1077#1075#1080#1089#1090#1088#1072#1090#1086#1088
HeaderAlignmentVert = vaCenter
Width = 212
end
object dbgCorrespondenceDBTableView1Column7: TcxGridDBColumn
Caption = #1055#1086#1083#1091#1095#1072#1090#1077#1083#1100
HeaderAlignmentVert = vaCenter
Width = 130
end
object dbgCorrespondenceDBTableView1Column8: TcxGridDBColumn
Caption = #1055#1086#1083#1091#1095#1072#1090#1077#1083#1100' ('#1082#1086#1087#1080#1103')'
HeaderAlignmentVert = vaCenter
Width = 130
end
object dbgCorrespondenceDBTableView1Column6: TcxGridDBColumn
Caption = #1057#1090#1072#1090#1091#1089' '#1087#1080#1089#1100#1084#1072
HeaderAlignmentVert = vaCenter
Width = 139
end
end
object dbgCorrespondenceLevel1: TcxGridLevel
GridView = dbgCorrespondenceDBTableView1
end
end
object dxMemData1: TdxMemData
Active = True
Indexes = <>
Persistent.Data = {
5665728FC2F5285C8FFE3F040000000400000003000300663100140000000100
0300663200080000000B000300663300080000000B0003006634000101000000
01010000003101004C7CF44CD4CC420100B06A104DD4CC420102000000010100
0000320100849FBC4CD4CC4201004428A14CD4CC420103000000010100000033
0100E8FB05FDD3CC420100E831B247D4CC42}
SortOptions = []
Left = 528
Top = 176
object dxMemData1f1: TIntegerField
FieldName = 'f1'
end
object dxMemData1f2: TStringField
FieldName = 'f2'
end
object dxMemData1f3: TDateTimeField
FieldName = 'f3'
end
object dxMemData1f4: TDateTimeField
FieldName = 'f4'
end
end
object DataSource1: TDataSource
DataSet = dxMemData1
Left = 528
Top = 208
end
[/more]

Добавлено:
X11

Цитата:
Подскажите, пожалуйста, как можно закрасить пункты подменю (cxBarEditItem1) и изменять цвет текста.

Попробуйте подход, описанный в How to change the color of a BarItem
Автор: Cryogen2003
Дата сообщения: 19.01.2010 13:31
vladman
Ой, заработал код. Удалил AutoDataSetFilter и все сразу стало работать как надо. Большое спасибо, никогда бы не думал, что из-за этого будет не работать
Автор: X11
Дата сообщения: 19.01.2010 13:44
UPD

Есть cxVerticalGrid. В гриде есть строка (row) типа RagioGroup. Чтобы получить значение этой строки нужно сделать вот такой финт ушами:


Код: qTransEdit.ParamByName('RESULT_OF_TRANS').Value := (rowResult.Properties.EditProperties as TcxRadioGroupProperties).GetRadioGroupItemIndex(rowResult.Properties.Value);
Автор: JohnSilver182
Дата сообщения: 19.01.2010 15:14
Народ , а есть прямо по шагам методичка как сделать в Столбце CxGrid свой формат Tdatetime ?????

Добавлено:
P.s. А можно ссылку на Инсталлер девок ??
Автор: SIgor33
Дата сообщения: 19.01.2010 15:35
JohnSilver182
В копилке выложил feandy под 20 постов раздает

Цитата:
А можно ссылку на Инсталлер девок ??

Автор: X11
Дата сообщения: 19.01.2010 15:36
UPD
Вопрос по стилям и cxVerticalGrid.
Создал 2 стиля. Один назначил сразу всему гриду для заголовков строк. А второй назначил только одной строке, тоже заголовку. Ожидал, что эта одна строка будет отличаться от общего стиля всех заголовков, но она тоже имеет тот же цвет, что и все остальные. Это баг такой или фича?

Что нужно? Нужно большинству строк назначить стиль1, а двум-трём строкам назначить стиль2. Получается, что нужно назначать стили отдельно для каждой строки.
Автор: afiget
Дата сообщения: 19.01.2010 15:50
JohnSilver182
Если в режиме редактирования, то устанавливайте формат для используемого редактора, если в режиме отображения - для поля в Датасет.
Автор: X11
Дата сообщения: 19.01.2010 16:26

Цитата:
Подскажите, пожалуйста, как можно закрасить пункты подменю (cxBarEditItem1) и изменять цвет текста.

Попробуйте подход, описанный в How to change the color of a BarItem

Там есть пример, да. Но ни Дельфи, ни гуголь ничего не ведают о звере под названием TdxBarItemControlEnhancedPainter.
У меня Dev47.

Добавлено:

Цитата:
Есть cxVerticalGrid. В гриде есть строка (row) типа RagioGroup. Чтобы получить значение этой строки нужно сделать вот такой финт ушами:


Код:
qTransEdit.ParamByName('RESULT_OF_TRANS').Value := (rowResult.Properties.EditProperties as TcxRadioGroupProperties).GetRadioGroupItemIndex(rowResult.Properties.Value);


А какой финт нужно сделать, чтобы установить значение RagioGroup-строки?



Не знаю, правильно ли, но вот такое я нашёл решение. Следует строке вертикального грида установить в Properties.Value значение Caption`а нужного RadioItem`а.

dbgTrans.DataController.Values[fri, dbgTransRESULT_OF_TRANS.Index] возвращает ноль или один.

Код:
if not VarIsNull(dbgTrans.DataController.Values[fri, dbgTransRESULT_OF_TRANS.Index]) then
rowResult.Properties.Value := (rowResult.Properties.EditProperties as TcxRadioGroupProperties).Items[dbgTrans.DataController.Values[fri, dbgTransRESULT_OF_TRANS.Index]].Caption;
Автор: Granmer
Дата сообщения: 19.01.2010 17:13
Нужно в зависимости от значения в одном из столбцов таблицы (cxGrid, VCL), выводить в другом столбце картинки. Каким лучше образом это организовать? Есть свойство Glyph в типе колонки Label, есть отдельный тип Image. Что будет правильнее использовать и в каком событии нужно определять отображаемую картинку?
Автор: JohnSilver182
Дата сообщения: 19.01.2010 17:28

Цитата:
JohnSilver182
Если в режиме редактирования, то устанавливайте формат для используемого редактора, если в режиме отображения - для поля в Датасет.


TcxGridDbColumn ->Databinding->ValueType:=DateTime
НЕ помогает !!! Хнык хнык
Автор: afiget
Дата сообщения: 19.01.2010 19:44
JohnSilver182
Не тип поля (это само собой), а формат.
Например, для отображения в формате дд.мм.гггг установите свойству DisplayFormat поля в датасете значение dd.mm.yyyy
Автор: JohnSilver182
Дата сообщения: 19.01.2010 20:28
afiget


УРААА !!!
Автор: vladman
Дата сообщения: 19.01.2010 22:21
X11

Цитата:
А какой финт нужно сделать, чтобы установить значение RagioGroup-строки?

У каждого Айтема вашей RagioGroup есть свойство Value. Установите это свойство. При установке свойства Properties.Value вашей cxEditorRow с RagioGroup, выбранным становится именно тот Айтем, свойство Value которого равно значению установленному в свойстве Properties.Value. Т.е.
оператор <YourcxVerticalGridEditorRow.Properties.Value := 2; сделает выбранным Айтем вашего RagioGroup значение свойства Value которого равно 2. Также читая свойство Properties.Value можно определить какой Айтем выбран в данный момент.

Добавлено:
X11

Цитата:
Вопрос по стилям и cxVerticalGrid.
Создал 2 стиля...

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

Т.е. приоритет должен быть у стиля назначенного для конкретной строки.
А цвет чего вы устанавливаете для определенной строки? Шрифта/Фона? Если Шрифта, то каким свойством?


Добавлено:
X11

Цитата:
Но ни Дельфи, ни гуголь ничего не ведают о звере под названием TdxBarItemControlEnhancedPainter.

Достаточно выполнить поиск в исходных кодах ExpressBars 6 строки "class function BarToolbarBrush" и вы сразу бы заметили что TdxBarItemControlEnhancedPainter был переименован либо включен в TdxBarPainter.
Автор: X11
Дата сообщения: 19.01.2010 22:50

Цитата:
А цвет чего вы устанавливаете для определенной строки? Шрифта/Фона? Если Шрифта, то каким свойством?

Фона свойством color (не Font.Color)
А шрифта не менял, хотя знаю, что нужно лапать за Textcolor
Автор: vladman
Дата сообщения: 19.01.2010 23:03
Granmer

Цитата:
Нужно в зависимости от значения в одном из столбцов таблицы (cxGrid, VCL), выводить в другом столбце картинки.

Где хранятся картинки? БД/Файл? Вы хотите показывать картинки для всех строк таблицы либо только для выбранной/выбранных? В общем нужно от вас более детальное описание вашей проблемы.
Также попробуйте в прошлой части топика почитать советы по решению следующей проблемы X11

Цитата:

Даже не знаю, в каком направлении копать.
Краткое описание. Нужно в гриде показать имена файлов с путями и иконки типов файлов, ну там экселевскую иконку или винраровскую. Прикрутил грид к таблице, в таблицу прекрасно грузятся имена файлов с путями. Создал в гриде отдельное, непривязанное к базе поле типа Image. А вот как в нём показать пиктограмму.... Думаю, что получить пиктограмму типа файла будет не сложно.
Проблема с выводом её в гриде. В каком событии и как это вообще делается?


Добавлено:
X11

Цитата:
Фона свойством color (не Font.Color)

Посмотрите вот этот [more=Dfm c VerticalGrid]object Form90: TForm90
Left = 0
Top = 0
Caption = 'Form90'
ClientHeight = 292
ClientWidth = 554
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object cxVerticalGrid1: TcxVerticalGrid
Left = 40
Top = 8
Width = 345
Height = 225
OptionsView.RowHeaderWidth = 134
Styles.Header = cxStyle1
TabOrder = 0
Version = 1
object cxVerticalGrid1EditorRow1: TcxEditorRow
Properties.Caption = 'qqqqqqqq'
Properties.DataBinding.ValueType = 'String'
Properties.Value = Null
Styles.Header = cxStyle2
ID = 0
ParentID = -1
Index = 0
Version = 1
end
object cxVerticalGrid1EditorRow2: TcxEditorRow
Properties.Caption = 'wwwwwwwww'
Properties.DataBinding.ValueType = 'String'
Properties.Value = Null
ID = 1
ParentID = -1
Index = 1
Version = 1
end
object cxVerticalGrid1EditorRow3: TcxEditorRow
Properties.Caption = 'eeeeeeee'
Properties.DataBinding.ValueType = 'String'
Properties.Value = Null
ID = 2
ParentID = -1
Index = 2
Version = 1
end
end
object cxStyleRepository1: TcxStyleRepository
PixelsPerInch = 96
object cxStyle1: TcxStyle
AssignedValues = [svColor]
Color = clGradientActiveCaption
end
object cxStyle2: TcxStyle
AssignedValues = [svColor]
Color = clLime
end
end
end[/more]. Все работает.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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