-TRM-
09-02-2013, 14:43
Здравствуйте !
Есть скрипт :
#include <GUIConstants.au3>
Global $TMP=@ScriptDir & "\tmp.ttt"
GUICreate ("My GUI default font") ; will create a dialog box that when displayed is centered
$Tab1 = GUICtrlCreateTab(8, 8, 545, 393)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$Zakladka1 = GUICtrlCreateTabItem("Закладка 1")
$InputPut = GUICtrlCreateInput(IniRead($TMP,"Directory","in",@SystemDir), 28, 40, 300, 21)
$Zakladka2 = GUICtrlCreateTabItem("Закладка 2")
DP_load()
$Zakladka3 = GUICtrlCreateTabItem("Закладка 3")
GUISetState ()
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Func DP_load()
$DPfiles=0
$search3 = FileFindFirstFile(@SystemDir & "\*.exe")
If $search3 = -1 Then
; Exit
Else
While 1
$file = FileFindNextFile($search3)
If @error Then ExitLoop
$DPfiles+=1
IniWrite($TMP,"DP",$DPfiles,$file)
IniWrite($TMP,"DPFiles",$file,$DPfiles)
WEnd
IniWrite($TMP,"Setting","FilesDP",$DPfiles)
$DPfiles+=1
Dim $aDrive[$DPfiles]
Dim $CheckboxDP[UBound($aDrive)]
$next=0
$stolb=24
For $ind = 1 To UBound($aDrive) - 1
If $ind = 16 Then;Смещение в право столбца выбора
$next=0
$stolb+=170
ElseIf $ind = 31 Then
$next=0
$stolb+=170
ElseIf $ind = 46 Then
MsgBox(64,"","Не достаточно места для отображения !")
ExitLoop
EndIf
$next+=24
$CheckboxDP[$ind] = GUICtrlCreateCheckbox(IniRead($TMP,"DP",$ind,""), $stolb, 14+$next, 165, 17)
Next
FileClose($search3)
EndIf
EndFunc
Задача такая-отобразить в GUI все найденные ЕХЕ файлы и при выборе чекбокса должно появляться сообщение с именем этого файла.
Поизвращался как мог.
Проблема первая-немог сделать скролинг,чтобы мог видеть все файлы-пришлось переносить по столбцам и выводить сообщение о лимите файлов.
Вторая проблема-Незнаю как универсально в CASE $CheckboxDP.... определить чекбокс, чтобы прочитать имя.
Третья проблема-Незнаю как сделать копию чекбоксов в Закладка 3 чтобы при нажатии в Закладка 2 на определённый чекбокс изменялся вид чекбокса в Закладка 3 т.е. думаю это сделать так :
Case $Checkbox?
If GUICtrlRead ($CheckboxDP?)=1 Then
GUICtrlSetStyle ($Checkbox?, BitOR($BS_CHECKBOX,$BS_AUTOCHECKBOX,$BS_CENTER,$WS_TABSTOP))
GUICtrlSetFont($Checkbox?, 8, 400, 4, "MS Sans Serif")
Else
GUICtrlSetStyle ($Checkbox?, BitOR($BS_CHECKBOX,$BS_AUTOCHECKBOX,$BS_LEFT,$WS_TABSTOP))
GUICtrlSetFont($Checkbox?, 8, 400, 1, "MS Sans Serif")
EndIf
Заранее спасибо.
Есть скрипт :
#include <GUIConstants.au3>
Global $TMP=@ScriptDir & "\tmp.ttt"
GUICreate ("My GUI default font") ; will create a dialog box that when displayed is centered
$Tab1 = GUICtrlCreateTab(8, 8, 545, 393)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$Zakladka1 = GUICtrlCreateTabItem("Закладка 1")
$InputPut = GUICtrlCreateInput(IniRead($TMP,"Directory","in",@SystemDir), 28, 40, 300, 21)
$Zakladka2 = GUICtrlCreateTabItem("Закладка 2")
DP_load()
$Zakladka3 = GUICtrlCreateTabItem("Закладка 3")
GUISetState ()
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Func DP_load()
$DPfiles=0
$search3 = FileFindFirstFile(@SystemDir & "\*.exe")
If $search3 = -1 Then
; Exit
Else
While 1
$file = FileFindNextFile($search3)
If @error Then ExitLoop
$DPfiles+=1
IniWrite($TMP,"DP",$DPfiles,$file)
IniWrite($TMP,"DPFiles",$file,$DPfiles)
WEnd
IniWrite($TMP,"Setting","FilesDP",$DPfiles)
$DPfiles+=1
Dim $aDrive[$DPfiles]
Dim $CheckboxDP[UBound($aDrive)]
$next=0
$stolb=24
For $ind = 1 To UBound($aDrive) - 1
If $ind = 16 Then;Смещение в право столбца выбора
$next=0
$stolb+=170
ElseIf $ind = 31 Then
$next=0
$stolb+=170
ElseIf $ind = 46 Then
MsgBox(64,"","Не достаточно места для отображения !")
ExitLoop
EndIf
$next+=24
$CheckboxDP[$ind] = GUICtrlCreateCheckbox(IniRead($TMP,"DP",$ind,""), $stolb, 14+$next, 165, 17)
Next
FileClose($search3)
EndIf
EndFunc
Задача такая-отобразить в GUI все найденные ЕХЕ файлы и при выборе чекбокса должно появляться сообщение с именем этого файла.
Поизвращался как мог.
Проблема первая-немог сделать скролинг,чтобы мог видеть все файлы-пришлось переносить по столбцам и выводить сообщение о лимите файлов.
Вторая проблема-Незнаю как универсально в CASE $CheckboxDP.... определить чекбокс, чтобы прочитать имя.
Третья проблема-Незнаю как сделать копию чекбоксов в Закладка 3 чтобы при нажатии в Закладка 2 на определённый чекбокс изменялся вид чекбокса в Закладка 3 т.е. думаю это сделать так :
Case $Checkbox?
If GUICtrlRead ($CheckboxDP?)=1 Then
GUICtrlSetStyle ($Checkbox?, BitOR($BS_CHECKBOX,$BS_AUTOCHECKBOX,$BS_CENTER,$WS_TABSTOP))
GUICtrlSetFont($Checkbox?, 8, 400, 4, "MS Sans Serif")
Else
GUICtrlSetStyle ($Checkbox?, BitOR($BS_CHECKBOX,$BS_AUTOCHECKBOX,$BS_LEFT,$WS_TABSTOP))
GUICtrlSetFont($Checkbox?, 8, 400, 1, "MS Sans Serif")
EndIf
Заранее спасибо.