请问如何定义控件的二维数组?比如Shape(6)(5)

azur1um 2004-05-04 02:01:53
作毕业设计用,谢谢
...全文
146 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
azur1um 2004-05-05
  • 打赏
  • 举报
回复
原来酱子呀,郁闷了。
BitBlt 2004-05-05
  • 打赏
  • 举报
回复
你弄错了!
load shape(6*5)以后,
shape(m,n)=shape(6*m+n)
而不是shpae(m*n)!

我估计你是玩hash map玩多了,把他忘掉吧。
azur1um 2004-05-05
  • 打赏
  • 举报
回复
难道还要在Index上构造一个没有冲突的散列?
azur1um 2004-05-05
  • 打赏
  • 举报
回复
嗯,在所谓“离散对应法”中,只是人为的赋予每个乘数以“维”的意义,和数组逻辑中的正反逻辑有点象哈,高电平表示1还是0全归我们说了算。

今天早上又想了一下,在“离散对应法”,会出现不同的二维方格映射到相同的一维方格的情况,比如,shape1(1*2)与shape1(2*1)映射到shape1(2),以及shape(2*3)与shape1(1*6)映射到shape(6)上,如果数组的第一行或列都以0开头,那么整个一行一列的元素都映射到shape1(0)上了!哪位巨星给解释一下?
BitBlt 2004-05-04
  • 打赏
  • 举报
回复
离散对应法,有意思!
一直这么用,但没总结过.

其实VB的一维数组跟二维数组是不同的,
VC不管多少维都是完全想同的(编译后).
azur1um 2004-05-04
  • 打赏
  • 举报
回复
我把今天各位给的方法总结了一下,分两种,一个是以BitBlt和onlineboy为代表的“离散对应法”,可以用i,j来进行变量的循环遍历,但是对于一维数组的下标index的值来说,是不连续的。这实质上是一种技巧。
另一个就是flyingscv和kmzs说的“没举对应法”,和c++中的指针数组很象哈?

从大一起就学的c,考研数据结构是c++描述,接触vb才一个月,所以问出如此不成体统的菜鸟问题,以及对正确的方法没有表现出足够的敏感,还请各位多包涵。
azur1um 2004-05-04
  • 打赏
  • 举报
回复
嗯,FLYINGSCV老大,我试了你的方法了,得在Form1_Load()中一个一个的自己加set aaa(?,?)=shape1(?)吧?实质是穷举法吗!的确实现我的目标了,不过累死我也!呵呵,我吃完晚饭后,自己添了2个函数,借助Index属性,进行一维和二维之间的转换,好像更省力一些,呵呵。谢谢老大,你真是高手,您给的锦囊我收着了,日后一定能用上,谢谢你!也谢谢回贴的各位大侠!以后我有什么问题还请各位多帮忙!^_^

ps: 毕设是算法的动态演示与可视化(algorithm dynamic demonstration and visualization),其中布线问题部分,一个二维数组的元素的值对应一个shape方块的状态,窃以为要是能将其一一对应上觉得直观一些,可以把精力集中在主要问题上。^^
flyingscv 2004-05-04
  • 打赏
  • 举报
回复
dim aaa(6,5) as shape
set aaa(0,0)=shape1(0)
....

没什么必要哈:)
如果真的可以给你后续编程带来很大方便那就试试咯
kmzs 2004-05-04
  • 打赏
  • 举报
回复
dim aaa(6,5) as shape
onlineboy 2004-05-04
  • 打赏
  • 举报
回复
不行哦,否则Shape.Index怎么返回?呵呵
用Shape(6*5)吧,一样的资源占用,无非多一步数值运算
liangwucheng 2004-05-04
  • 打赏
  • 举报
回复
up
azur1um 2004-05-04
  • 打赏
  • 举报
回复
请允许我再阐述一下我的问题。
我想在窗口上显示30个Shape控件,希望能以6*5的格式显示出来,当然可以手动做出来。我想把这30 个Shape控件做成一个6*5的二维数组,以便以后调用。
我在窗口上创建一个Shape控件,复制,粘贴以后,提示是否要创建一个数组,选“是”以后两个Shape的名字就变成Shape1(0)和Shape1(1)了,可以在属性中找到Index管理上述内容。
我想问的是,可否出现Shape1(0)(0),Shape1(0)(1)这样的形式,这样可以给我后续编程带来很大方便。
谢谢!
azur1um 2004-05-04
  • 打赏
  • 举报
回复
谢谢各位老大,十分感激。
flyingscv 2004-05-04
  • 打赏
  • 举报
回复
dim aaa(6,5) as shape
BitBlt 2004-05-04
  • 打赏
  • 举报
回复
有两种方法:
1、shape6(5)
2、shape(6*5)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧