qiziyun7410 发表于 2012-12-30 13:28:32

关于(读取Input文字写入Edit1 GUI文字框中可以保存单独删除或替换)请各位帮帮忙

关于(读取Input文字写入Edit1GUI文字框中,可以保存单独删除或替换)请各位帮帮忙哦!!谢了!!!!~

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
Global $Label1, $Label2, $Label3, $Label4
Global $caput_text = False, $Title, $Name0, $Name1, $Name2
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("信息备份", 901, 701, (@DesktopWidth - 258) / 2, @DesktopHeight - 118)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Edit1 = GUICtrlCreateEdit("", 10, 17, 530, 320, BitOR($ES_AUTOVSCROLL, $WS_HSCROLL, $WS_VSCROLL), _
                BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
GUICtrlSetData(-1, "")
GUICtrlSetOnEvent(-1, "Edit1Change")
$Input1 = GUICtrlCreateInput("姓 名", 8, 368, 170, 21)
$Input2 = GUICtrlCreateInput("联系方式", 192, 368, 185, 21)

$Label1 = GUICtrlCreateLabel("备份总表", 13, 2, 518, 15, $SS_CENTER)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateLabel("邮编:", 392, 372, 31, 17)
GUICtrlCreateLabel("邮编:", 392, 406, 31, 17)
$Input3 = GUICtrlCreateInput("555555", 424, 368, 50, 21)
$Input4 = GUICtrlCreateInput("666666", 424, 402, 50, 21)
;**** 新+文本框 ****姓 名
$Input5 = GUICtrlCreateInput("姓 名", 8, 400, 170, 21)
$Input6 = GUICtrlCreateInput("联系方式", 192, 401, 185, 21)
$Input7 = GUICtrlCreateInput("姓 名", 8, 430, 170, 21)
$Input8 = GUICtrlCreateInput("联系方式", 192, 434, 185, 21)
$Input9 = GUICtrlCreateInput("姓 名", 8, 464, 170, 21)
$Input10 = GUICtrlCreateInput("联系方式", 192, 466, 185, 21)
$Input11 = GUICtrlCreateInput("姓 名", 8, 496, 170, 21)
$Input12 = GUICtrlCreateInput("联系方式", 192, 497, 185, 21)
$Input13 = GUICtrlCreateInput("姓 名", 8, 527, 170, 21)
$Input14 = GUICtrlCreateInput("联系方式", 192, 529, 185, 21)
;**** 新+文本框 ****
$Button1 = GUICtrlCreateButton("保 存", 488, 371, 50, 20)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("清 除", 488, 400, 50, 20)
GUICtrlSetOnEvent(-1, "Button2Click")
;**** 新+按钮 ****
$Button3 = GUICtrlCreateButton("写 入", 488, 430, 50, 20)
GUICtrlSetOnEvent(-1, "Button3Click")
$Button4 = GUICtrlCreateButton("写 入", 488, 459, 50, 20)
GUICtrlSetOnEvent(-1, "Button4Click")
$Button5 = GUICtrlCreateButton("写 入", 488, 488, 50, 20)
GUICtrlSetOnEvent(-1, "Button5Click")
$Button6 = GUICtrlCreateButton("写 入", 488, 518, 50, 20)
GUICtrlSetOnEvent(-1, "Button6Click")
$Button7 = GUICtrlCreateButton("写 入", 488, 547, 50, 20)
GUICtrlSetOnEvent(-1, "Button7Click")
$Button8 = GUICtrlCreateButton("写 入", 488, 576, 50, 20)
GUICtrlSetOnEvent(-1, "Button8Click")
$Button9 = GUICtrlCreateButton("写 入", 488, 605, 50, 20)
GUICtrlSetOnEvent(-1, "Button9Click")
$Button10 = GUICtrlCreateButton("写 入", 488, 635, 50, 20)
GUICtrlSetOnEvent(-1, "Button10Click")
$Button11 = GUICtrlCreateButton("写 入", 488, 664, 50, 20)
GUICtrlSetOnEvent(-1, "Button11Click")
;**** 新+按钮 ****
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      Sleep(100)
WEnd

Func Edit1Change()

EndFunc   ;==>Edit1Change
Func Form1Close()
      Exit
EndFunc   ;==>Form1Close
Func Button1Click() ; 保存+显示到备份总表
      If $caput_text = False Then _caput_text()
      $Title = GUICtrlRead($Input1);读取第一个姓名输入框里的类容
      $Name0 = GUICtrlRead($Input2);读取第一个联系方式输入框里的类容
      # 读取 $Button1 按钮文本, 确定后续操作
      Local $GetText = ControlGetText("信息备份", "", $Button1)
      If $GetText = '保 存' Then
                $X = GUICtrlRead($Input3)
                $Y = GUICtrlRead($Input4)
                _enquiry_Ok();转到 调试询问
      ElseIf $GetText = '未点中' Then
                _enquiry_Nay();转到 调试询问
      ElseIf $GetText = '没有了' Then
                WinClose("信息备份");关闭向导窗口
      EndIf
EndFunc   

Func Button2Click() ;
      # 读取 $Button2 按钮文本, 确定后续操作
      Local $GetText02 = ControlGetText("信息备份", "", $Button2)
      If $GetText02 = '清 除' Then

      ElseIf $GetText02 = '全 写 入' Then
                $yszb = GUICtrlRead($Input5)
                $sz = GUICtrlRead($Input6)
                $tpqy = GUICtrlRead($Input7)
                $tp = GUICtrlRead($Input8)
                $xra = GUICtrlRead($Input9)
                $xrb = GUICtrlRead($Input10)
                $xrc = GUICtrlRead($Input11)
                $xrd= GUICtrlRead($Input12)
                $xre= GUICtrlRead($Input13)
                $xrf= GUICtrlRead($Input14)
                _GUICtrlEdit_AppendText($Edit1, '姓 名(' & $yszb & ')联系方式(' & $sz & ')' & @CRLF);写入主窗编辑框
                _GUICtrlEdit_AppendText($Edit1, '姓 名(' & $tpqy & ')联系方式(' & $tp & ')' & @CRLF);写入主窗编辑框
                _GUICtrlEdit_AppendText($Edit1, '姓 名(' & $xra & ')联系方式(' & $xrb & ')' & @CRLF);写入主窗编辑框
                _GUICtrlEdit_AppendText($Edit1, '姓 名(' & $xrc & ')联系方式(' & $xrd & ')' & @CRLF);写入主窗编辑框
                _GUICtrlEdit_AppendText($Edit1, '姓 名(' & $xre & ')联系方式(' & $xrf & ')' & @CRLF);写入主窗编辑框
      EndIf
EndFunc   ;==>Button2Click
Func Button3Click() ; 输入代码

EndFunc   ;==>Button3Click
Func Button4Click() ; 输入代码

EndFunc   ;==>Button4Click
Func Button5Click() ; 输入代码

EndFunc   ;==>Button5Click
Func Button6Click() ; 输入代码

EndFunc   ;==>Button6Click
Func Button7Click() ; 输入代码

EndFunc   ;==>Button7Click
Func Button8Click() ; 输入代码

EndFunc   ;==>Button8Click
Func Button9Click() ; 输入代码

EndFunc   ;==>Button9Click
Func Button10Click() ; 输入代码

EndFunc   ;==>Button10Click
Func Button11Click() ; 输入代码

EndFunc   ;==>Button11Click

Func _enquiry_Ok() ;这里是替换按钮1的名称!
      # 修改 '保 存' 按钮文本
      ControlSetText("信息备份", "", $Button1, "写 入")
      # 显示 '确认' 按钮
      GUICtrlSetState($Button2, $GUI_SHOW)
      ControlSetText("信息备份", "", $Button2, "全 写 入")
EndFunc   ;==>_enquiry_Ok
Func _enquiry_Nay() ;按钮文本 = 没有 的调试询问
      # 修改 '清 除' 按钮文本
      ControlSetText("信息备份", "", $Button1, "保 存")
      # 显示 $Button2 按钮
      GUICtrlSetState($Button2, $GUI_HIDE)
EndFunc   ;==>_enquiry_Nay

Func _caput_text()
      $Title = GUICtrlRead($Input1);读取窗口标题
      $Name0 = GUICtrlRead($Input2);读取控件 ID
      $caput_text = True
      ;Button1Click()
EndFunc这个代码现在的问题是!可以读取写入!但是不会保存!工具关了在开就不见了!还是一个问题是只可以点保存按钮保存所有框里的文字,我想对应一行的按钮按那一行的就保存哪一行的文字!!,
需要修改时候只用在小输入框内修改文字点击写入后就替换原来对应的原始文字信息。劳烦各位大角了!!!!!

netegg 发表于 2012-12-30 13:55:34

保存到什么地方了,autoit又没有内部保存机制

veket_linux 发表于 2012-12-30 13:58:36

这个用AutoIt做注定是 蛋疼滴 ,建议不要用edit,改用 list 或listview

用delphi吧 delphi 的Edit控件(Memo) ,可以按行操作的,

mo_shaojie 发表于 2012-12-30 16:32:46

写入到ini文件吧.

annybaby 发表于 2012-12-30 17:14:42

楼主这样的话,如果有100人就写100个输入框,一百个函数来做相同的事??不如直接用ini(如果数据量巨大还可以用A大的_ini系列UDF)

annybaby 发表于 2012-12-30 17:57:09

吃饭前,当灌一下水吧~~

;没有加什么数据合法性判断等,如果需要,请自己酌情添加
Opt("GUIOnEventMode", 1)
Local $sINI=@ScriptDir&'\ini.ini'
$Form1 = GUICreate("test", 185, 310)
GUISetOnEvent(-3,'_exit')
$Label1 = GUICtrlCreateLabel("姓    名:", 6, 6, 55, 17)
$Label2 = GUICtrlCreateLabel("联系方式:", 6, 39, 55, 17)
$Label3 = GUICtrlCreateLabel("邮    编:", 6, 72, 55, 17)
$Input1 = GUICtrlCreateInput("", 66, 6, 115, 21)
$Input2 = GUICtrlCreateInput("", 66, 36, 115, 21)
$Input3 = GUICtrlCreateInput("", 66, 66, 115, 21,0x2000)
$Button1 = GUICtrlCreateButton("写入", 0, 102, 75, 25,1)
GUICtrlSetTip(-1,'填好后回车确认写入!')
GUICtrlSetOnEvent(-1,'Write')
$Button2 = GUICtrlCreateButton("删除", 102, 102, 75, 25)
GUICtrlSetOnEvent(-1,'Delete')
$Edit1 = GUICtrlCreateEdit("", 0, 132, 181, 169)
GUISetState(@SW_SHOW)

While 1
        Sleep(1000000)
WEnd

Func Write()
        $sName=GUICtrlRead($Input1)
        $sContact=GUICtrlRead($Input2)
        $sContact=GUICtrlRead($Input2)
        $iPostCode=GUICtrlRead($Input3)
        If $sName <>'' Then                 ;允许其它信息为空,如果不允许,自己加判断吧
                IniWrite($sINI,'姓名:'&$sName,'联系方式',$sContact)
                IniWrite($sINI,'姓名:'&$sName,'邮编',$iPostCode)
        EndIf
GUICtrlSetData($Edit1,FileRead($sINI));更新Edit内容
EndFunc

Func Delete()
        $sName=GUICtrlRead($Input1)
        IniDelete($sINI,'姓名:'&$sName)
        GUICtrlSetData($Edit1,FileRead($sINI));更新Edit内容
EndFunc

Func _Exit()
        Exit
EndFunc

魔导 发表于 2012-12-30 18:03:46

还是那么长    - -!   建议楼主简化问题   小弟是在看得晕啊

qiziyun7410 发表于 2012-12-30 20:05:41

回复 6# annybaby


    那请问一下!INI里面要怎么填~~~~~

annybaby 发表于 2012-12-30 20:25:42

回复 8# qiziyun7410

我觉得如果你愿意动一下手的话应该已经知道了
直接复制/粘贴代码,运行一下,在界面上随便输入一个人的信息,敲一下回车,马上就能看到了

298311657 发表于 2012-12-31 14:52:44

可以参考使用vsFlex表格控件来做,在表格上编辑修改删除保存,任意条数据都可以方便操作,不需要建立一大堆input控件

annybaby 发表于 2012-12-31 17:49:28

还未解决??我前面的代码不行??

cdmtony 发表于 2013-1-3 09:58:20

經過測試,樓上的代碼OK

haijie1223 发表于 2013-1-3 18:02:18

换listview吧,好像论坛还有个listview就地编辑的。

qiziyun7410 发表于 2013-1-3 22:38:51

annybaby 是啊!我想要可以在上面填写后保留着,我看了一下一些帖子!就好比脚本生成那样!填写了以后点击生成文字的TXT或其他文本形式!!
页: [1]
查看完整版本: 关于(读取Input文字写入Edit1 GUI文字框中可以保存单独删除或替换)请各位帮帮忙