item方法(itemstatechanged方法作用)

http://www.itjxue.com  2023-02-24 04:29  来源:未知  点击次数: 

excel的vba中,workbooks和worksheets既然都是集合,可为什么没有item方法呢

看了你对其他回答的提问

Collection,workbooks,worksheets都有Item,无论把他叫做方法还是叫做属性

如果你熟悉面向对象编程,用过VB中类模块,就不会有这样的疑问

简单说来,无论属性还是方法,都是类模块中的函数(这里不区分过程和函数的区别,这是VB特别的区分,在其他编程语言中他们都是函数)

但是对于类模块来说,除了可以用sub和function来写函数以外,为了使对象具有逻辑上的完整性又定义了所谓的属性,其实属性本质上任然是类模块中的一段函数

Property get

End Property 对应 function

Property let/set

End Property 对应 sub

除了名称上的不同,他们的功能几乎完全一样,但是从外部表现来看一个叫做方法一个叫做属性

其实他们都是一个东西,只是为了更好的描述对象所采用的不同叫法而已

vba中,item为什么在collection集合中是方法,而在worksheets集合中却成了属性

选择属性还是方法【MSDN】

一般来说,属性是关于某个对象的数据,而方法则是该对象可能被要求去执行的动作。有些的属性比较明显,比如?Color?和?Name,而另一些则明显的是方法,比如?Move?和?Show。

不过,就跟人类行为的各个方面一样,这里也存在一个界限不清的区域,在该区域一个参数可作为二者之中的任一个。

例如,为什么?Visual?Basic?的?Collection?类的?Item?方法是一种方法而不是一种索引属性呢?该集合中的这些项不恰恰是数据吗?一个设想的?Widgets?集合类的?Item?方法可能以任一种方式实现,如下所示:

'?Widgets?集合中对象的私有存储(这对于两种实现方法来说是相同的)。

Private?mcol?As?New?Collection

Public?Property?Get?Item(Index?As?Variant)?As?Widget

???Set?Item?=?mcol.Item(Index)

End?Function

-?或?-

Public?Function?Item(Index?As?Variant)?As?Widget

???Set?Item?=?mcol.Item(Index)

End?Function

这两种实现并非完全大相径庭。二者都是只读的,因此为了把?Widget?对象放到集合中,二者都依赖于?Widgets?类的?Add?方法。二者都将每一件事情委派给?

Collection?对象去做—甚至它们的错误也都由该?Collection?产生的!

详细信息???关于委派,在本章的后面的“代码重用的许多(内部)方面”和“创建自己的集合类”中作了解释。

在想方设法搞清某个成员是对象的数据,还是对象的行为的过程中,可能会真地变得吹毛求疵。例如,可能会争辩说那个?Item?是一种方法,因为该集合的确是在做什么事—浏览所需要的?

Widget。不过,这种论点通常对任何一种实现来说,都是有道理的。

可能会发现将这种论点转向其头部,并问问自己想怎样看待这些成员,这样会更有用一些。如果希望人们把它当作关于对象的数据来看待,就使之成为一种属性。如果希望人们把它作为对象所做的什么事情来看待,就使之成为一种方法。

从语法的角度

用属性过程来实现成员的一个很强的理由,依赖于想要在代码中使用该成员的方式。也就是说,允许?Widgets?集合的用户象下面这样编写代码吗?

Set?Widgets.Item(4)?=?wdgMyNewWidget

如果允许的话,那么就以读写属性来实现该成员(用“Property?Get”和“Property?Set”),因为方法不支持这种语法。

注意???在所碰到的大多数集合实现中,这种语法是不允许的。为集合实现?Property?Set?并不象看起来那么容易。

从“属性”窗口的角度

也可以暂时假定对象象一个控件。能想象到成员在“属性”窗口中,或者在某个属性页上显示吗?如果那样做并没有任何意义的话,就不要作为一种属性来实现该成员。

从可以感觉到错误的角度

已经将某个?Item?设置为只读的属性后,如果忘记了这一点,并试图将一个值赋给它,很可能就会发现?Visual?Basic?为某个?Property?

Get?所产生的错误信息—“不能给只读属性赋值”,这跟为某个?Function?

过程所产生的错误信息-“赋值号左边的函数调用必须返回变体或对象”相比较,理解起来要更容易一些。

作为最后一招

作为最后一招,往上抛硬币来作出决定。如果在本节主题中的其它参数看起来都不是那么让人确信的话,那么它就可能没有多大意义。

详细信息???属性过程是在本章前面的“向类中添加属性”引入的。而方法则在“向类中添加方法”作了讨论。

c++中item是定义什么型量的?

item 方法

返回集合中的当前项。

enumObj.item()

必选项 myEnum 参数为任意 Enumerator 对象。

说明

item 方法返回当前项。 如果集合为空或者当前项没有定义,那么将返回undefined 。

示例

在下面的代码中,使用了 item 方法返回 Drives 集合中的一个成员。

function ShowDriveList(){

var fso, s, n, e, x;

fso = new ActiveXObject("Scripting.FileSystemObject");

e = new Enumerator(fso.Drives);

s = "";

for (; !e.atEnd(); e.moveNext())

{

x = e.item();

s = s + x.DriveLetter;

s += " - ";

if (x.DriveType == 3)

n = x.ShareName;

else if (x.IsReady)

n = x.VolumeName;

else

n = "[驱动器未就绪]";

s += n + "br";

}

return(s);

}

传奇使用item1物品方法

1、首先打开电脑,在电脑上找到《传奇》这款游戏,并打开。

2、其次打开游戏以后在其主页面点击背包。

3、最后在背包内往下滑找到item1物品,点击该物品即可进行使用。

如何在QML应用中得到一个Item的所有属性,信号及方法

Item是QML语言中最基本的元素。有时为了方便,我们可以列出它里面的所有的属性,信号及方法。我们可以通过这个方法来修改我们的属性等。在QML语言中,所有的可视的控件都是继承于Item的。

下面我们来通过一个例子来展示如何这么做。我们可以设计一个简单的QML应用如下:

[html] view plain copy

在CODE上查看代码片派生到我的代码片

import QtQuick 2.0

import Ubuntu.Components 1.1

/*!

\brief MainView with a Label and Button elements.

*/

MainView {

// objectName for functional testing purposes (autopilot-qt5)

objectName: "mainView"

// Note! applicationName needs to match the "name" field of the click manifest

applicationName: "properties.liu-xiao-guo"

/*

This property enables the application to change orientation

when the device is rotated. The default is false.

*/

//automaticOrientation: true

// Removes the old toolbar and enables new features of the new header.

useDeprecatedToolbar: false

width: units.gu(100)

height: units.gu(75)

Page {

title: i18n.tr("properties")

Rectangle {

id: rect

x: 0; y: 0

width: 100; height: 100

color: "blue"

Component.onCompleted: {

var keys = Object.keys(rect);

for(var i = 0; i keys.length; i++) {

var key = keys[i];

// prints all properties, signals, functions from object

console.log(key + ' : ' + rect[key]);

if (key === "x") {

rect[key] = 100;

}

}

}

}

}

}

这里rect最初的坐标为(0,0)。在Component.onCompleted中,我们遍历所有的属性,信号及方法。我们把x的值修改为100。最后运行的结果如下:

在Qt Creator的“Application Output”窗口中,我们可以看到:

[html] view plain copy

在CODE上查看代码片派生到我的代码片

qml: objectName :

qml: parent : Page11_QMLTYPE_42(0x1a55340)

qml: data : [object Object]

qml: resources : [object Object]

qml: children : [object Object]

qml: x : 0

qml: y : 0

qml: z : 0

qml: width : 100

qml: height : 100

qml: opacity : 1

qml: enabled : true

qml: visible : true

qml: visibleChildren : [object Object]

qml: states : [object Object]

qml: transitions : [object Object]

qml: state :

qml: childrenRect : QRectF(0, 0, 0, 0)

qml: anchors : QQuickAnchors(0x1a49840)

qml: left : QVariant(QQuickAnchorLine)

qml: right : QVariant(QQuickAnchorLine)

qml: horizontalCenter : QVariant(QQuickAnchorLine)

qml: top : QVariant(QQuickAnchorLine)

qml: bottom : QVariant(QQuickAnchorLine)

qml: verticalCenter : QVariant(QQuickAnchorLine)

qml: baseline : QVariant(QQuickAnchorLine)

qml: baselineOffset : 0

qml: clip : false

qml: focus : false

qml: activeFocus : false

qml: activeFocusOnTab : false

qml: rotation : 0

qml: scale : 1

qml: transformOrigin : 4

qml: transformOriginPoint : QPointF(50, 50)

qml: transform : [object Object]

qml: smooth : true

qml: antialiasing : false

qml: implicitWidth : 0

qml: implicitHeight : 0

qml: layer : QQuickItemLayer(0x1b90010)

qml: color : #0000ff

qml: gradient : null

qml: border : QQuickPen(0x1b8bd50)

qml: radius : 0

qml: objectNameChanged : function() { [code] }

qml: childrenRectChanged : function() { [code] }

qml: baselineOffsetChanged : function() { [code] }

qml: stateChanged : function() { [code] }

qml: focusChanged : function() { [code] }

qml: activeFocusChanged : function() { [code] }

qml: activeFocusOnTabChanged : function() { [code] }

qml: parentChanged : function() { [code] }

qml: transformOriginChanged : function() { [code] }

qml: smoothChanged : function() { [code] }

qml: antialiasingChanged : function() { [code] }

qml: clipChanged : function() { [code] }

qml: windowChanged : function() { [code] }

qml: childrenChanged : function() { [code] }

qml: opacityChanged : function() { [code] }

qml: enabledChanged : function() { [code] }

qml: visibleChanged : function() { [code] }

qml: visibleChildrenChanged : function() { [code] }

qml: rotationChanged : function() { [code] }

qml: scaleChanged : function() { [code] }

qml: xChanged : function() { [code] }

qml: yChanged : function() { [code] }

qml: widthChanged : function() { [code] }

qml: heightChanged : function() { [code] }

qml: zChanged : function() { [code] }

qml: implicitWidthChanged : function() { [code] }

qml: implicitHeightChanged : function() { [code] }

qml: update : function() { [code] }

qml: grabToImage : function() { [code] }

qml: grabToImage : function() { [code] }

qml: contains : function() { [code] }

qml: mapFromItem : function() { [code] }

qml: mapToItem : function() { [code] }

qml: forceActiveFocus : function() { [code] }

qml: forceActiveFocus : function() { [code] }

qml: nextItemInFocusChain : function() { [code] }

qml: nextItemInFocusChain : function() { [code] }

qml: childAt : function() { [code] }

qml: colorChanged : function() { [code] }

qml: radiusChanged : function() { [code] }

这些都是我们可以用到的。通过这个方法,我们可以全面地了解rect的所有属性。特别适用于一些动态生产的控件。我们可以用来修改它们的一些属性等。

(责任编辑:IT教学网)

更多

推荐Flash教程文章