PB控件属性之Graph

Graph图形控件

【其他】


类型轴--Category--String型、数值型、Date型、Datetime型和Time
值轴--Value--数值型、Date型、Datatime型和Time
系列轴--Series--String

图形外观
PowerBuilder
提供了17种图形外观,可以粗略划分为平面图形和立体图形两大类,也可以更细致地划分为5类,即(1)条型、列型(包括它们的立体变形);(2)区域和线型图形(包括它们的立体变形);(3)堆积图;(4)饼型图(包括立体变形);(5)散点图。

图形控件的三种使用方式。使用Graph显示样式的数据窗口是Graph类型控件最常使用的一种方式,因为这种方式提取数据比较方便,运行时动态改变要查看的范围也比较灵活。但是,由于这种使用方式的数据来源只局限于数据库,所以当应用程序还需要应用处理其他来源的数据时可以考虑使用窗口中的Graph控件。最后一种是在数据窗口中的Graph控件,因为这种方式不能自动提取数据,需要编写的脚本比较多,所以这种方式使用比较少。但是,因为提取数据都是由脚本完成,所以开发人员可以有更多的灵活性,可以让用户在运行时根据需要更灵活地控制控件的运行,所以在高级的应用软件中该控件还是经常使用的。


【属性】

▲Title属性:该届性保存的是Graph的标题内容,在控件的上方显示的大字标题,是String类型的属性。创建Graph控件后首先就要修改该属性,该属性应该说明图形中数据的用途、统计范围等信息。该属性可以在运行时修改。比如,修改窗口中Graph控件gr_1的标题,可以使用gr_1.title="商品销量统计";要修改Graph显示样式的数据窗口对象的标题,可以使用dw_1.object.gr_1.title="商品销量统计";如果要修改数据窗口对象中Graph控件
gr_1
的标题,可以使用语句dw_1.object.gr_1.title="商品销量统计"

▲GraphType属性:指定图形的外观类型。该属性的设定比较直观,都有相应样式的图标,在开发时设定只要在相应的属性窗口中选择就可以了。如果在运行时设定,可以用脚本修改控件的属性取值。对于窗口中的Graph控件使用相应的枚举值,gr_1.GraphType = Pie3D!;对于数据窗口中的控件或者Graph显示祥式的数据窗口使用相应的数值,dw_1.object.gr_1.graphtype= 17

▲Axis.Label属性:该属性可以设定不同坐标轴的标签。其中Axis可以是categoryvaluesseries三个。当统计图的设置需要根据用户的选择来确定时,需要在运行时修改坐标轴标签,可以使用该属性。
窗口中的Graph控件gr_1
gr_1.category.label = "haha"
gr_1.series.label = "hoho"
gr_1.values.label = "hehe"
数据窗口控件对应的数据窗口对象中图形控件
gr_1
dw_1.object.gr_1.category.label = "xaxa"
dw_1.object.gr_1.series.label = "xoxo"
dw_1.object.gr_1.values.label = "xexe"
图形显示样式的数据窗口中图形gr_1(同上)

▲Legend属性:当Graph中有系列时该属性可以控制例图(legend)是否显示以及显示在什么位置。数据窗口中取值为数字,窗口控件中的取值为枚举型。
窗口中的Graph控件gr_1gr_1.legend = atleft!
数据窗口控件对应的数据窗口对象中图形控件gr_1和图形显示样式的数据窗口中图形
gr_1:
dw_1.object.gr_1.legend = 1

(其他属性见帮助)

**Graph控件的属性

General属性页
▲GraphType
属性:该属性用来定义图形控件的外观。PowerBuilder提供了17种图形外观,见前面

▲SeriesSortCategorySort属性:该属性确定系列轴和分类轴的排序方式,是枚举型属性,有三个可用的取值:Ascending!为升序排列,Descending!为降序排列,Unsort!为原始顺序。

▲Legend属性:该属性用来定义是否显示例图以及显示在什么位置。可用的取值有atbottom!(底部),attop!(上面),atleft!(左面),atright!(右面)和nolegend!(不显示)。

▲Perspective属性:该属性用来确定图形和窗口之间的距离,只适用于三维图形。 通过拖动滑块可以调整该属性取值的大小,滑块拖动的同时就可以看见效果。

▲Elevation属性:该属性用来调整三维图形的视角,只适用于三维图形。拖动属性窗口中该属性的滑块向左移动时图形顺时针旋转,向右移动时图形做逆时针旋转。

▲Rotation属性:该属性在水平角度旋转图形,只适用于三维图形。该属性和上面的Elevation属性相配合,可以给用户最佳的观看角度。当然,在程序运行时允许用户修改这两个属性是最好的。

▲OverLapPercent属性:该属性确定图形的各个系列的重叠程度,以百分比的形式表示,该属性适用于平面图和列型图。在属性窗口中可以通过调节滑块来调整属性的取值。

▲Spacing属性:该属性用来确定分类轴上数据条或列之间的距离大小,以占用条或者列宽度的百分比表示。该属性不能用于平面区域图、平面线型图、平面饼图和散点图。例如,gr_1.Spacing=110表示数据条之间的距离为条本身宽度的110%

▲Depth属性:该属性用来调整三维图形的厚度,只适用于三维图形。

Axis属性页
▲Axis
下拉框:该下拉框用来选择要设置属性的坐标轴,可以选择的值有CategoryValues,当图形外观为三维并且有系列轴时还可以选择Series。进入到Axis属性页时首先就应该明确该下拉框的取值。选择不同的轴,该属性页中的属性即为选定轴对应的属性。当在脚本中修改图形控件的外观时,也应该指定是对哪个坐标轴的属性进行操作。语句格式是:Graphcontrolname.axisname.property=属性值。其中,axisname的值和该下拉框的可用值相同,property为坐标轴的属性。

▲Label属性:该属性用来定义Axis下拉框中选中的坐标轴的标签。上面已经介绍过如何在脚本中修改该属性,在开发环境中可以直接输入标签的内容。

▲ShareBackEdge属性:布尔类型属性,该属性用来指定三维图形是否有背景阴影。该属性缺省为True,表示背景有阴影。

▲AutoScale属性:布尔类型的属性,表示是否自动根据添加的数据值确定轴上显示的数据的刻度,即是否自动确定数据的最大值和最小值。并不是对所有类型的图形外观都可以修改该属性的,绝大多数的图形外观中该属性都为True并且不允许为False,只有散点图可以修改该属性为False或者为True

▲DataType属性:该属性用来确定在坐标轴上显示的数据的类型。不同的坐标轴可以使用的数据类型不同,在前面已经做过详细的介绍。在开发环境中通过选择可以指定坐标轴的数据类型。

▲RoundToRoundToUnit属性:这两个属性确定在AutoScale属性选中时轴上刻度的最大值和单位。当坐标轴变量的取值大于RoundTo属性的取值时,该坐标轴的最大刻度自动调整增加RoundTo的整数倍。比如,RoundTo取值为15,而坐标轴变量取值为18,则自动将该轴的最大刻度调整为30;如果坐标轴的最大取值为31,则坐标轴自动调整最大刻度为45。当坐标轴变量的最大取值都小于RoundTo属性值时,则坐标轴的最大刻度为RoundTo的取值。该属性的设置要和坐标轴的数据类型相匹配。RoundToDouble类型,RoundToUnit是枚举类型,它的取值范围取决于坐标轴的数据类型,坐标轴的每种数据类型都对应一些可用的RoundToUnit取值。比如,当坐标轴的DataType属性为AdtDate!时,RoundToUnit的取值可以为rndDefault!rndyears!rndMonths!rndDays!等。

▲MinimumValueMaximunValue属性:当AutoScale属性为False时该属性可用,同时RoundToRoundToUnit属性不可用。所以只有散点图中可以使用该属性,该属性用来设置坐标轴的最大值和最小值。

▲ScaleType属性:该属性设置刻度的类型。通常的刻度类型是线型的,但有时也许需要对数类型的刻度。该属性的三个可用值是Linear!Log10!Loge!

设置主刻度线:坐标轴的刻度线可以进行二级划分,即主刻度线和次刻度线,这样读取数据更方便、快捷。主刻度线的设置需要一组属性,包括主刻度线的个数(Major Divisions),刻度线的类型(MajorTic属性,可用的取值有4个:Outside!表示向外,Inside!表示向内,Straddle!表示交叉和Notic!表示没有刻度线),是否显示主刻度线网格线(MajorGridLine属性,有6个可用的值,可以直接在下拉框中选择需要的类型),每组几个刻度显示标签(DisplayEveryNLabels属性)等。

设置次刻度线:次刻度线的许多属性和主刻度线的类似,包括次刻度线的个数(MinorDivisions属性),次刻度线的类型(MinorTic)和是否显示次刻度网格线(MinorGridLine)等。

线条风格:用来指定主轴线(PrimaryLine属性)、辅助轴线(SecondaryLine属性)、0值线(OriginalLine)和框架线(Frame)等的线段类型。可以使用的类型有Continuous!Dash!Dot!DashDot!DashDotDot!Transparent!

Text属性页
该属性页中设置控件各个部分显示的文字内容和文字的显示方式。文字的这些显示属性是通过grDispAttr对象来定义的,可以在PB提供的工具Browser窗口中查看该对象的详细属性。在脚本中需要引用这些属性时可以使用如下格式:
GraphControlName.AxisName.grDispAttrName.Property
其中的Property可以从Browser窗口中查得,其他表示相应的属性。比如,要修改Graph控件gr_1Series坐标轴的字体显示属性为Italic,可以使用下面的语句:
gr_1.Series.DispAttr.Italic=True

▲TextObject下拉框:在图形控件中有很多的文本对象,在设定属性之前应该首先指定需要设定哪些文本对象的属性,该下拉框中就是要选择设定属性的文本对象。各个取值的含义如下:
Title
图形控件的标题
Value Axis Label
数据轴的标签
Legend
例图
Value Axis Text
数据轴的文本
Category Axis Label
分类轴的标签
Series Axis Label
系列轴的标签
Category Axis Text
分类轴的文本
Series Axis Text
系列轴的文本

▲DisplayExpression属性:该属性确定文本对象的显示内容,单击右侧的省略号按钮弹出编辑窗口,在编辑窗口中可以编辑表达式。表达式中可以使用运算符以及系统为Graph控件提供的一些缺省变量,这些都可以在编辑窗口中通过选择来组合表达式。

▲Escapement属性:该属性用来旋转文本对象的显示方向(对于标题和例图不可用)。例如,在TextObject下拉框中选择Category Axis Label文本时,然后在Escapement属性框中输入900,则文本对象逆时针旋转了90度,变成了垂直显示。在脚本中需要控制文本对象的旋转角度,可以用脚本修改相关对象的Escapement属性。比如修改gr_1的分类轴上标签显示方向:gr_1.Category.LabelDispAttr.Escapement=1800

数据窗口中的图形控件和Graph显示样式的数据窗口对象的属性
这两种情况下的图形实际上是相同的,都是图形控件,并且都可以为图形命名,使用该名称引用图形控件。下面的介绍中对这两种情况不加以区分。

▲Data属性页
该属性页用来设置Graph控件最重要的几个属性,即图形控件的数据来源。CategoryValueSeries分别用来设定几个轴的数据来源,可以直接选择其中的字段或者表达式,也可以手工输入,数据窗口对象中的很多表达式在这里都可以直接使用。比如,可以定义Day(RegDate)Series的数据源,其中RegDate是一个Date类型的字段,Day是一个提取日期的函数。对于初学者如果不能确定表示式是否正确,一个好的方法是将表达式首先在数据窗口对象的计算字段表达式窗口中进行校验,如果通过则可以使用。使用表达式可以更方便、精确地控制图形的显示。
数据窗口中的Graph控件可以选择显示数据的范围为pageall,而Graph显示样式的数据窗口只能选择all,即所有的数据。

▲General属性页
该属性页中设置常用的属性,Graph显示样式的数据窗口有该属性页,实际上该属性页和其他显示样式的数据窗口区别不大,只是增加了NameLine ColorShadeColor三个属性,这三个属性分别用来设置图形控件的名称、线条的颜色和阴影的颜色,其他属性参见前面关于数据窗口对象的介绍。

▲Graph属性页
该属性页设置图形的外观,很多属性都和窗口中的Graph控件在General属性页中的同名属性含义是相同的,在此不再赘述。


【函数】

Graph控件函数

★AddCategory函数:函数的语法是controlname.AddCategory(categoryname),作用是添加一个分类轴。只有当分类轴的数据类型为string时可以使用该函数。函数执行成功返回新添加分类轴的索引号,如果已经有同名的分类轴存在则返回同名分类轴的索引号。当原分类轴设置了排序属性,则新添加的分类轴按照原规则自动调整到适当的位置。函数执行错误返回-1。当需要在指定的位置添加分类轴时可以使用InsertCategory函数,当需要添加非string类型的分类袖时使用InsertCategory函数。例如,gr_1.addcatagory("pcs")的作是向图形控件中添加一个名称为pcs的分类轴。

★AddSeries函数:函数的语法是controlname.AddSeries(seriesname),作用是向图形控件controlname中添加名称为seriesname的系列轴。其中,seriesnamestring类型的参数,
是要添加的系列轴的名称。函数执行成功返回新添加的系列轴的索引号,如果已经有同名系列轴存在,则返回同名系列轴的索引号。函数执行错误返回-l。当需要添加其他类型的系列轴时使用InsertSeries函数。例如,向图形控件gr_1中添加一个名称为costs的系列轴,并保存它的索引号,可以使用语句:ls_s = gr_1.addseries("costs")

★AddData函数:作用是向图形控件的数据轴添加数据,该函数有两种语法格式。controlname.AddData(seriesnumber,datavalue {,categoryvalue})用于除了散点图之外的所有形式的图形控件,而controlname.AddData(seriesnumber,xvalue,yvalue)专门用于散点图。第一种语法格式时,将数据添加到指定系列轴的指定分类轴上(如果指定了分类轴)或者最后一个分类轴上(没有指定分类轴);当指定的分类轴不存在时则直接创建该分类轴,并按照原来分类轴的排序规则直接将该分类轴调整到适当的位置,然后将数据添加到相应的位置;如果指定的分类轴已经存在则数据将替换原来的数据。第二种语法格式时,xvalueyvalue分别为要添加的XY轴数据的大小,添加的位置由参数seriesnumber确定。这两种格式的函数,不管哪种都经常和函数FindSeries搭配使用,除非只有数量确定的系列轴。

★SetDataStyle函数:该函数有三种语法格式,分别用来设定图形控件的颜色,线型和填充方式等。语法如下:
controlname.SetDataStyle(seriesnumber,datapointnumber,colortype,color)
controlname.SetDataStyle(seriesnumber,datapointnumber,linestyle,linewidth)
controlname.SetDataStyle(seriesnumber,datapointnumber,enumvalue)
其中controlnameGraph控件的名称。各个参数的含义如下:
seriesnumber
integer类型,是要设置的数据所在系列的索引号
datapointnumber
integer类型,是要设置的数据所在数据点的索引号(也可以理解成是category的索引号)
colortype
GrcolorType枚举类型,用来指定要设置数据哪方面的颜色。可用的取值有Foreground!(文本颜色),Background!(背景颜色),LineColor!(线段的颜色)和Shade!(阴影的颜色,只适用于三维图形)
color
long类型,为colortype的新颜色。经常使用GRB函数来计算颜色,也可以按65536*Blue + 256*Green + Red的公式自己来计算颜色的取值
linestyle
LineStyle枚举类型,用来指定线段的类型。可用的取值有Continuous!Dash!DashDot!DashDotDot!Dot!Transparent!
linewidth
integer类型,是用象素数量来表示的线段的宽度

enumvalue
:枚举类型,用来设置数据点的填充方式或者符号类型,系统会根据参数的取值自动识别是设置填充方式还是符号类型。当设置填充方式时的可用值有Bdiagonal!Diamond!Fdiagonal!Horizontal!Solid!Square!Vertical!
三种语法格式中前面的两个参数都相同。如果想要将经过颜色设置的数据点恢复到缺省的颜色,可以使用函数gr_1.ResetDataColors(seriesnumber,datapointnumber)

★SetDataPieExplore函数:该函数是一个非常有用的函数,可以使饼型图中某部分的图形分离出来,在进行数据分析时经常使用该函数进行强调显示。该函数只适用于饼型图,语法是:controlname.SetDataPieExplode(serisnumber,datapoint,percentage),其中,参数percentage表示分离的饼块离开饼型图中心的距离占饼型图半径的百分比,取值范围为0-100,可以为小数。函数执行成功返回1,执行失败返回-1,如果参数为NULL,则返回NULL。经常在图形控件的DoubleClicked事件中调用该函数和函数ObjectAtPointer配合。使用户双击部分分离显示。如:
integer li_series,li_datapoint
grobjecttype lgobt_clicked
if this.graphtype <> piegraph! and this.graphtype <> pie3d! thenreturn
lgobt_clicked = this.objectatpointer(li_series,li_datapoint)
if (li_series > 0 and li_datapoint > 0) then
this.setdatapieexplode(li_series,li_datapoint,50)
end if
和该函数相关的函数是GetDataPieExplode,它的作用是查看某个饼块是否从饼型图中分离出来,并且得到分离出来的饼块的百分比。函数的语法是:controlname.GetDataPieExplode(series,datapoint.percentage)

★SetSeriesStyle函数:该函数有四种语法格式,分别用来设置系列轴的颜色、线型、填充方式与是否重叠等。语法如下:
controlname.SetSeriesStyle(seriesname,colortype,color)
controlname.SetSeriesStyle(seriesname,linestyle,linewidth)
controlname,SetSeriesStyle(seriesname,enumvalue)
其中,参数seriesnamestring类型的系列轴的名称,其他参数的意义和函数SetDataStyle中的同名参数是相同的。该函数经常和SeriesName函数配合使用,来读取已知索引号的系列轴的名称,然后再调用该函数设置其风格。如,下面的脚本用来改变用户点击处的系列轴的填充方式:
string ls_seriesname
integer li_seriesnbr,li_seriespoint
grobjecttype lgobt_mousehit
lgobt_mousehit = this.objectatpointer(li_seriesnbr,li_seriespoint) //
获取用户点击信息
if lgobt_mousehit = typeseries! then //
如果点击的是系列轴
ls_seriesname = gr_1.seriesname(li_seriesnbr) //
获取点击的系列轴的名称
this.setseriesstyle(ls_seriesname,horizontal!) //
设置系列轴的填充方式
end if
上面的函数可以允许应用程序在运行时让用户根据自己的偏爱来修改图形控件的外观,另外还应该让用户选择他所偏爱的图形类型。这可以通过改变控件的graphtype属性来实现,
可以构建下拉列表拒和下拉图形列表框等很多方式,让用户来选择图形控件的外观。

其他函数(具体语法见帮助)
FindaCategory
查找特定标签内容的分类轴的索引号
FindSeries
查找特定标签内容的系列轴的索引号
GetData
获取指定系列、数据点处的数据
GetDataPieExplode
获取饼图分离的比例
GetDataStyle
获取数据点的外观属性,具体语法取决于要获取哪方面的属性
GetDataValue
获取指定系列轴、指定数据点的数据
GetSeriesStyle
获取系列轴的外观属性,具体语法取决于要获取哪方面的属性
ImportClipBoard
将剪贴板上的数据插入到图形控件中
ImportFile
从指定的文件中输入数据到图形控件中
ImportString
从指定的字符串中输入数据到图形控件中
ModifyData
修改指定系列轴、指定数据点的数据,有两种语法格式
SaveAs
按照指定的格式保存图形控件中的数据
SeriesCount
计算图形控件中系列的数目
SeriesName
获取指定索引号的序列的名称
CategoryCount
计算图形控件中分类轴的数目
CategoryName
获取指定索引号的分类轴的名称
DataCount
计算指定系列轴上数据点的数目
DeleteCategory
删除指定的分类轴
DeleteData
删除指定系列轴上的指定的数据点
DeleteSeries
删除指定的系列轴
ObjectAtPointer
获取用户鼠标点击处控件的相关信息
★ObjectAtPointer
函数是一个非常重要的函数,经常在图形控件的Clicked事件或者DoubleClicked事件中用该函数获取用户鼠标点击处控件的相关信息,进而判断是否选择了图形控件的特定部件,从而决定是否继续执行其他脚本。该函数是一个比较重要的函数,应该加以掌握。函数语法是:
controlname.objectAtPointer({Graphcontrol,}seriesnumber,datapoint)
其中,controlname是图形控件的名称,通常在图形控件的相关事件中编写脚本时可以使用
This
指代词或者省略;当该函数用于数据窗口时参数Graphcontrol为数据窗口对象中的图形控件名称,这时controlname为数据窗口控件的名称。另外两个参数都是用来保存相关信息的,其中seriesnumber保存鼠标点击的系列轴的索引号,datapoint用来保存鼠标点击处的数据点的一个integer类型的参数。函数返回值为grObjectType类型的枚举值,用来指明用户所点击的是图形控件的哪一部分。经常对该函数的返回值进行判断,看用户是否选择了控件的特定部分。返回值有如下取值:
TypeCategory!
分类的标签
TypeLegend!
在例图框中,但不在系列标签上
TypeCategoryAxis!
分类轴或者标签间
TypeSeries!
联结系列的数据点的线(当图形为线型时),或者是例图框内的系列标签
TypeCategoryLabel!
分类轴的标签
TypeSeriesAxis!
三维图形的系列轴
TypeData!
数据点或者其他数据标记
TypeSeriesLabel!
三维图形系列轴的标签
TypeGraph!
图形控件内不是另一个grObjectType的任何位置
TypeTitle!
图形的标题
TypeValueAxis!
包括指标签的值轴
TypeValueLabel!
值轴的标签


**
数据窗口中的Graph控件

如何在程序运行时控制数据宙口中的图形控什,使其外观、数据显示等都符合用户的要求,这些情况和窗口中的图形控件是类似的。因为数据窗口中的图形控件可以自动提取数据,所以大部分工作是修改控件的图形外观以及如何获取图形控件中的相关信息。窗口中图形控件的很多函数也可以使用,语法稍微有些区别,一般都比其多一个参数用来指定图形控件的名称,并且这个参数是第一个参数。比如,获取用户在数据窗口中图形控件上点击的信息,可以使用如下语法格式的ObjectAtPointer函数:
controlname.objectatpointer(graphcontrol,seriesnumber,datapoint)
而在窗口中的语法格式如下:
controlname.objectatpointer(seriesnumber,datapoint)
其中,参数Graphcontrolstring类型的参数,为数据窗口中的图形控件的名称。函数执行后的返回值和窗口中Graph控件的同名函数的返回值相同。


**
*
datastore lds_data
integer li_i
integer li_amount
string ls_name,ls_date
integer li_sno

lds_data = create datastore
lds_data.dataobject = "d_sale"
lds_data.settransobject(sqlca)
if lds_data.retrieve() <= 0 then return

for li_i = 1 to lds_data.rowcount()
li_amount = lds_data.getitemnumber(li_i,"amount")
ls_date =string(month(date(lds_data.getitemdatetime(li_i,"saledate"))))
ls_name = lds_data.getitemstring(li_i,"name")

li_sno = gr_1.findseries(ls_name)
if li_sno <= 0 then
li_sno = gr_1.addseries(ls_name)
end if
gr_1.adddata(li_sno,li_amount,ls_date)
next
*grobjecttype lgot_obj
integer li_series,li_po

lgot_obj = gr_1.objectatpointer(li_series,li_po)

if lgot_obj = typedata! then
st_1.text = string(this.getdata(li_series,li_po))
st_1.x = parent.pointerx()
st_1.y = parent.pointery()
st_1.visible = true
end if

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天乙智能图形编辑浏览器是矢量图形软件,可用来制作,显示,管理一定格式的矢量图形文件。不仅支持图形画面的无级缩放和无限制移动,以及图形闪烁,动画显示,图形形态变化等功能,并且支持图形内部及个图形对象间的逻辑关系操作,实现图形内部及图形间的形态变化和行为动作的联动,生动形象地反映事物间运动变化的关系。支持动态图形文件装入和显示(超级连接),及声音文件的同步播放。支持网格设置,剪贴板及图形模板操作,支持图形,图元的无级缩放,使图形画面的编辑制作方便快捷。画面的移动可选择通常的滚动条操作方式或对于地理信息等复杂的图形画面可选择鼠标拖动方式。支持位图图形背景,可以以一个位图文件作为画面背景,位图可以采用正常,居,平铺和拉伸方式显示。本软件主要功能的实现封装于SmartGraphX部件(ActiveX控件),便于用VC ,Delphi,VB,PB等高级语言进行二次开发。与其它开发工具有良好的接口。 2.1版新增功能:主要有图形库功能,图形库文件,对图形的多选操作,图形的旋转和镜像操作,文本对齐方式,特效文本显示,渐变显示,立体图形,自动显示选择等。SmartGraphX新增SetCartoonValue方法,推出SmgInetX部件用于 Web网页。 软件特点: 画面支持无级缩放和移动。 纯矢量图形,占用资源少,有利于图形文件在网络上传输。 支持图元闪烁。 科学的动画实现方法。制作方便,节省资源。 动画显示不仅支持连续的动作变化,而且支持颜色的渐变。 支持静态显示图形的某个动画步骤。以反映图形的状态。 支持声音文件播放,配合图形闪烁和动画显示,可实现极佳的效果。 事件触发动作机制,可以表现图形间复杂运动变化的逻辑关系。 支持不规则形状选择焦点的显示。 支持图形画面的超级连接,便于切换。 支持位图文件(Bitmap)背景,多种背景显示方式。 开放型设计,使用ActiveX控件技术,便于用户进行二次开发。 支持两种画面移动方式,即鼠标拖动和滚动条操作方式。 图形画面的编辑制作方便快捷。 图形库功能功能。 图形的多选操作。 图形的旋转和镜像操作。 文本有各种对齐方式。 可实现渐变显示,特效文本显示,立体图形显示,自动显示选择等。 SmgInetX部件可用于Web网页制作。 软件应用对象: 小规模地理信息 演示说明 电化教学 产品介绍 应用软件界面设计(通过ActiveX技术,用SmartGraphX部件进行二次开发) 工业控制软件界面设计(通过ActiveX技术,用SmartGraphX部件进行二次开发) Web网页制作 娱乐,游戏
Powerbuilder 9.0实用教程》源代码 1.本源代码包括以下章节源代码: 第01章 认识PowerBuilder 9.0、第05章 创建应用程序、第06章 创建窗体、第07章 创建菜单和工具栏、第10章 应用程序的调试和发布、第11章 典型小型实例赏析、第12章 图书管理系统实例和第13章 学生选课系统实例。 2.源代码使用方法参见《附录A 源代码的使用方法》文件。 __________________________________________________________________ 注意: 1.建议读者下载源文件后,将该源文件进行备份,读者使用副本源文件进行学习,这样一但出问题就不用再从网上下载了。 2.将源文件“数据库文件”文件夹一定要复制到C盘根目录下,这样才能保证您连接数据库文件成功,具体方法参见《附录A 源代码的使用方法》。 对于书源代码除了数据库外其他都能正常使用,而示例数据库需要用户在自己的计算机上注册后才能使用,如果不注册数据源就运行应用程序是检索不到任何数据的,下面以连接学生选课系统数据库为例具体介绍如何连接数据库文件。 第1章 认识PowerBuilder 9.0 1 1.1 PowerBuilder 9.0简介 1 1.1.1 国软件业现状 1 1.1.2 为什么要学习PowerBuilder 9.0 2 1.1.3 PowerBuilder的概述 2 1.1.4 PowerBuilder的特点 3 1.1.5 PowerBuilder 9.0的新特性 6 1.2 安装PowerBuilder 9.0软硬件需求 9 1.2.1 软件环境需求 9 1.2.2 硬件环境需求 9 1.3 PowerBuilder 9.0功能界面介绍 10 1.3.1 PowerBuilder 9.0界面简介 10 1.3.2 常用功能菜单 10 1.4 工作环境设置 16 1.4.1 工具栏的设置 16 1.4.2 窗口排列 19 1.4.3 快捷键设置 20 1.4.4 系统选项设置 21 1.5 用5分钟制作一个简单实例 22 1.5.1 实例运行界面 22 1.5.2 新建一个工作空间对象 22 1.5.3 新建一个应用程序对象 23 1.5.4 创建窗体 23 1.5.5 为应用程序添加open事件代码 25 1.6 小结 27 1.7 习题 27 第2章 编程基础知识 28 2.1 PowerScript脚本语言书写规则 28 2.1.1 忽略大小写 28 2.1.2 语句的断行、续行和分割 28 2.1.3 注释 29 2.2 数据类型 29 2.3 变量和作用域 30 2.3.1 定义变量 30 2.3.2 引用变量 30 2.3.3 变量的作用域 30 2.4 操作符 31 2.5 标识符 32 2.5.1 标识符的构成 32 2.5.2 匈牙利命名法 32 2.6 常用代词 33 2.7 控制语句 34 2.7.1 判断语句 34 2.7.2 循环语句 36 2.8 结构 38 2.8.1 创建结构 38 2.8.2 使用结构 40 2.9 函数 40 2.9.1 Open()和Close()函数 41 2.9.2 MessageBox()函数 41 2.9.3 类型转换函数 41 2.9.4 类型判断函数 42 2.9.5 其他函数 42 2.10 ODBC数据源与专用数据库接口 43 2.10.1 什么是ODBC数据源 43 2.10.2 专用数据库接口 43 2.10.3 连接数据库 44 2.10.4 配置ODBC 48 2.11 SQL语言 49 2.11.1 SQL语言的格式 49 2.11.2 在PowerBuilder 9使用SQL语句 51 2.12 类和对象的概念 56 2.12.1 继承 57 2.12.2 重载和多态性 57 2.12.3 封装 57 2.12.4 属性、事件和函数 57 2.13 在PowerBuilder 9.0实现面向对象编程 58 2.13.1 创建对象 58 2.13.2 设置对象属性 59 2.13.3 编写事件代码 59 2.13.4 实现继承对象 60 2.14 用户对象和用户事件 61 2.14.1 用户对象分类 61 2.14.2 定义用户对象 62 2.14.3 使用用户对象 64 2.14.4 用户事件 66 2.15 小结 67 2.16 习题 68 第3章 创建数据库 69 3.1 数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值