Delphi中使用Devexpress TcxPagecontrol控件
- 格式:pdf
- 大小:324.28 KB
- 文档页数:3
PageControl组件位于组件板的Win32页中,该组件⽤于实现窗体上多页⾯技术,每个页⾯上均能添加若⼲控件。
程序运⾏时,单击页⾯标签就可以在多页之间切换。
1.建⽴多页 ⽤⿏标右键单击PageControl组件,在弹出式菜单中选择New Page⼦菜单可添加新页,⽤Delete⼦菜单可删除当前页。
读者应注意: ·单击PageControl组件标题时,选中的是PageControl对象。
·单击PageControl组件页⾯时,选中的是TabSheet对象。
选择不同对象,在对象监视器中将显⽰不同对象的属性,即显⽰PageControl对象或TabSheet对象的属性。
2.PageControl对象的主要属性 (1)ActivePage属性 ActivePage属性⽤于设置PageControl组件的当前页。
单击ActivePage属性的下拉列表框,从列表框中可选择不同页⾯。
(2)Muhiline属性 Muhiline属性值为True时,PageControl控件呈多⾏风格。
(3)Image属性 Image属性表⽰与PageControl相关联的ImageList名。
选定后PageControl就可使⽤Image-List中的图像。
(4)Pages属性 PageControl的所有页⾯记录在Page属性中,Pages是运⾏时的属性,即设计时在对象监视器中不可见,⽽运⾏时却能在程序中引⽤。
Pages是⼀个数组,其元素类型为TTabSheet,元素个数放在PageCount中,Pages[0]是第⼀页,Pages[PageCount⼀1]是最后⼀页。
(5)ActivePageIndex属性 ActivePageIndex属性是当前活动页的Page属性的下标,从0开始计数。
ActivePageIndex也是运⾏时的属性。
3.TabSheet对象的常⽤属性 (1)Caption属性 该属性⽤于设置页标签名称。
delphi PageControl显示窗体分类:Delphi2011-08-31 09:16 899人阅读评论(0) 收藏举报delphibuttoninteger活动actionstringdelphi 使用PageControl嵌套显示窗体,需要必须实现两个部分:1.创建标签页和创建窗体。
2.指定窗体关闭函数,该函数包含关闭当前标签页。
1.创建标签页和创建窗体。
//如果不存在就创建标签页和窗体,如果存在,就找到。
//PFormClass:要创建的窗体的类,CName:窗体的Cption;EName :窗体的Name procedure TMainForm.CreateTabSheet(PFormClass: TFormClass;CName,EName:string); constMyTabSheetFirstName = 'MyTabSheet_';varMyForm:TForm;MyTabSheet : TTabSheet;MyTabSheetName :string;beginMyTabSheetName := MyTabSheetFirstName + EName;//查找该标签页是否已经存在MyTabSheet := TTabSheet(self.FindComponent(MyTabSheetName));//不存在,就创建出新的标签页if MyTabSheet = nil thenbegintry//创建新标签页MyTabSheet := TTabSheet.Create(self); := MyTabSheetName;MyTabSheet.PageControl := pgcMain;MyTabSheet.Caption := CName;MyTabSheet.Align := alClient;//创建窗口tryMyForm := PFormClass.Create(self); := EName;MyForm.Parent := MyTabSheet;MyForm.BorderStyle := bsNone;MyForm.Top := 0;MyForm.Left := 0;MyForm.Width := MyTabSheet.Width;MyForm.Height := MyTabSheet.Height;MyForm.Align := alClient;//关联窗体关闭时,执行的函数。
devexpress chartcontrol 用法如何使用DevExpress ChartControl?一、简介DevExpress ChartControl是一个功能强大、灵活且易于使用的数据可视化控件,用于创建各种类型的图表,包括线图、柱状图、饼图、雷达图等。
它提供了丰富的图表样式和自定义选项,以满足各种应用程序的需求。
在本篇文章中,我们将一步一步地介绍如何使用DevExpress ChartControl。
二、安装和配置DevExpress ChartControl1. 下载DevExpress首先,我们需要从DevExpress官方网站下载并安装DevExpress。
在官方网站上,您可以找到适用于不同开发环境的DevExpress套件。
选择您正在使用的开发环境,并下载适合您的版本。
2. 添加DevExpress控件在安装DevExpress之后,打开您的开发环境(例如Visual Studio),创建一个新的项目或打开现有的项目。
然后,右键单击工具箱中的一个空白区域,选择“选择项”或“添加”选项。
在选择项对话框中,找到DevExpress组件,并选中“ChartControl”控件。
点击确定按钮,将DevExpress ChartControl添加到工具箱中。
3. 配置DevExpress控件接下来,将DevExpress ChartControl拖放到您的窗体或用户控件中。
然后,选择控件并在属性窗口中进行配置。
您可以设置控件的样式、布局、数据源等属性。
例如,您可以选择图表的风格(如3D或2D),调整图表的尺寸和位置,以及绑定数据源以显示图表数据。
三、创建基本图表1. 添加数据源要创建一个基本图表,首先需要添加一个数据源。
您可以使用任何数据源,例如DataSet、DataTable或自定义集合。
假设我们有一个包含销售数据的DataTable。
为了将数据绑定到图表,您需要设置图表的DataSource属性并指定要用于显示数据的数据源和数据字段。
Delphi 中CxGrid 控件使用总结(注版本为DevExpr_v46)1.CxGrid 汇总功能①OptionsView-Footer 设置为True ,显示页脚②CxGrid 的Summary 选项卡定义要汇总的列和字段名及汇总方式,Footer 选项卡定义单个汇总,Default For Groups 定义按组汇总。
OptionsView-GroupFooters 设置为gfAlwaysVisible 则显示按组汇总。
设置后界面如图。
2. CxGrid 的样式设置当设置了Kind时,NativeStyle必须设置为False,如果指定了SkinName 则Kind 属性失效。
下图是设置skinname 为MoneyTwins 后效果3. 导入各种格式procedure TForm1.btn1Click(Sender: TObject);begincxGridExportLink.ExportGridToHTML('d:\test.html',cxgrd1); cxGridExportLink.ExportGridToXML('d:\test.xml',cxgrd1); cxGridExportLink.ExportGridToExcel('d:\test.xls',cxgrd1);cxGridExportLink.ExportGridToText('d:\test.txt',cxgrd1);end;4. 取某个单元格的值Cxgrid.DataController.Values[i,j]5. 列操作,选择CxGrid 控件后,点击“ Customize”新建一列,在Columns 集合中选中新建的列,选择propertites 属性可以设置该列的显示形式。
下面介绍常用的几个①Properties 选择CheckBox ,则该列显示一个复选框,如下:判断是否选中if Cxgrid.DataController.Values[i,j]= '1' 选中②Properties 选择ButtonEdit ,并对该列的属性编辑器设置如下属性Buttons 属性添加按钮项,对按钮项设置可以设置kind 属性定义按钮样式;ViewStyle 属性设置为vsButtonsOnly ,Options-ShowEditButton 设置为isebAlways 。
DevExpress使⽤⽅法GridControl总结1.隐藏最上⾯的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读gridView1.OptionsBehavior.Editable=false;4.不显⽰MasterDetailViewgridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上⾯的GroupPanel内容gridView1.GroupPanelText="柳⽣飘絮";6.数据绑定:FieldName --数据库的字段名称7.读写拷贝权限设置ColumnView.EditableThis property returns a value of the option不可写ColumnViewOptionsBehavior.EditableGets or sets whether end users are allowed to invoke cell editors可读可写OptionsColumn.AllowEditGets or sets whether end users are allowed to invoke editors for the column's cells.可读可写只有ColumnViewOptionsBehavior.Editable = True设置OptionsColumn.AllowEdit才有意义OptionsColumn.ReadOnlyGets or sets whether end-users are prevented from editing the column's cell values.可读可写If the ReadOnly property is set to true, the cell values of columns cannot be modified by end-users. In this case cell editors can be invoked but end users can only select and copy an editor's content. This option is not in effect if the column's or the view's option is disabled.Cell values can still be modified in code using the method regardless of the ReadOnly property's setting.只读不可拷贝:ColumnViewOptionsBehavior.Editable = False只读可拷贝:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = True可编辑:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = False=============================================================⼀、如何解决单击记录整⾏选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click⼆、如何新增⼀条记录(1)、gridView.AddNewRow()(2)、实现gridView_InitNewRow事件三、如何解决GridControl记录能获取⽽没有显⽰出来的问题gridView.populateColumns();四、如何让⾏只能选择⽽不能编辑(或编辑某⼀单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click(2)、View->OptionsBehavior->Editable 设置为:false五、如何禁⽤GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false六、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel 设置为:false七、如何禁⽤GridControl中列头的过滤器过滤器如下图所⽰:设置 Run Design->OptionsCustomization->AllowFilter 设置为:false⼋、如何在查询得到0条记录时显⽰⾃定义的字符提⽰/显⽰如图所⽰:⽅法如下://When no Records Are Being Displayed private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { //⽅法⼀(此⽅法为GridView设置了数据源绑定时,可⽤) ColumnView columnView = sender as ColumnView; BindingSource bindingSource = this.gridView1.DataSource as BindingSource;if(bindingSource.Count == 0) { string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5); e.Graphics.DrawString(str, f, Brushes.Black, r); } //⽅法⼆(此⽅法为GridView没有设置数据源绑定时,使⽤,⼀般使⽤此种⽅法) if (this._flag) { if (this.gridView1.RowCount == 0) { string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5); e.Graphics.DrawString(str, f, Brushes.Black, r); } } }九、如何显⽰⽔平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false;⼗、如何定位到第⼀条数据/记录?设置 this.gridView.MoveFirst()⼗⼀、如何定位到下⼀条数据/记录?设置 this.gridView.MoveNext()⼗⼆、如何定位到最后⼀条数据/记录?设置 this.gridView.MoveLast()⼗三、设置成⼀次选择⼀⾏,并且不能被编辑this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;⼗四、如何显⽰⾏号?this.gridView1.IndicatorWidth = 40; //显⽰⾏的序号 private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) { if(.IsRowIndicator && e.RowHandle>=0) { .DisplayText = (e.RowHandle + 1).ToString(); } }⼗五、如何让各列头禁⽌移动?设置gridView1.OptionsCustomization.AllowColumnMoving = false;⼗六、如何让各列头禁⽌排序?设置gridView1.OptionsCustomization.AllowSort = false;⼗七、如何禁⽌各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;=======================================================================================devexpress表格控件gridcontrol设置隔⾏变⾊、焦点⾏颜⾊、设置(改变)显⽰值、固定列不移动(附源码)介绍⼀些常⽤的gridcontrol设置。
DevExpress的GridControl控件设置⾃定义显⽰⽅法DevExpress的GridControl控件设置⾃定义显⽰⽅法2018年04⽉09⽇ 13:41:25 阅读数 634⽐如要显⽰性别为字符串,数据库中保存为数值(1:男,2:⼥,3:未知)。
⽅法⼀:点击控件上的"Run Designer"按钮,进⼊设计界⾯。
选择“Columns",增加⼀个隐藏字段,字段值取需要显⽰的绑定值。
如显⽰性别,绑定"Sex"字段。
增加⼀个显⽰字段,字段显⽰表达式。
修改属性UnboundExpression的值为:Iif([SexExpression] <= 2 And [SexExpression] >0, Iif([SexExpression] == 1,'男','⼥') , '未知')。
修改属性UnboundType的值为:String修改属性FiledName的值为:SexDesc⽅法⼆:点击控件上的"Run Designer"按钮,进⼊设计界⾯。
编辑Views的GridView1的事件CustomColumnDisplayText。
private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e){if (e.Column.FieldName == "Sex"){if (e.Value != null){switch (e.Value.ToString().Trim()){case "1":e.DisplayText = "男";break;case "2":e.DisplayText = "⼥";break;case "3":e.DisplayText = "未知";break;default:e.DisplayText = "";break;}}}}。
DevExpress中GridControl的属性设置1. 隐藏最上面的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=T able.Rows[gridVie w1.FocusedRowHandle][FieldName].T oString();3.数据只读gridVie w1.OptionsBehavior.Editable=false;4.不显示MasterDetailViewgridVie w1.OptionsDetail.EnableMasterViewMode=false;5.修改最上面的GroupPanel内容gridVie w1.GroupPanelT ext="CSDN";6.数据绑定:FieldName --数据库的字段名称7.读写拷贝权限设置ColumnView.EditableThis property returns a value of the ColumnViewOptionsBehavior.Editable option不可写ColumnViewOptionsBehavior.EditableGets or sets whether end users are allowed to invoke cell editors可读可写OptionsColumn.AllowEditGets or sets whether end users are allowed to invoke editors for the column's cells.可读可写只有ColumnViewOptionsBehavior.Editable=True 设置OptionsColumnAllowEdit 才有意义。
OptionsColumn.ReadOnlyGets or sets whether end-users are prevented from editing the column's cell values.可读可写只读不可拷贝:ColumnViewOptionsBehavior.Editable = False只读可拷贝:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = True可编辑:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = False获取选中行的值代码:private void gridData_FocusedRowChanged(object sender,DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e){_id=GWEntLib.Utilities.Mix.ConvertUtils.ToInt32(gridData.GetRowCellValu(e.Focu sedRowHandle, "Id"));_emrFileReadList = EMRTemplateFileReadList.GetEMRTemplateFileReadList(_id); gridVersonData.DataSource = _emrFileReadList;}响应事件:FocusedRowChanged获取字段值:gridData.GetRowCellValue(e.FocusedRowHandle, "Id")注意:FocusedRowChanged是Gridview的事件而不是gridControl的事件gridControl与Gridview的区别:前者是容器,后者为视图全选/取消全选private void Form1_Load(object sender, EventArgs e){String str =@”select cast( 0 as bit ) 选择,ID,NameFrom ”DataTable dt =new DataTable();dt =SqlHelper.ExecuteDataset(str).Tables[0];gridView.DataSource =dt;}#region全选private void tsbSelectAll_Click(object sender, EventArgs e){for (int i = 0; i < gridView.RowCount; i++){gridView.SetRowCellValue(i, gridView.Columns.ColumnByFieldName("选择"), true);}}#endregion#region取消全选private void tsbUnSelectAll_Click(object sender, EventArgs e){for (int i = 0; i < gridView.RowCount; i++){gridView.SetRowCellValue(i, gridView.Columns.ColumnByFieldName("选择"), false);}}。
delphi cxbuttonedit1使用用法Delphi是一款基于Pascal语言的高级编程语言,由Borland公司(现在归属于Embarcadero公司)开发。
CxButtonEdit1是一个Delphi组件,用于创建按钮和编辑器组合的控件。
在使用CxButtonEdit1之前,请先了解其基本属性和方法,以便更好地应用于项目中。
以下是关于Delphi CxButtonEdit1的使用方法:1. 添加组件:首先,在Delphi的组件库中找到CxButtonEdit1组件,将其添加到工具箱中。
然后在窗体设计器中,从工具箱中将CxButtonEdit1拖放到窗体上。
2. 设置组件属性:在属性窗口中,可以设置CxButtonEdit1的属性,如以下几个常用属性:- ButtonText:设置按钮上的文本。
- ButtonStyle:设置按钮的样式,如常规、扁平等。
- EditText:设置编辑框中的文本。
- EditStyle:设置编辑框的样式,如允许输入、只读等。
- MaxLength:设置编辑框允许的最大字符数。
3. 添加事件处理程序:CxButtonEdit1组件支持多种事件,如ButtonClick、EditChange等。
可以在窗体类的实现部分添加相应的事件处理程序,以响应用户操作。
示例代码:```pascalprocedure TForm1.Button1Click(Sender: TObject);begin// 用户点击按钮时执行的操作ShowMessage('Button clicked!');end;procedure TForm1.Edit1Change(Sender: TObject);begin// 用户在编辑框中输入发生变化时执行的操作ShowMessage('Edit changed: ' + Edit1.Text);end;```4. 编程操作组件:在程序运行过程中,可以通过编写代码来操作CxButtonEdit1组件,例如设置按钮和编辑框的文本等。
devexpress xtratabcontrol用法DevExpress XtraTabControl是一个强大的界面控件,用于在WinForms应用程序中创建多个选项卡的用户界面。
以下是DevExpress XtraTabControl的一些用法:1. 创建TabControl对象:XtraTabControl tabControl = new XtraTabControl();2. 添加选项卡页:XtraTabPage page1 = new XtraTabPage();page1.Text = "Page 1";tabControl.TabPages.Add(page1);3. 设置选项卡显示位置:tabControl.TabPosition =DevExpress.XtraTab.TabPosition.Bottom;4. 设置选项卡外观样式:tabControl.Appearance.BackColor = Color.White;eBackColor = true;5. 添加控件到选项卡页中:Label label = new Label();label.Text = "Hello, World!";page1.Controls.Add(label);6. 响应选项卡页改变事件:tabControl.SelectedPageChanged +=TabControl_SelectedPageChanged;private void TabControl_SelectedPageChanged(object sender, TabPageChangedEventArgs e){// 处理选项卡页改变事件}6. 响应选项卡页关闭事件:tabControl.CloseButtonClick += TabControl_CloseButtonClick; private void TabControl_CloseButtonClick(object sender, EventArgs e){XtraTabControl tabControl = (XtraTabControl)sender;XtraTabPage page = tabControl.SelectedTabPage;tabControl.TabPages.Remove(page);}以上是DevExpress XtraTabControl的一些常用用法,您可以根据自己的需求进一步使用和扩展该控件。
//不显示内置的导航条。
eEmbeddedNavigator = false;//不显示分组的面板gv1.OptionsView.ShowGroupPanel = false;gv2.OptionsView.ShowGroupPanel = false;//自动改变行高适应内容gv1.OptionsView.RowAutoHeight = true;gv2.OptionsView.RowAutoHeight = true;//允许自动合并单元格gv1.OptionsView.AllowCellMerge = true;//如果主从表中,没有找到从表内容也要显示(默认是不显示的)gv1.OptionsDetail.AllowExpandEmptyDetails = true;//显示自动筛选行(效果跟Excel的自动筛选差不多)gv2.OptionsView.ShowAutoFilterRow = true;//使得GridView不能编辑gv1.OptionsBehavior.Editable = false;gv2.OptionsBehavior.Editable = false;//内置编辑器显示的模式gv1.OptionsBehavior.EditorShowMode =DevExpress.Utils.EditorShowMode.Click;//主从表显示的功能是否可用//gv1.OptionsDetail.EnableMasterViewMode = false;//如果显示了主从表,每点开个加号,就会显示一个Tabs,里面往往显示了两个面板。
//事实上没必要这样干的。
一般选择关闭。
关闭的对象是主GridView的此项属性。
gv1.OptionsDetail.ShowDetailTabs = false;}private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnOk_Click(object sender, EventArgs e){//设置连接字符串DbHelperSQL.ConnectionString =DbHelperSQL.CreateConnectionString(@"BUDDHAS\SQLEXPRE SS", "sa", "00000", "RTDMES");DataSet ds = new DataSet();//父GridView的数据string sql = "select sc_prno,sc_prna from mespb04h";DbHelperSQL.QueryD(sql,ds,"main");//子GridView的数据sql = "select pa_name,pa_no,sc_prno from mespb09h";DbHelperSQL.QueryD(sql,ds,"son");//这个是显示主从表的关键,一、GridControl通过检查DataSet.Relations的内容来分析数据//二、关键名必须与设计GridView的层级关系的level name 相同,否则,结果在意料之外。
在Delphi 中,CheckBox 是一种常见的用户界面控件,用于在应用程序中表示一个可选的或可切换的选项。
下面是一些使用CheckBox 控件的基本用法:1. 创建一个CheckBox 控件:在Delphi 的Form 设计器中,从工具箱(Toolbox)中选择CheckBox 控件,并将其拖放到Form 上。
2. 更改CheckBox 的属性:选中CheckBox 控件,然后在Object Inspector 中更改其属性。
例如,你可以设置Caption 属性来显示文本标签,设置Checked 属性来控制初始状态是否被选中。
3. 响应CheckBox 的事件:CheckBox 控件具有一些事件,例如OnClick 和OnChange。
你可以在这些事件处理程序中编写代码来响应用户与CheckBox 的交互。
例如,你可以在OnClick 事件中编写代码来切换CheckBox 的状态。
以下是一个简单的示例,演示如何在Delphi 中使用CheckBox 控件:```delphiprocedure TForm1.CheckBox1Click(Sender: TObject);beginif CheckBox1.Checked thenShowMessage('Checkbox is checked')elseShowMessage('Checkbox is unchecked');end;```在上面的示例中,当用户单击CheckBox 时,会触发CheckBox1Click 事件,并根据CheckBox 的状态显示相应的消息框。
除了上述基本用法外,你还可以使用CheckBox 控件的其他属性和事件来实现更复杂的交互功能。
例如,你可以使用CheckBox 的OnChange 事件来跟踪其状态的变化,并根据需要进行处理。
Delphi控件cxGrid(DevExpress控件)的使用方法1. 去掉cxgrid中抬头的box ,在tableview1的ptionsview的groupbybox=false;2. 在GRID footer 中加入sum(列), tableview1的optionsview 的footer=ture然后在cxGRid1的customize中的summary 的footer.add需要合计的列kind= skSum3. 去掉cxgrid 中的过滤下拉箭头选择tableview1.optionscustomize.columnfiltering=fasle;4. cxGrid1DBTableView1 的 OptionView中屬性GroupFooters 設為gfAlwaysVisible並設置需要求和的列,在summary.default for Groups 下add加入需要合计的字段,column下显示fieldname 为统计字段,format为格式,kind为统计方法,position 为位子spfooter 在分组的下面,spgroup 在分组的上面或用cxGridPopupMenu1,在運行時可對任意數字類型列求和,方法是只需設置cxGridPopupMenu1的屬性Grid為cxGrid1DBTableView1的cxGrid,即可實現您所需功能5. DEV Express里的cxGrid默认的数值格式带¥,怎么去掉啊!雙擊Cxgrid,選擇colmnum改變類型options.properties.Memo,在displayformat中进行设置6. 在网格最后一行的最后一格回车自动增加一条记录,并跳到新记录的第一格设置cxGrid1DBTableView1的OptionsBehavior的FocusFirsCellOnNewRecord与GoToNextCellOnEnter为True,FocusCellOnCycle设为True7. 网格中通过T ab跳转,设置cxGrid1DBTableView1的OptionsBehavior的FocusCellOnTab为True8. 设置是否能够在网格中编辑数据,设置cxGrid1DBTableView1的OptionsData的Appending设为True,Deleting为True,Editing 为True9. 设置是否能选中网格,设置cxGrid1DBTableView1的OptionsSelection的CellSelect为True10. 设置是否能够反选,设置cxGrid1DBTableView1的OptionsSelection的InsertSelect为True11. 设置行高:在cxGridDBTableView1.OptionsView.DataRowHeight12. 改变字体在cxStyleRepository 双击它,在里面添加GridTableViewStyleSheetDevExpress然后改变Style标签里面的cxStyle的字体就可以控制cxGrid的字体了13. 有图片和MEMO的例子:拖入一个cxGrid1,Table1,DataSource1。
cxGrid控件(DevexpressVCL)⾏记录前增加Checkbox的实现⽅法cxGrid控件(Devexpress VCL)⾏记录前增加Checkbox的实现⽅法我们在⽤cxGrid控件显⽰数据时,很多时侯需要在每⾏记录前提供⼀个选择框(checkbox)供⽤户进⾏记录勾选,⽐如多⾏删除、数据选择性导出等场合。
下⾯的⽰例提供了⼀种实现此种功能的解决⽅案,供⼤家参考。
程序运⾏界⾯如下,右侧为CXGRID控件,⽤来显⽰存放在数据库的⽂件信息,我们想要在每⾏记录前显⽰选择框,可以让⽤户删除或导出选中项。
⽰例中需要在cxGrid中显⽰的字段如下,其关联的Dataset为uniDocumentsa.icon,⽂件类型图标b.docDescription,⽂件名称描述c.fileSize,⽂件⼤⼩d.uploadDate,上传⽇期实现步骤1.设定cxGrid所连接的DataSource为对应的Dataset(uniDocuments),添加需要正常的字段信息2.在uniDocuments中新增⼀个计算字段,⽐如叫checked,数据类型为string类型3.更改数据集uniDocuments的SQL为:select '0' as checked, * fromDocuments4.在属性对话框中,设置新增的计算字段checked的FieldKind为fkInternalCalc5.在cxGrid控件的视图中新增checked字段的显⽰:字段显⽰属性Property设定为CheckBox,对应的ValueCheced为“1”,ValueUnCheced为“0”,详见右侧的标注处的设定。
6.代码实现//双击单元格选中(或不选中)某⾏记录procedure TmainForm.cxGrid1DBTableView1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);varrowIndex:Integer;beginif cxGrid1DBTableView1.DataController.RecordCount=0 thenExit;rowIndex:= cxGrid1DBTableView1.DataController.FocusedRowIndex;if cxGrid1DBTableView1.ViewData.Records[rowIndex].Values[0]='1' thencxGrid1DBTableView1.ViewData.Records[rowIndex].Values[0]:='0'elsecxGrid1DBTableView1.ViewData.Records[rowIndex].Values[0]:='1';end;//全部选中procedure TmainForm.ToolButton1Click(Sender: TObject);vari:Integer;beginif cxGrid1DBTableView1.DataController.RecordCount=0 thenExitelsebeginfor i := 0 to cxGrid1DBTableView1.DataController.RecordCount-1 dobegincxGrid1DBTableView1.ViewData.Records[i].Values[0]:='1';end;end;end;//全部取消选中procedure TmainForm.ToolButton2Click(Sender: TObject);vari:Integer;beginif cxGrid1DBTableView1.DataController.RecordCount=0 thenExitelsebeginfor i := 0 to cxGrid1DBTableView1.DataController.RecordCount-1 dobegincxGrid1DBTableView1.ViewData.Records[i].Values[0]:='0';end;end;end;好了,⾄此cxGrid控件⾏记录前增加Checkbox的功能就可以实现了,起紧运⾏测试⼀下吧!。
devexpress chartcontrol 用法DevExpress ChartControl 是一款功能强大的图表控件,可以用于展示和分析数据。
本文将介绍 ChartControl 的使用方法和常见应用场景。
一、ChartControl 简介ChartControl 是 DevExpress 公司开发的一款用于显示图表的控件。
它内置了多种图表类型,如折线图、柱状图、饼图等,可以通过简单的配置实现复杂的数据可视化效果。
ChartControl 提供了丰富的功能和灵活的定制选项,适用于各种数据分析和展示的需求。
二、ChartControl 的基本使用ChartControl 的基本使用包括数据绑定、图表类型选择和图表样式调整。
1. 数据绑定:ChartControl 支持多种数据源的绑定方式,包括数据表、数据库、XML 文件等。
可以通过设置 ChartControl 的 DataSource 属性来指定数据源,同时指定 X 值和 Y 值字段,实现数据与图表的关联。
2. 图表类型选择:ChartControl 提供了多种预定义的图表类型,可以根据需求选择合适的图表类型。
可以通过 ChartControl 的 Series 属性进行设置,每个 Series 表示一个数据系列,可以设置对应的图表类型和数据源。
3. 图表样式调整:ChartControl 具有丰富的样式选项,可以对图表进行自定义的样式调整。
可以通过 ChartControl 的 Appearance 属性来设置整体的样式,也可以通过设置 Series 的 Appearance 属性来设置每个数据系列的样式。
以上是 ChartControl 的基本使用方法,通过简单的配置和调整,可以实现各种复杂的数据展示效果。
三、ChartControl 的高级特性除了基本的使用方法外,ChartControl 还提供了一些高级特性,可以进一步定制图表的显示效果和交互功能。
wpfDevExpress控件之GridControl控件DevExpress控件之GridControl控件/s/blog_6769068d0100iucx.html1. 设置数据源:string sql = "select fid,fname from dual";DataTable dt = DALUse.Query(sql).Tables[0];gridControl1.DataSource = dt;*:Daluse是项目数据库连接基类,不用特别理会2.绑定字段:这部分工作主要是在Designer中进行的,dev的Designer设计器提供了非常方便的设置方式.我么可以省去敲代码,直接在设计器中就可以完成了.在左边选Columns,添加完列以后,在列的FieleName属性添加你要绑定列的字段名(ps:比如我的连接SQL语句是:select fid,fname from dual.我想要把fid绑定到列1.那就在列1的FieldName属性写FID就可以了),这里有非常重要的一点,对于Oracle数据库,所有的在设计器里写的程序中的字段名必须大写,否则可能绑定不上字段,sqlserver没有这个限制.通过代码其实也可以实现,具体代码如下:gridView1.Columns[0].FieldName = "FID";*:gridcontrol只用在设置数据源,以后的操作大多都有gridview这个控件了.他们是一体的,可以在页面的设计代码中找到将他们关联的一句话,这是系统自动写的:gridcontrol1.mainview=this.gridview1.2. 模板列的设置:模板列可以很轻松的让用户实现在表格中进行查找编辑.同样,这部分工作在dev的Designer中进行.在左边选In-Place EditorRepository, 上面的ADD提供了比较丰富的模板列类型,从中选取一个就可以了.模板列建好以后就要和我们当前有的数据列进行绑定了.返回到Columns中,假如列1 是我们想设定的,在他的属性中找到ColumnEdit.选择我们加进去的模板列就可以了.对于模板列我们最常用的还是LookUpEdit.这里简单说下他的设置和用法:LookUpEdit是弹出的一个小的grid,从它里面我们可以实现自动筛选里面的信息.首先从In-Place EditorRepository中添加LookUpEdit.取名为Re1.然后.在他的Columns属性中添加3列.Caption依次为:编号,姓名,性别.FieldName 依次为:FID,FNAME,FSEX.然后将Re1的NullT ext设置成空.AutoSearchColumnIndex属性设置为2.ImmediatePopup属性设置为True.SearchMode设置为OnlyInPopup.然后将这个模板列附加到我们上面提到的列1(也就是将列1的ColumnEdit属性设成Re1)最后我们还要在代码里面给Re1绑定数据源和显示项.Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];Re1.DisplayMember = "FSEX";Re1.ValueMember = "FNAME";*:对于Oracle数据库字段一定要用大写,切记!!至此,我们的LookUpEdit模板列就设置完成了,它现在已经实现了通过性别列检索,然后将姓名列附到我们的列1上.对于LookUpEdit可以实现过滤主要是AutoSearchColumnIndex和SearchMode属性.可以参见帮助知道它们的用法:ms-help://v7.2/DevExpress.XtraEditors/DevExpressX traEditorsControlsSearchModeEnumtopic.htmPs://去掉上面的筛选条gridView1.OptionsView.ShowGroupPanel = false;//设某一列只读或者不可编辑gridView1.Columns[0].OptionsColumn.AllowEdit = false;gridView1.Columns[0].OptionsColumn.ReadOnly = false;//设某一列文字和标题局中显示gridView1.Columns[0].AppearanceHeader.TextOptions.HAlig nment = DevExpress.Utils.HorzAlignment.Center;gridView1.Columns[0].AppearanceCell.TextOptions.HAlignm ent = DevExpress.Utils.HorzAlignment.Center;//去掉某一列上面的自动筛选功能(Filter)gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;gridView1.Columns[0].OptionsFilter.AllowFilter = false;gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoF ilter = false;//设置冻结列(左冻结)gridView1.Columns[0].Fixed=DevExpress.XtraGrid.Columns.FixedStyle.Left;//得到单元格数据(0行0列)string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);//设置单元格数据(将0行0列的单元格赋值123)gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");//手动添加dev的列DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();Col1.FieldName="FID";Col1.Visible=true;Col1.VisibleIndex=gridView1.Columns.Count;gridView1.Columns.Add(Col1);//设置自动增加的行号,需要先添加给gridview添加事件CustomDrawRowIndicatorprivate void gridview_CustomDrawRowIndicator(object sender,DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEvent Args e){if (.IsRowIndicator && e.RowHandle >= 0).DisplayText = (e.RowHandle + 1).ToString();}//添加datatable数据行,数据列DataTable dt = new DataTable();dt.Columns.Add("Col1");DataRow dr = dt.NewRow();dr[0] = "123";dt.Rows.Add(dr);*以上这些都可以在Designer中进行设置,而不用去敲代码对于第三方控件的整体修改和保存,具体说明如下:1. 删除: (修改了dgvdel里的datagridviewdel方法)public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv){if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提示", MessageBoxButtons.YesNo,MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes){int iSelectRowCount = Mydgv.SelectedRowsCount;if (iSelectRowCount > 0){Mydgv.DeleteSelectedRows();}}}2. 新增: (对于新增,其本身的AddNewRow方法就可以做到)private void btn_add_Click(object sender, EventArgs e){gridView1.AddNewRow();}具体如果对于新加行还有什么特别的设置,可以在它gridView1_InitNewRow事件中填写:private void gridView1_InitNewRow(object sender,DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e){ColumnView View = sender as ColumnView;View.SetRowCellValue(e.RowHandle, View.Columns[0],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridV iew1.RowCount - 2),gridView1.Columns[0])); //复制最后一行的数据到新行View.SetRowCellValue(e.RowHandle, View.Columns[1],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridV iew1.RowCount - 2),gridView1.Columns[1])); //复制最后一行的数据到新行}3. 保存(第三方控件提供的RefreshData和RefreshDataSource方法对于保存数据都不好使,最后还是使用了Dgvsave的datagridviewsave 方法,用这个方法就可以)注:代码中出现多gridView1全为第三方控件的gridView.对于这个第三方控件,我们也有好多东西还在研究!希望大家通过我们的讲解能对这个控件有个初步的认识,并且我们大家一起交流学习!。
Delphi中使⽤DevexpressTcxPagecontrol控件Delphi中使⽤TcxPagecontrol控件建⽴⼀个VCL应⽤程序,界⾯如下图1.动态创建cxTabsheet的代码如下:procedure TForm1.cxButton1Click(Sender: TObject);varnewTabsheet:TcxTabSheet;i:Integer;beginfor i := 1 to 5 dobeginnewTabsheet:=TcxTabSheet.Create(self);newTabsheet.Caption:=i.ToString()+ ' Tabs';newTabsheet.Tag:=i;newTabsheet.PageControl:=cxPageControl1;newTabsheet.Visible:=True;end;end;上述代码将动态创建5个cxTabsheet,执⾏结果如下2.动态关闭当前激活的cxTabsheet,代码如下:procedure TForm1.cxButton2Click(Sender: TObject); begincxPageControl1.ActivePage.Free;end;3.动态指定关闭cxTabsheet,代码如下:procedure TForm1.cxButton3Click(Sender: TObject); begin//关闭第2个TABSHEETcxPageControl1.Pages[1].Free;end;4.动态指定激活cxTabsheet,代码如下:procedure TForm1.cxButton4Click(Sender: TObject); vari:Integer;beginfor i := 0 to cxPageControl1.PageCount-1 dobeginif cxPageControl1.Pages[i].Tag =1 thenbegincxPageControl1.ActivePage:= cxPageControl1.Pages[i]; Exit;end;end;end;5.下⾯演⽰如何在cxTabsheet动态加载窗体或控件:新增加⼀个button控件,另外再新建⼀个VCL窗体—FORM2,编写如下代码procedure TForm1.btn1Click(Sender: TObject); varnewTabsheet:TcxTabSheet; formControl:TForm2;beginformControl:=TForm2.Create(Self); newTabsheet:=TcxTabSheet.Create(self); newTabsheet.Caption:='动态加载窗体'; newTabsheet.PageControl:=cxPageControl1; newTabsheet.Visible:=True; formControl.Parent:=newTabsheet; formControl.Align:=alclient; formControl.Show;cxPageControl1.ActivePage:=newTabsheet; end;执⾏结果如下Form2窗体如果去掉边框,显⽰效果如下。
1.设置最下面的总计行:view plaincopy to clipboardprint?1.gridcontrol.TotalSummary.Add(new GridSummaryItem()2. {SummaryType=SummaryItemType.Count,3. FieldName = "SID",4. DisplayFormat = "总记录数:{0:0}"});gridcontrol.TotalSummary.Add(new GridSummaryItem(){SummaryType=SummaryItemType.Count,FieldName = "SID",DisplayFormat = "总记录数:{0:0}"});显示效果如下:参数:SummaryItemType:聚合类型:Devexpress已经具备常用的方法了,基本够用,实在不够用可以使用Custom;FieldName:统计列名;DisplayFormat:显示格式;2.隐藏分组的Panel:view plaincopy to clipboardprint?1.tableView1.ShowGroupPanel = false;tableView1.ShowGroupPanel = false;3.设置当前焦点单元格为编辑状态(光标移入):view plaincopy to clipboardprint?1.tableView1.ShowEditor();tableView1.ShowEditor();此方法写入OnLoad无效,写入Loaded有效。
4.Devexpress汉化方法:1.引用汉化DLL文件:DevExpress.LocalizationWPF.v11.2.dll2.加入如下代码:view plaincopy to clipboardprint?1.DevExpress.Xpf.Core.DXMessageBoxLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfCoreDXMessageBoxLocalizationCHS();2. DevExpress.Xpf.Core.Localization.TabControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfCoreLocalizationCHS();3. EditorLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfEditorsLocalizationCHS();4. DevExpress.Xpf.Docking.Base.DockingLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfDockingLocalizationCHS();5. GridControlLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfGridLocalizationCHS();6. DevExpress.Xpf.Printing.PrintingLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfPrintingLocalizationCHS(); 7. DevExpress.Xpf.Ribbon.RibbonControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRibbonLocalizationCHS();8. DevExpress.Xpf.RichEdit.Localization.XpfRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRichEditLocalizationCHS(); 9. DevExpress.XtraRichEdit.Localization.XtraRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXtraRichEditLocalizationCHS();。
DevExpress控件使用方法:第一篇gridControl详解GridControl(1)层次设计器有五种视图模式,banded gridview多行表头,数据还是一行一组,最靠近数据的表头与数据一一对应;advanced banded gridview 多行表头,数据可以多行一组;cardview 一个卡片是一组数据,其中左侧是标题,右侧是数据;layout view是card view的集合,布局可以自定义(2)视图视图的层次结构视图属性:可通过GridControl.Views访问所有视图。
可通过ColumnView.Columns访问当前视图的所有列(3)设计器(层次设计器中点击Run Designer可调出)设计器有四大功能:①主要功能的设计;②选择外观;③可以选择多个视图,内嵌编辑器的设置;④打印功能的设置① View:(a)Option:OptionsBehavior可以设置行为(是否允许新增行/是否允许删除行/是否允许编辑/是否允许展开所有分组)OptionsCustomization(是否允许排序/分组/过滤/列的移动/列的大小的调整)OptionsDetail(设置从表的属性)、OptionsFilter(过滤属性的设置)OptionsView(显示或隐藏某些东西,比如标题行)(b)AppearancePrint : (行高…)Columns://列的相应的属性FeatureBrowser://设置事件,Grid的绑定、列的绑定(有方法提示),什么都可以设置Layout:设置布局Group Summary Items添加分组统计② Appearance:Appearances可设置行的外观Format Conditions条件样式Style Schemes可设置主题(比较方便)③ RepositoryView Repository设计视图,与①差不多In-place Editor Repository内嵌编辑器④ Printing(4)gridControl:给该列添加组件(如按钮) 三种方法法一:打开设计器(Run Designer),选择左侧Repository,点击In-place Editor Repository(内嵌编辑器),点击Add右侧的下拉菜单,选择你想添加的控件,比如ComboBoxEdit,再在右侧编辑控件的属性,ComboBox的话就可以设置Data下的Items集合,然后点左侧Main里的Columns,点你想在上头添加控件的列,找右侧Data 下的ColumnEdit,点最右边的下拉菜单,点Existing左侧的加号,就能找到你刚才的控件,添加。
Delphi中使用TcxPagecontrol控件建立一个VCL应用程序,界面如下图
1.动态创建cxTabsheet的代码如下:
procedure TForm1.cxButton1Click(Sender: TObject);
var
newTabsheet:TcxTabSheet;
i:Integer;
begin
for i := 1 to 5 do
begin
newTabsheet:=TcxTabSheet.Create(self);
newTabsheet.Caption:=i.ToString()+ ' Tabs';
newTabsheet.Tag:=i;
newTabsheet.PageControl:=cxPageControl1;
newTabsheet.Visible:=True;
end;
end;
上述代码将动态创建5个cxTabsheet,执行结果如下
2.动态关闭当前激活的cxTabsheet,代码如下:
procedure TForm1.cxButton2Click(Sender: TObject);
begin
cxPageControl1.ActivePage.Free;
end;
3.动态指定关闭cxTabsheet,代码如下:
procedure TForm1.cxButton3Click(Sender: TObject);
begin
//关闭第2个TABSHEET
cxPageControl1.Pages[1].Free;
end;
4.动态指定激活cxTabsheet,代码如下:
procedure TForm1.cxButton4Click(Sender: TObject);
var
i:Integer;
begin
for i := 0 to cxPageControl1.PageCount-1 do
begin
if cxPageControl1.Pages[i].Tag =1 then
begin
cxPageControl1.ActivePage:= cxPageControl1.Pages[i];
Exit;
end;
end;
end;
5.下面演示如何在cxTabsheet动态加载窗体或控件:
新增加一个button控件,另外再新建一个VCL窗体—FORM2,编写如下代码
procedure TForm1.btn1Click(Sender: TObject); var
newTabsheet:TcxTabSheet; formControl:TForm2;
begin
formControl:=TForm2.Create(Self); newTabsheet:=TcxTabSheet.Create(self); newTabsheet.Caption:='动态加载窗体'; newTabsheet.PageControl:=cxPageControl1; newTabsheet.Visible:=True; formControl.Parent:=newTabsheet; formControl.Align:=alclient; formControl.Show;
cxPageControl1.ActivePage:=newTabsheet; end;
执行结果如下
Form2窗体如果去掉边框,显示效果如下。