Что нового

Помогите с отображением каталога

romashka

Новичок
Сообщения
11
Репутация
0
В общем есть такой код..

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1_1 = GUICreate("Form1", 843, 556, 114, 376)
$List1 = GUICtrlCreateList("", 0, 32, 841, 411, -1, BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
$List2 = GUICtrlCreateList("", 80, 0, 569, 34, -1, BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
$Button7 = GUICtrlCreateButton("Button7", 0, 0, 81, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
             Exit
	Case $Button7

          ; вот тута

EndSwitch
WEnd



Не подскажите как сделать вот что :

кнопкой "Button7" ВЫБРАТЬ не файл (это знаю как) а КАТАЛОГ !

НА ДИСКЕ D:\ есть к примеру папка test . А в папке есть текстовый файл test.txt и нужно чтобы кнопкой "Button7" можно было выбрать папку test неа диске D и потом автоматом в главном окне был текст test.txt тоесть то что там внутри ! а в вверхней строчке сама папка тоесть адрес с папкой!!!! помогите ккому не сложно уже замучалась !
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Ничегонепонял.

Но попробую...

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1_1 = GUICreate("Form1", 843, 556, 114, 376)
$List1 = GUICtrlCreateList("", 0, 32, 841, 411, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$List2 = GUICtrlCreateList("", 80, 0, 569, 34, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Button7 = GUICtrlCreateButton("Button7", 0, 0, 81, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button7
			$sSelect = FileSelectFolder("Выбор файла", "D:\", 0, "D:\test", $Form1_1)
			If @error Then ContinueLoop
			
			GUICtrlSetData($List1, FileRead($sSelect & "\test.txt"))
			GUICtrlSetData($List2, $sSelect)
	EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

Хотя это не совсем правильно так использовать List, лучше вверху использовать Input, а для содержимого файла Edit.


Добавлено:
Сообщение автоматически объединено:

Вот так хотябы:

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 840, 550)
$Input1 = GUICtrlCreateInput("", 82, 0, 570, 31, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Edit1 = GUICtrlCreateEdit("", 0, 32, 840, 410, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
GUICtrlSetFont($Input1, 14)

$Button7 = GUICtrlCreateButton("Button7", 0, 0, 81, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button7
			$sSelect = FileSelectFolder("Выбор файла", "D:\", 0, "D:\test", $Form1)
			If @error Then ContinueLoop
			
			GUICtrlSetData($Input1, $sSelect)
			GUICtrlSetData($Edit1, FileRead($sSelect & "\test.txt"))
	EndSwitch
WEnd
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
Да спасибо ! :laugh: почти то что не знаюочу !!!!
если не трудно посмотри и подскажи трудно ли ато не совсем поняла !!
я в общем поняла как сделать но так будет лучше как на скрине ((

с помощью одной ф-ции которую я странно что не могла заметить (

вот скрин внизу !


 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
romashka [?]
так будет лучше как на скрине
На скрине я не вижу ничего, пробовал одеть очки отца, тоже не удалось расмотреть :laugh:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
CreatoR
romashka`е нужно чтобы все выбранные пути фиксировались в списке. При клике мышкой по пункту в списке, в текстовом поле, ниже, должно отображаться содержимое текстового файла который расположен по выбранному пути. Вроде так :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Garrett [?]
romashka`е нужно чтобы все выбранные пути фиксировались в списке. При клике мышкой по пункту в списке, в текстовом поле, ниже, должно отображаться содержимое текстового файла который расположен по выбранному пути.
Судя по описанию с первого сообщения это не так:

[?]
НА ДИСКЕ D:\ есть к примеру папка test . А в папке есть текстовый файл test.txt и нужно чтобы кнопкой "Button7" можно было выбрать папку test неа диске D и потом автоматом в главном окне был текст test.txt тоесть то что там внутри ! а в вверхней строчке сама папка тоесть адрес с папкой
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
CreatoR [?]
Garrett [?]Цитата
romashka`е нужно чтобы все выбранные пути фиксировались в списке. При клике мышкой по пункту в списке, в текстовом поле, ниже, должно отображаться содержимое текстового файла который расположен по выбранному пути.
Судя по описанию с первого сообщения это не так:

Я, честно говоря, первый пост совсем не понял, и сделал своё предположение, глядя на screenshot. :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Тогда так:

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form = GUICreate("Form", 843, 556, 114, 376)
$List = GUICtrlCreateList("", 80, 0, 569, 34, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Edit = GUICtrlCreateEdit("", 0, 32, 841, 411, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Button = GUICtrlCreateButton("Button", 0, 0, 81, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()

	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button
			$sSelect = FileSelectFolder("Выбор файла", "", 0, "D:\test", $Form)
			If @error Then ContinueLoop
			
			GUICtrlSetData($List, $sSelect)
			GUICtrlSetData($List, $sSelect)
			ContinueCase
		Case $List
			GUICtrlSetData($Edit, FileRead(GUICtrlRead($List) & "\test.txt"))
	EndSwitch
WEnd


P.S
Изображение в сообщений у romashk'и я поправил, там была неправильная ссылка, поэтому небыло видно полного размера.
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
спасибо !
не буду отмечать решенной темой так как разбираюсь еще !
спасибо критару !!!!!!!!!
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
ну этот человек который мне помог хорошо
такой вопрос еще по теме
а как отобразить каталог ? тоесть я выбираю папку и там где строчки - там все папки что есть в той,которую я выбрала.И потом я клацну на какую либо и буду уже с ней работать
тоесть я выбираю например диск С и мне показываеться в окошечке все папки ( в той верхней строчки к примеру) Потом я считываю со строчки при клацанье и уже работаю далее.
но как сделать это отображение
я так понимаю через массив.Но КАК ? :whistle:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
romashka
Я перечитал несколько раз ваше сообщение, но увы, я... «Ничегонепонял» #2 :Beta:

Или у меня голова уже не варит, или вам нужно пояснее излагать свои мысли (или упорядочить их для начала :beer:smile:.
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
креатору пишу в общем
смотри
мы вибирали папку и все !
а как выбрать папку и чебы потом в окошке программы появилось все те папки что есть в той папке которую мы выбрали !
ну тоесть!
я выбираю папку - в проге в окошке показываетса потом какие папки в той папке чо я выбрала !

ну ты понимаеш о чем я !
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
юзеры давайте по делу пожалуйста
просто мне нада это все но я мучаюсь и нервничаю не могу понять как :'(


Добавлено:
Сообщение автоматически объединено:

я решила эту проблему так
Код:
Global $DirArray[1]
		_ArrayDirListAdd($DirArray, "c:\windows")


        For $DirArray0 In $DirArray
        GUICtrlSetData($List, $DirArray0)
        next


Func _ArrayDirListAdd (ByRef $aGDir, $sPath = @ScriptDir)
Local $aLDir = _FileListToArray($sPath, "*", 2)
For $i = 1 To UBound($aLDir) - 1
If IsArray($aGDir) Then _ArrayAdd($aGDir, $sPath &"\"& $aLDir[$i])
_ArrayDirListAdd ($aGDir, $sPath &"\"& $aLDir[$i])
Next
EndFunc


не смотрите,что не понятно - сама СУТЬ . Но правильно ли я сделала то что вот таким образом?

все получилось на ура но незнаю логично ли так делать как сделала я !
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
romashka [?]
креатору пишу в общем
Вы видите как я цитирую ваш текст? это делается его выделением. Но цитировать вы не обязаны, а вот ник вставить для обращения было бы не лишним (это делается нажатием на него в разделе профиля слева).

Да и ещё, пишите пожалуйста нормальным русским языком, тут - не чат, это форум, и довольно серъёзный.

ты понимаеш о чем я
О рекурсии? :laugh:

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form = GUICreate("Form", 843, 556, 114, 376)
$List = GUICtrlCreateList("", 80, 0, 569, 34, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Edit = GUICtrlCreateEdit("", 0, 32, 841, 411, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Button = GUICtrlCreateButton("Button", 0, 0, 81, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button
            $sSelect = FileSelectFolder("Выбор файла", "", 0, "D:\test", $Form)
            If @error Then ContinueLoop
            
			$aFolders = _FilesList($sSelect, "*", 2)
			
			GUICtrlSetData($List, $sSelect)
           
			For $iFolder = 1 To UBound($aFolders)-1
				GUICtrlSetData($List, $aFolders[$iFolder])
			Next
			
			 GUICtrlSetData($List, $sSelect)
			
            ContinueCase
        Case $List
            GUICtrlSetData($Edit, FileRead(GUICtrlRead($List) & "\test.txt"))
    EndSwitch
WEnd

Func _FilesList($sPath, $sFileMask, $iFlag = 1)
	Local $sOut, $aOut, $hDir, $sAttrib
	
	Switch $iFlag
		Case 1 ;Only files
			$sAttrib = ' /A-D'
		Case 2 ;Only folders
			$sAttrib = ' /AD'
		Case Else ;Files and folders
			$sAttrib = ' /A'
	EndSwitch
	
	$sOut = StringToBinary("0" & @CRLF, 2)
	$hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $sFileMask & '" /S /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
	
	While 1
		$sOut &= StdoutRead($hDir, False, True)
		If @error Then ExitLoop
	Wend
	
	$aOut = StringRegExp(BinaryToString($sOut, 2), "[^\r\n]+", 3)
	If @error Then Return SetError(1)
	
	$aOut[0] = UBound($aOut)-1
	Return $aOut
EndFunc
 
Автор
R

romashka

Новичок
Сообщения
11
Репутация
0
creator

ай креатор креатор спасиба всеравно
а то шо я написала то как те ?
 
Верх