以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何根据相对位置确定其坐标? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17939) |
||||
-- 作者:don -- 发布时间:2012/3/29 11:33:00 -- [求助]如何根据相对位置确定其坐标? 如附件中,如何根据左侧控件及顶上控件的宽及高,确定它的坐标? 1.[A01]因无左侧控件及顶上控件,则它坐标为(0,0);
2.
A02左侧为A01,无顶上控件,表示它与左侧控件等高,则它坐标为(300,0); 3. A07顶上为A03,无左侧紧控件,表示它与顶上控件等宽,则它坐标为(600,100); 4. BBB左侧为A01,顶上为AA1,则它坐标为(300,1800); 布局如Excel表的下面部分
[此贴子已经被作者于2012-3-29 12:46:15编辑过]
|
||||
-- 作者:唐尸三摆手 -- 发布时间:2012/3/29 13:31:00 -- BBB左侧为A01,顶上为AA1,则它坐标为(300,1800); 坐标有问题吧,是不是应该300,1500 |
||||
-- 作者:唐尸三摆手 -- 发布时间:2012/3/29 13:42:00 -- BBB的坐标貌似有问题,你再看下,自己调整对应代码吧,感觉应该是1500或2000
[此贴子已经被作者于2012-3-29 13:42:44编辑过]
|
||||
-- 作者:don -- 发布时间:2012/3/29 13:46:00 -- 呵呵,唐兄好!是俺搞錯了,正確的是:A03 ,A07 ,A08, A09 ,A10 ,AA1的高依次為: 100 ,200 ,300, 400,500, 500
所以BBB的Y坐標應該為: Sum( 100 ,200 ,300, 400,500, 500) = 2000 則為(300,2000)才是 |
||||
-- 作者:唐尸三摆手 -- 发布时间:2012/3/29 13:51:00 -- 修正一下代码 Dim dr As DataRow [此贴子已经被作者于2012-3-29 13:51:00编辑过]
|
||||
-- 作者:don -- 发布时间:2012/3/29 14:05:00 -- OK,多謝老唐! |
||||
-- 作者:don -- 发布时间:2012/3/29 14:57:00 -- 還有點問題:如輸入沒按順序輸入,則有問題,代碼還須修正. [此贴子已经被作者于2012-3-29 15:00:14编辑过]
|
||||
-- 作者:唐尸三摆手 -- 发布时间:2012/3/29 15:16:00 -- 这样再试试 Dim dr As DataRow [此贴子已经被作者于2012-3-29 15:19:17编辑过]
|
||||
-- 作者:don -- 发布时间:2012/3/29 15:38:00 -- 唐兄辛苦了!不過我想不能根據名稱排序的. 我的初衷是:大量的控件,不能讓用戶一個一個地確定坐標,想用這個較簡單的相對坐標方法, 用戶只要分別列出控件的寬,高及其左側及上層控件,坐標就能確定下來.
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/3/29 15:58:00 -- For Each dr As DataRow In DataTables("坐标").Select("顶上控件 Is Null") Dim dr1 As DataRow = dr dr1("y坐标") = 0 Do Dim dr2 As DataRow = DataTables("坐标").Find("顶上控件 = \'" & dr1("名称") & "\'") If dr2 IsNot Nothing dr2("y坐标") = dr("y坐标") + dr1("高") dr1 = dr2 Else Exit Do End If Loop Next For Each dr As DataRow In DataTables("坐标").Select("左侧控件 Is Null") Dim dr1 As DataRow = dr dr1("x坐标") = 0 Do Dim dr2 As DataRow = DataTables("坐标").Find("左侧控件 = \'" & dr1("名称") & "\'") If dr2 IsNot Nothing dr2("x坐标") = dr("x坐标") + dr1("宽") dr1 = dr2 Else Exit Do End If Loop Next |