|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » GUI and Checkbox and DIM |
|
GUI and Checkbox and DIM
|
Старожил Сообщения: 352 |
Профиль | Отправить PM | Цитировать
Здравствуйте !
Есть скрипт : #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 Поизвращался как мог. Проблема первая-немог сделать скролинг,чтобы мог видеть все файлы-пришлось переносить по столбцам и выводить сообщение о лимите файлов. Вторая проблема-Незнаю как универсально в 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 Заранее спасибо. |
|
Отправлено: 14:43, 09-02-2013 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-,
1. Для поиска файлов есть функция _FO_FileSearch, она же в офлайн-справке. Или _FileListToArray. 2. Для списка лучше делать GUICtrlCreateListView с чекбосами (или GUICtrlCreateList без чекбоксов). |
Отправлено: 16:17, 09-02-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO, Чуть непонятно как в GUICtrlCreateListView можно чеквокс запихнуть...
|
Отправлено: 17:00, 09-02-2013 | #3 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-, в справке GUICtrlCreateListViewItem пример с чекбоксом. Стиль установить.
|
Отправлено: 17:45, 09-02-2013 | #4 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO, Я вот погуглил и нашёл такой скрипт
#include <GUIConstantsEx.au3> #include <File.au3> #include <WinAPIEx.au3> #include <GuiListView.au3> Dim $aDir[3] = [@SystemDir, @WindowsDir, @MyDocumentsDir] $iInd = 0 $hGui = GUICreate('Test My', 400, 320) $nListView = GUICtrlCreateListView('Первое поле', 2, 2, 394, 268, $GUI_SS_DEFAULT_LISTVIEW, _ BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES)) $hListView = GUICtrlGetHandle($nListView) _GUICtrlListView_AddColumn($nListView, 'Второе поле', 380) $nButtonGo = GUICtrlCreateButton('Go', 75, 280, 100, 30) $nButtonSave = GUICtrlCreateButton('Save', 225, 280, 100, 30) GUISetState() _WinAPI_EmptyWorkingSet() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $nButtonGo $aFiles = _FileListToArray($aDir[$iInd], '*', 1) If @error Then ContinueLoop Dim $aItems[$aFiles[0]][1] For $i = 1 To $aFiles[0] $aItems[$i - 1][0] = $aFiles[$i] Next $aFiles = 0 _GUICtrlListView_DeleteAllItems($hListView) _GUICtrlListView_BeginUpdate($hListView) _GUICtrlListView_AddArray($hListView,$aItems) _GUICtrlListView_EndUpdate($hListView) ;_GUICtrlListView_SetItemChecked($nListView, -1) ;Check All WinSetTitle($hGui, '', $aDir[$iInd]) $aItems = 0 $iInd += 1 If $iInd = 3 Then $iInd = 0 Case $nButtonSave $iCount = _GUICtrlListView_GetItemCount($nListView) If Not $iCount Then ContinueLoop $sText = '' For $i = 0 To $iCount - 1 If _GUICtrlListView_GetItemChecked($nListView, $i) Then $sText &= _GUICtrlListView_GetItemText($nListView, $i) & @CRLF EndIf Next If Not $sText Then ContinueLoop $sText = 'Dir: ' & WinGetTitle($hGui) & @CRLF & @CRLF & StringTrimRight($sText, 2) $sFile = @ScriptDir & '\Dir_' & StringRegExpReplace(WinGetTitle($hGui), '^.*\\', '') & '.txt' $hFile = FileOpen($sFile, 2) FileWrite($hFile, $sText) FileClose($hFile) $iCount = 0 $sText = '' $sFile = '' $hFile = 0 EndSwitch WEnd Цитата AZJIO:
|
||
Отправлено: 17:47, 09-02-2013 | #5 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать справка (поиск работает на вкладке "Поиск")
ScriptsCollection, и к ней программа для поиска по коллекции TextReplace, ещё Notepad++ вкладка "Найти в файлах". |
Отправлено: 00:21, 10-02-2013 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Не работает GUI после выхода другова GUI | sashadeg | AutoIt | 3 | 15-05-2009 22:03 | |
Проблемы с GUI | webzee | Microsoft Windows Vista | 13 | 06-01-2008 13:22 | |
чем прочитать формат *.DIM | Surround | Хочу все знать | 5 | 22-10-2007 15:46 | |
Образ дискеты .dim - чем распаковать | MJR | Программное обеспечение Windows | 6 | 30-07-2004 15:54 | |
c++ с gui | sad koder | Программирование и базы данных | 3 | 16-06-2004 08:51 |
|