找回密码
 加入
搜索
楼主: joint

[图形处理] 这个代码能否转为AU3的?

 火...   [复制链接]
发表于 2017-7-21 17:20:39 | 显示全部楼层
回复 135# chzj589

您儿子应该都比我岁数大吧!我滴天啦!等等,让我缓一缓脑子。
我印象中的大爷不应该是这样的啊!您心态很年轻啊!

不好意思啊!语无伦次了,如果有冒犯的地方,还请多多包含啊!
发表于 2017-7-21 17:25:11 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-21 17:27 编辑

回复 136# 水木子
kk_lee69他就知道我的年纪
不客气,这两年来,头脑不好使了,代码看久了头会痛。
写代码熬夜时最有灵感,现在不行了。
一年不如一年
发表于 2017-7-21 17:27:37 | 显示全部楼层
回复 135# chzj589


               又是一名老司机      大哥,活生生一本励志书籍。。。
发表于 2017-7-21 17:31:24 | 显示全部楼层
回复 138# haijie1223

谢谢!在今天我进入了金牌会员之时,
能有这几位前辈对我的恳定,我心里非常高兴。
再次谢谢!

评分

参与人数 1金钱 +30 收起 理由
haijie1223 + 30 恭喜升级金牌~

查看全部评分

发表于 2017-7-21 17:31:38 | 显示全部楼层
大叔好兴致。。。真好

评分

参与人数 1金钱 +70 收起 理由
chzj589 + 70 谢谢!

查看全部评分

 楼主| 发表于 2017-7-21 17:32:36 | 显示全部楼层
回复  水木子
六十有二了
chzj589 发表于 2017-7-21 17:17


这太意外了,前面得罪了,非常非常抱歉啊,请多包涵。
发表于 2017-7-21 17:43:27 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-21 17:44 编辑

回复 141# joint
从来就没有关系,还是引用一句话:
“与你半毛钱关系都没有的 一点屁事你是不是要惦记一辈子啊?”
“关键是:要是没有其他人的代码,目前在这件事情上你可能和我差不多,都还处在一个迷茫状态中。”
发表于 2017-7-22 13:15:43 | 显示全部楼层
本帖最后由 水木子 于 2017-7-22 21:24 编辑

抽空改了一下,现在柱状图项目可以同时包含正值和负值堆叠。



#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $iLineleft = 50, $iLineTop = 300, $iLineWidth = 770, $iLineHeight = 560
Global $iItemWidth = 25, $iItemHeight
Global $iX = 15

Global $aItem[10] = ['50,80,-140', '70,80,100', '90,-40,-80', '130,50,70', '120,-50,70,-80', '150', '-130,80', '90,70,-80,70', '-150,80,80', '120,30,40']
Global $aItemID[0]

GUICreate('', 800, 600)

$Graphic1 = GUICtrlCreateGraphic(10, 10, 780, 580, 0x00800000)
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, $iLineleft, 20)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, $iLineleft, $iLineHeight)
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, $iLineleft, $iLineTop)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, $iLineWidth, $iLineTop)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetState(-1, 128)

For $i = 0 To 10
        GUICtrlCreateLabel(($i - 5) * 50 & '-', 20, (550 - $i * 50), 40, 20, 0x0002 + 0x0200)
        GUICtrlSetFont(-1, 12, 400)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Next

For $i = 0 To UBound($aItem) - 1
        $aValue = StringSplit($aItem[$i], ',', 2)
        Local $iItemTop1
        Local $iItemTop2 = $iLineTop + 10
        Local $iItemTop3 = $iLineTop + 10 + 1
        Local $iItemTop4 = ''
        
        For $z = 0 To UBound($aValue) - 1
                ReDim $aItemID[UBound($aItemID) + 1]
                $iItemHeight = Abs($aValue[$z])
                
                If $aValue[$z] > 0 Then
                        $iItemTop2 -= $iItemHeight
                        $iItemTop1 = $iItemTop2
                Else
                        If $iItemTop4 == '' Then
                                $iItemTop1 = $iItemTop3
                        Else
                                $iItemTop3 += Abs($aValue[$iItemTop4])
                                $iItemTop1 = $iItemTop3
                        EndIf
                        $iItemTop4 = $z
                EndIf
                
                $aItemID[UBound($aItemID) - 1] = GUICtrlCreateLabel('', 100 + ($i * ($iItemWidth + $iX)), $iItemTop1, $iItemWidth, $iItemHeight, 0x01 + 0x0200)
                GUICtrlSetBkColor(-1, '0x' & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2))
        Next
Next

GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                        
                Case $aItemID[0] To $aItemID[UBound($aItemID) - 1]
                        MsgBox(0, 0, $nMsg - $aItemID[0] + 1)
                        
        EndSwitch
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
yamakawa + 30 好勤快

查看全部评分

发表于 2017-7-30 14:00:57 | 显示全部楼层
好热闹,$aItemID[0]
发表于 2017-8-4 22:15:47 | 显示全部楼层
回复 143# 水木子

木子,143楼代码里的:

Case $aItemID[0] To $aItemID[UBound($aItemID) - 1]

MsgBox(0, 0, $nMsg - $aItemID[0] + 1)

这是获取色块的ID,色块是长与宽的数据,能获取色块长的数据吗?
发表于 2017-8-4 23:19:40 | 显示全部楼层
回复 145# chzj589


    首先 添加一个全局变量
Global $aPos[4]
然后
                        Case $aItemID[0] To $aItemID[UBound($aItemID) - 1]
                                $aPos = WinGetPos(GUICtrlGetHandle($nMsg)); - $aItemID[0] + 1))
                                If IsArray($aPos) Then ConsoleWrite("X-Pos: " & $aPos[0] & @CRLF & "Y-Pos: " & $aPos[1] & @CRLF & "Width: " & $aPos[2] & @CRLF & "Height: " & $aPos[3] & @CRLF)
                        MsgBox(0, 0, $nMsg - $aItemID[0] + 1)
                ConsoleWrite("=====================" & @CRLF)

评分

参与人数 1金钱 +30 收起 理由
chzj589 + 30 谢谢!

查看全部评分

发表于 2017-8-4 23:29:14 | 显示全部楼层
回复 145# chzj589


    不好意思  没必要全局变量 local  $aPos
发表于 2017-8-5 08:56:42 | 显示全部楼层
本帖最后由 chzj589 于 2017-8-5 09:29 编辑

回复 146# yamakawa

谢谢!通过。
这是在循环模式,我要改为事件模式,捉摸了半天,没头緒

$aPos = WinGetPos(GUICtrlGetHandle($nMsg))

$nMsg 这个如何改?
发表于 2017-8-5 09:33:17 | 显示全部楼层
回复 148# chzj589

一样啊

演示code
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
GUISetOnEvent(-3,"_exit")
GUICtrlCreateButton("OK", 5, 5, 60,80)
GUICtrlSetOnEvent(-1,"test")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


Do
        Until GUIGetMsg() = -3


Func _exit()
        Exit
EndFunc

Func test()
        Local $aPos = WinGetPos(@GUI_CtrlHandle)
        MsgBox(0,"","X-Pos: " & $aPos[0] & @CRLF & "Y-Pos: " & $aPos[1] & @CRLF & "Width: " & $aPos[2] & @CRLF & "Height: " & $aPos[3] & @CRLF)
EndFunc
发表于 2017-8-5 09:52:54 | 显示全部楼层
回复 149# yamakawa

这句:$aPos = WinGetPos(GUICtrlGetHandle($nMsg))
改为:$aPos = WinGetPos(@GUI_CtrlHandle)
通过。谢谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 04:18 , Processed in 0.130286 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表