Что нового

[Элементы GUI] Выпадающй список, отображение имен файлов в папке, открытие нужного файла

LL1yTHuK

Новичок
Сообщения
4
Репутация
0
Доброго времени суток,
хотелось бы правильно реализовать выпадающий список, если была подобная тема то я ее не нашел ни в поиске, ни в этом разделе

суть такова:
в выпадающем списке отображаются имена файлов в папке рядом со скриптом, при выборе и нажатии на кнопку открывается нужный файл
так же нужно чтобы после закрытия гуи, выпадающий список запоминал последний выбранный файл

Код:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <StaticConstants.au3>
#include <File.au3>
#include <File.au3>

Example()

Func Example()

Local $tab, $iCombo, $msg, $Gui, $msg, $bStart

$Gui = GUICreate ( "GUI", 680, 340)
GUICtrlSetDefColor(0x000000)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetFont(9, 400, 6)

GUICtrlCreateLabel("Выбери файл", 300, 120, 250, 17)
$bStart=GUICtrlCreateButton("Поехали", 310, 280, 60, 20)
;$iCombo = GUICtrlCreateCombo("Список файлов", 185, 140, 310, 120) ; нужно бы еще добавить последнее использованное, после закрытия
;GUICtrlSetData(-1, 'имена файлов(.txt опущено) ' ) ; $sFileDir = @ScriptDir &'\files\'


GUISetState()
	While 1
		$msg = GUIGetMsg()
		Switch $msg
			Case $GUI_EVENT_CLOSE
				ExitLoop
			Case $bStart
				; FileOpen(выбранный из списка)
		EndSwitch
	WEnd
EndFunc
 
Автор
L

LL1yTHuK

Новичок
Сообщения
4
Репутация
0
изменил
Код:
$bStart=GUICtrlCreateButton("Поехали", 310, 280, 60, 20)
$iCombo = GUICtrlCreateCombo("Список файлов", 185, 140, 310, 120) 
GUICtrlSetData(-1, 'имена файлов(.txt опущено) ' ) ;

на
Код:
$sPath = @ScriptDir &'\files\'
$sFileList = _FO_FileSearch($sPath, '*.txt', True, 0, 2, 0)
$iCombo = GUICtrlCreateCombo("Список файлов", 185, 140, 310, 120) 
GUICtrlSetData(-1, $sFileList )

вроде бы выводит файлы, но выводит их одной сторокой...
 

Вложения

  • 1.jpg
    1.jpg
    21.6 КБ · Просмотры: 26

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
#include <GUIConstantsEx.au3>
#include <File.au3>

$sFileDir = @ScriptDir & '\files\'
$sMemFile = @ScriptDir & "\LastFile.mem"

$Gui = GUICreate("GUI", 680, 340)
GUICtrlCreateLabel("Выбери файл", 300, 120, 250, 17)
$bStart = GUICtrlCreateButton("Поехали", 310, 280, 60, 20)
$iCombo = GUICtrlCreateCombo("", 185, 140, 310, 120)

$aFiles = _FileListToArray($sFileDir, "*.txt", $FLTA_FILES)
If Not @error Then
  For $i = 1 To $aFiles[0]
    GUICtrlSetData($iCombo, $aFiles[$i])
  Next
EndIf

$sLastFile = FileRead($sMemFile)
If Not @error And FileExists($sFileDir & $sLastFile) Then GUICtrlSetData($iCombo, $sLastFile, $sLastFile)

GUISetState()

While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      ExitLoop
    Case $bStart
      $sFileName = GUICtrlRead($iCombo)
      If FileExists($sFileDir & $sFileName) Then
        ShellExecute($sFileDir & $sFileName)
        $hFile = FileOpen($sMemFile, 2 + 512)
        FileWrite($hFile, $sFileName)
        FileClose($hFile)
      EndIf
  EndSwitch
WEnd
 
Верх