Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » GUI and Checkbox and DIM

Ответить
Настройки темы
GUI and Checkbox and DIM

Старожил


Сообщения: 352
Благодарности: 44


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: -TRM-
Дата: 09-02-2013
Описание: Изменение скрипта и вопроса
Здравствуйте !
Есть скрипт :
Код: Выделить весь код
#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
Заранее спасибо.

Отправлено: 14:43, 09-02-2013

 

Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


-TRM-,
1. Для поиска файлов есть функция _FO_FileSearch, она же в офлайн-справке. Или _FileListToArray.
2. Для списка лучше делать GUICtrlCreateListView с чекбосами (или GUICtrlCreateList без чекбоксов).

Отправлено: 16:17, 09-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить PM | Цитировать


AZJIO, Чуть непонятно как в GUICtrlCreateListView можно чеквокс запихнуть...

Отправлено: 17:00, 09-02-2013 | #3


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


-TRM-, в справке GUICtrlCreateListViewItem пример с чекбоксом. Стиль установить.

Отправлено: 17:45, 09-02-2013 | #4


Старожил


Сообщения: 352
Благодарности: 44

Профиль | Отправить 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:
в справке GUICtrlCreateListViewItem пример с чекбоксом. Стиль установить. »
У меня в справке пример с чекбоксом отсутствует-ссылочку не дадите?

Отправлено: 17:47, 09-02-2013 | #5


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


справка (поиск работает на вкладке "Поиск")
ScriptsCollection, и к ней программа для поиска по коллекции TextReplace, ещё Notepad++ вкладка "Найти в файлах".
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:21, 10-02-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » GUI and Checkbox and DIM

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Не работает 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




 
Переход