Что нового

[Окна, Диалоги] вынос параметров в диалоговое окно

Tosyk

Новичок
Сообщения
206
Репутация
0
Здравствуйте,

есть код, который конвертирует изображение через внешнюю консольную программу с параметрами:
Код:
#include <File.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $i
Local $sSourceFile, $sDestFile, $sDestPath, $sExePath
Local $sDrive, $sFolder, $sFileName, $sExt, $sParams, $sRunWait

Local $sPattern = "\.(?i:dds)"

If $CmdLine[0] <> 0 Then
    If FileExists("C:\Program Files\ImageMagick\tools\texconv.exe") Then
        ProgressOn("Converting", "", "0%")

        For $i = 1 To $CmdLine[0]
            $sSourceFile = $CmdLine[$i]

            ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")

            If FileExists($sSourceFile) Then
                _PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)

             If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
                    $sExePath = '"C:\Program Files\ImageMagick\tools\texconv.exe"'
                    $sParams = '-y -f R8G8B8A8_UNORM -ft tga -o'
                    $sDestPath = '"' & $sDrive & '\' & StringTrimRight($sFolder, 1) & '\\' & '"'
                    $sSourceFile = '"' & $sSourceFile & '"'
                    $sRunWait = $sExePath & " " & $sParams & " " & $sDestPath & " " & $sSourceFile
                    ;MsgBox(0, '', $sRunWait) ; отладка

					 RunWait($sRunWait, "", @SW_HIDE)
;~                     RunWait($sRunWait)
             Else
                 ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
             EndIf
            Else
                MsgBox(0, '', "File [" & $sSourceFile & "] not found")
            EndIf
        Next

        ProgressSet(100, "Converting complete", "100%")

        Sleep(1000)
        ProgressOff()
    EndIf
Else
    MsgBox(0, "Usage", "Drop file(s) on " & @ScriptName)
    ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf

Exit (0)


подскажите как вынести эти параметры (-y -f R8G8B8A8_UNORM -ft tga -o) отдельными переменными в диалоговое окно: если, допустим, галочка стоит (или поле заполнено), то параметр используется - в противном случае параметр игнорируется.
А так же, чтобы параметры сохранялись в этом окне при любом количестве открытий/закрытий окошка до того момента пока их не поменяют и не нажмут ОК.

примерный вид желаемого окна вот такое:
 

Вложения

  • gui.png
    gui.png
    14.8 КБ · Просмотры: 5

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
как вынести эти параметры (-y -f R8G8B8A8_UNORM -ft tga -o) отдельными переменными в диалоговое окно:
Мне не совсем понятно, для каждой переменной должен быть свой CheckBox ?
 
Автор
Tosyk

Tosyk

Новичок
Сообщения
206
Репутация
0
ra4o сказал(а):
как вынести эти параметры (-y -f R8G8B8A8_UNORM -ft tga -o) отдельными переменными в диалоговое окно:
Мне не совсем понятно, для каждой переменной должен быть свой CheckBox ?
в идеале я хочу понять принцип разных вариаций.
вот, например, есть параметр "-y"
1. как сделать для него поля ввода, чтобы если в поле ввода введено "-y" то в этом месте где $Var использовался бы этот параметр(?):
Код:
$sParams = $Var & '-f R8G8B8A8_UNORM -ft tga -o'

ну а если там не "-y" а, допустим "-y -B 0.12 -Scaled" то вся эта строчка туда подставлялась
2. а если чекбокс то принцип тот же самый, если чекбокс = "-y" то подставляется только это, а если = "-y -B 0.12 -Scaled" то и подставляется вся эта строчка.

p.s.: есть у меня вариант с гаммой для каждого канала РГБ отдельно, код типа
Код:
-gamma 1.3, 1.3, 1.3
думаю, если подставить туда переменную то получится что-то типа:
Код:
'-gamma' & $Var & ', ' & $Var & ', ' & $Var

где $Var = числу подставленному в поле ввода
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
если набор параметров одинаков, то Combo
если нужны будут вариации, то это несколько Combo
ну и опять нужно учитывать пробелы и кавычки
опять же, очередь считывания параметров
если планируешь в одну программу впихнуть несколько конверторов, то для каждого нужна своя функция и набор правил


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

лучше в стол заказов. ибо вопросов будет много по составлению окна и взаимодействию его элементов с функциями. к общим вопросам как-то не очень относится
 
Автор
Tosyk

Tosyk

Новичок
Сообщения
206
Репутация
0
joiner сказал(а):
если набор параметров одинаков, то Combo
если нужны будут вариации, то это несколько Combo
ну и опять нужно учитывать пробелы и кавычки
опять же, очередь считывания параметров
если планируешь в одну программу впихнуть несколько конверторов, то для каждого нужна своя функция и набор правил


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

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


согласен, значит эту тему пометить решённой и в стол заказов создать такую же?

создал тут: http://autoit-script.ru/index.php?topic=26050.0
 
Верх