|
| Имя файла (*.txt) | Sub_ReadTabs.txt |
| Автор | Вахмурка |
| Вызываемый плагин | ini |
| Версия | 1.2 |
| Дата обновления | 24.06.2008 |
args Single static Icons = "путь к библиотеке\TT.icl" local Keys, Temp, i, Values, Tube, FT, BT local Section = Single ++ "tabs" local Path = ini.get(Config, Single, "path") local Number = TT.Length local Panel = ifelse(Single == "left", 1, 2) if(ini.check_exists(TW, "FontColor", "Target") == 3) FT = ini.get(TW, "FontColor", "Target") if(ini.check_exists(TW, "BackColor", "Target") == 3) BT = ini.get(TW, "BackColor", "Target") if(ini.check_exists(Config, Section) != 2) do TT.Insert(Number) TT.AddLeft(Number, 0) TT.AddMiddle(Number, Panel) TT.SetIconVisible(Number, 0) TT.SetLeftOnTop(Number, 1) TT.SetTextColor(Number, FT) TT.SetBackColor(Number, BT) TT.SetId(Number, Path) quit(1) endif Keys = ini.enum_keys(Config, Section) Number = line(Keys, 0) if(Number < 4 && ini.check_exists(Config, Section, "activelocked") == 3) do Number = TT.Length() TT.Insert(Number) TT.AddLeft(Number, 0) TT.AddMiddle(Number, Panel) TT.SetIcon(Number, Icons, ini.get(Config, Section, "activelocked")) if(ini.check_exists(Config, Section, "activecaption") == 3) TT.SetToolTip(Number, ini.get(Config, Section, "activecaption")) TT.SetLeftOnTop(Number, 1) TT.SetTextColor(Number, FT) TT.SetBackColor(Number, BT) TT.SetId(Number, Path) quit(1) endif for(i = 1; i < Number; i++) Temp = i ++ "_path" if(ini.check_exists(Config, Section, Temp) != 3) do Values = i + 1 break endif endfor Number = ini.get(Config, Section, "activetab") flag clear 1 local Start = TT.Length local End = Values + Start for(i = Start; i < End; i++) TT.Insert(i) TT.AddLeft(i, i - Start) TT.AddMiddle(i, Panel) if(i - Start == Number) do ;;active tab is reached TT.SetId(i, Path) flag set 1 Temp = 0 if(ini.check_exists(Config, Section, "activelocked") == 3) Temp = ini.get(Config, Section, "activelocked") TT.SetIcon(i, Icons, Temp) TT.SetLeftOnTop(i, 1) TT.SetTextColor(i, FT) TT.SetBackColor(i, BT) if(ini.check_exists(Config, Section, "activecaption") == 3) TT.SetTooltip(i, ini.get(Config, Section, "activecaption"), Number) else Key = i - pproflag(1) - Start Temp = Key ++ "_path" Temp = ini.get(Config, Section, Temp) TT.SetId(i, Temp) Temp = Key ++ "_options" Temp = ini.get(Config, Section, Temp) Tube = word(Temp, 6, "|") TT.SetIcon(i, Icons, Tube) Temp = Key ++ "_caption" if(ini.check_exists(Config, Section, Temp) == 3) TT.SetTooltip(i, ini.get(Config, Section, Temp), i - Start) endif endfor quit(Values)
| Имя файла (*.txt) | Sub_DebugCL.txt |
| Автор | Вахмурка |
| Вызываемый плагин | - |
| Версия | 1.2 |
| Дата обновления | 06.04.2006 |
local List = arg(1)
local CR = esc(?+\n+, ?+\+)
local Check, Temp, Cap, Mess
if(cl.Exists(List) != 1) do
messagebox("ok", "Command List '" ++ List ++ "' does not exist", "CL error")
quit all
endif
local Number = cl.Length(List)
Cap = "Command List '" ++ List ++ "' has " ++ Number ++ " entries"
Mess = "Command List info:" ++ CR
Temp = cl.GetBackColor(List)
if(Temp != "")
Mess = Mess ++ CR ++ "Background color: " ++ Temp
Temp = cl.GetBackground(List)
if(Temp != "")
Mess = Mess ++ CR ++ "Background file: " ++ Temp
Temp = cl.GetTextColor(List)
if(Temp != "")
Mess = Mess ++ CR ++ "Text color: " ++ Temp
Mess = Mess ++ CR ++ "Hide interval: " ++ cl.GetHideAfter(List)
Mess = Mess ++ CR ++ "Maximum text length: " ++ cl.GetMaxtext(List)
Temp = cl.GetLastBar()
if(Temp != "") do
Mess = Mess ++ CR ++ "Name of bar with last button pressed: '" ++ Temp ++ "'"
Mess = Mess ++ CR ++ "Last pressed button on bar '" ++ Temp ++ "': "
Mess = Mess ++ cl.GetLastPressed(Temp) ++ CR ++ "Last mouse button on bar '"
Mess = Mess ++ Temp ++ "': " ++ cl.GetLastMouse (Temp)
endif
if(messagebox("okcancel information", Mess, Cap) == 0)
quit all
Mess = ""
for(i = 0; i < Number; i = i + 1)
for(j = 1; 1; j = j + 1)
Check = Mess
Cap = "Entry #" ++ i ++ " of " ++ Number - 1
Temp = cl.GetLeftCmd(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Left Command #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetRightCmd(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Right Command #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetMiddleCmd(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Middle Command #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetLeftParam(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Left Parameter #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetRightParam(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Right Parameter #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetMiddleParam(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Middle Parameter #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetLeftWork(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Left work dir #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetRightWork(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Right work dir #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetMiddleWork(List, i, j)
if(Temp != "")
Mess = Mess ++ CR ++ "Middle work dir #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetLeftHow(List, i, j)
if(Temp != "normal")
Mess = Mess ++ CR ++ "Left how start #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetRightHow(List, i, j)
if(Temp != "normal")
Mess = Mess ++ CR ++ "Right how start #" ++ j ++ ": '" ++ Temp ++ "'"
Temp = cl.GetMiddleHow(List, i, j)
if(Temp != "normal")
Mess = Mess ++ CR ++ "Middle how start #" ++ j ++ ": '" ++ Temp ++ "'"
if(Check == Mess)
break
endfor
Mess = Mess ++ CR ++ CR ++ "Left ontop checkbox is "
Mess = Mess ++ ifelse(cl.GetLeftOnTop(List, i), "ON", "OFF")
Mess = Mess ++ CR ++ "Right ontop checkbox is "
Mess = Mess ++ ifelse(cl.GetRightOnTop(List, i), "ON", "OFF")
Mess = Mess ++ CR ++ "Middle ontop checkbox is "
Mess = Mess ++ ifelse(cl.GetMiddleOnTop(List, i), "ON", "OFF")
Mess = Mess ++ CR ++ "Left switch to if active checkbox is "
Mess = Mess ++ ifelse(cl.GetLeftSwitchTo(List, i), "ON", "OFF")
Mess = Mess ++ CR ++ "Right switch to if active checkbox is "
Mess = Mess ++ ifelse(cl.GetRightSwitchTo(List, i), "ON", "OFF")
Mess = Mess ++ CR ++ "Middle switch to if active checkbox is "
Mess = Mess ++ ifelse(cl.GetMiddleSwitchTo(List, i), "ON", "OFF")
Temp = cl.GetId(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "ID: '" ++ Temp ++ "'", "")
Temp = cl.GetLabel(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Label: '" ++ Temp ++ "'", "")
Temp = cl.GetLabelValue(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Label value: '" ++ Temp ++ "'", "")
Temp = cl.GetTooltip(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Tooltip: '" ++ Temp ++ "'", "")
Temp = cl.GetTooltipValue(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Tooltip value: '" ++ Temp ++ "'", "")
Temp = cl.GetIconFile(List, i)
if(Temp) do
Mess = Mess ++ CR ++ "Icon file: '" ++ Temp ++ "'"
Mess = Mess ++ CR ++ "Icon number: " ++ cl.GetIconNumber(List, i)
endif
Mess = Mess ++ CR ++ "Item is "
Mess = Mess ++ ifelse(cl.IsVisible(List, i), "visible", "NOT visible")
Mess = Mess ++ CR ++ "Item is "
Mess = Mess ++ ifelse(cl.IsEnabled(List, i), "enabled", "NOT enabled")
Mess = Mess ++ CR ++ "Icon is "
Mess = Mess ++ ifelse(cl.IsIconVisible(List, i), "visible", "NOT visible")
Mess = Mess ++ CR ++ "Item Width: " ++ cl.GetWidth(List, i)
Mess = Mess ++ CR ++ "Item Height: " ++ cl.GetHeight(List, i)
Temp = cl.GetBackColor(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Item Background: '" ++ Temp ++ "'", "")
Temp = cl.GetTextColor(List, i)
Mess = Mess ++ ifelse(Temp, CR ++ "Item Text Color: '" ++ Temp ++ "'", "")
if(messagebox("okcancel information", Mess, Cap) == 0)
quit all
Mess = ""
endfor
Скрипт предназначен для отладочной печати списка команд (command list). Вызовите его командой
runfile.Sub_DebugCL("имя_CL")
и извлеките из списка команд всю информацию, которая в нем хранится.
| Имя файла (*.txt) | Sub_ParsePath.txt |
| Автор | Вахмурка |
| Вызываемый плагин | file |
| Версия | 1.4 |
| Дата обновления | 13.07.2009 |
args FullPath, Depth local Number, Char, i, Result local Slash = esc(?+\\+, ?+\+) local Name = file.nametype(FullPath) Number = index(FullPath, "/") if(not Number) do Number = index(FullPath, Slash) if(not Number) quit Char = Slash else Char = "/" endif local Path = file.folder(FullPath) Number = word(Path, 0, Slash) if(arg(0) == 1) quit(Number) if(Number < abs(Depth)) quit(FullPath) if(Depth > 0) do for(i = Number; i > Number - Depth; i--) Result = word(Path, i, Slash) ++ Char ++ Result endfor elseif(Depth == 0) do quit(Name) elseif(Depth < 0) do for(i = 1; i <= Number + Depth; i++) Result = Result ++ word(Path, i, Slash) ++ Char endfor endif quit(remove(Result, -1))
Скрипт предназначен для выделения из заданного пути директорий с заданной глубиной. Первый параметр - путь к файлу или директории, причем разделителем может служить как "\" (синтаксис Total Commander), так и "/" (PowerPro). Второй параметр - глубина, считая от имени файла к корню.
Файлу соответствует глубина 0. Если первый параметр оканчивается разделителем, то предполагается, что задано имя директории, в противном случае - файла.
Если второй параметр отрицателен, то отсчет ведется в направлении от корня к имени файла.
Если второй параметр больше действительной глубины (в нашем случае это 5), скрипт возвращает первый параметр. Если второй параметр равен 0, будет возвращено имя файла, если оно задано, и пустую строку в противном случае.
В версии 1.2 введена возможность вычисления действительной глубины пути заданного файла - для этого надо опустить второй параметр.
К примеру, для гипотетического файла c:\One\Two\Three\Four\name.txt скрипт вернет следующие значения:
| Первый параметр | Второй параметр | Возвращаемое значение |
| "c:\One\Two\Three\Four\" | "3" | "Two\Three\Four" |
| "c:\One\Two\Three\Four\name" | "2" | "Three\Four" |
| "c:\One\Two\Three\Four\name.txt" | "5" | "c:\One\Two\Three\Four" |
| "c:/One/Two/Three/Four/" | "4" | "One/Two/Three/Four" |
| "c:/One/Two/Three/Four/name.txt" | "-3" | "c:/One" |
| "c:\One\Two\Three\Four\name.txt" | "-1" | "c:\One\Two\Three" |
| "c:/One/Two/Three/Four/name.txt" | 5 |
| Имя файла | Sub_TreeDownCmd.txt |
| Автор | Вахмурка |
| Вызываемые плагины | file, miscplugin |
| Версия | 1.0 |
| Дата обновления | 24.06.2006 |
args Path, Name
local Report = miscplugin.tempfilename()
local Str = "/c dir " ++ Path ++ " /a:d /b > " ++ Report
local ExitCode = file.runwait(0, "cmd", Str, "", "hide")
if(not file.size(Report))
quit("")
local Hand = file.open(Report, "r")
local Temp = "z;"
flag clear 2
if(Hand > 0 && not ExitCode) do
for(not(file.eof(Hand)))
Str = file.readstring(Hand)
Str = file.nametype(file.getshortpath(Path ++ "\" ++ Str))
if(Str) do
if(stricoll(Str, Name) == 1) do
flag set 2
if(stricoll(Temp, Str) == 1 || Temp == "z;")
Temp = Str
endif
endif
endfor
else
messagebox("ok error", "File not opened", "FILE plugin error")
quit all
endif
file.close(Hand)
if(pproflag(2)) do
quit(Path ++ "\" ++ Temp)
else
quit("")
endif
| Имя файла (*.txt) | Sub_TreeUpCmd.txt |
| Автор | Вахмурка |
| Вызываемые плагины | file, miscplugin |
| Версия | 1.0 |
| Дата обновления | 24.06.2006 |
args Path, Name
local Report = miscplugin.tempfilename()
local Str = "/c dir " ++ Path ++ " /a:d /b > " ++ Report
local ExitCode = file.runwait(0, "cmd", Str, "", "hide")
if(file.size(Report) - 2 == length(Name))
quit("")
local Temp
local Hand = file.open(Report, "r")
flag clear 2
if(Hand > 0 && not ExitCode) do
for(not(file.eof(Hand)))
Str = file.readstring(Hand)
if(Str) do
Str = file.nametype(file.getshortpath(Path ++ "\" ++ Str))
if(stricoll(Str, Name) == -1) do
flag set 2
if(stricoll(Temp, Str) == -1)
Temp = Str
endif
endif
endfor
else
messagebox("ok error", "File not opened", "FILE plugin error")
quit all
endif
file.close(Hand)
if(pproflag(2)) do
quit(Temp)
else
quit("")
endif
| Имя файла (*.txt) | Sub_LowestDirCmd.txt |
| Автор | Вахмурка |
| Вызываемые плагины | file, miscplugin |
| Версия | 1.0 |
| Дата обновления | 24.06.2006 |
args Path
local Report = miscplugin.tempfilename()
local Str = "/c dir " ++ Path ++ " /a:d /b > " ++ Report
local ExitCode = file.runwait(0, "cmd", Str, "", "hide")
if(not file.size(Report))
quit("")
flag clear 2
local Hand = file.open(Report, "r")
local Temp
if(Hand > 0 && not ExitCode) do
for(not(file.eof(Hand)))
Str = file.readstring(Hand)
if(Str) do
Str = file.nametype(file.getshortpath(Path ++ "\" ++ Str))
if(stricoll(Temp, Str) == -1)
Temp = Str
endif
endfor
else
messagebox("ok error", "File not opened", "FILE plugin error")
quit all
endif
file.close(Hand)
quit(Path ++ "\" ++ Temp)
| Имя файла (*.txt) | Sub_MoveFile.txt |
| Автор | Вахмурка |
| Вызываемые плагины | file |
| Версия | 1.0 |
| Дата обновления | 27.01.2006 |
local Name = file.nametype(arg(1)) local New = arg(2) ++ Name file.move(arg(1), New)
| Имя файла | Sub_Descript_ion.txt |
| Автор | Вахмурка |
| Вызываемые плагины | ini, file, map |
| Версия | 1.0 |
| Дата обновления | 27.08.2007 |
args Path, FileName, Comment, Action
local Source = Path ++ "descript.ion"
local CR = esc(?+\n+, ?+\+)
local Quote = esc(?+\"+, ?+\+)
local AsQuote = "|"
local Config = pprofolder ++ "scripts\ini\Descript_ion.ini"
local fh, Str, SomeFile, Temp, NotComms, Delim
if(ini.check_exists(Config, "Options", "Delimiter") == 3)
Delim = ini.get(Config, "Options", "Delimiter")
if(index(FileName, " "))
FileName = AsQuote ++ FileName ++ AsQuote
if(not file.validpath(Source)) do
if(index("drg", Action))
quit("ERROR: no comment file")
fh = file.open(Source, "w")
if(fh <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error #12")
quit all
endif
file.writeline(fh, replacechars(FileName, AsQuote, Quote) ++ " " ++ Comment)
file.close(fh)
quit
else
fh = file.open(Source, "r")
if(fh <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error #11")
quit
endif
endif
local M = map.create(10, 1)
flag set 1
for(not(file.eof(fh)))
Str = file.readstring(fh)
if(not Str)
continue
SomeName = word(Str, 1)
if(file.validpath(Path ++ SomeName)) do
Temp = select(Str, length(SomeName) - length(Str) + 1)
else
SomeName = word(Str, 1, Quote)
if(not file.validpath(Path ++ SomeName)) do
NotComms = NotComms ++ Str ++ CR
continue
else
SomeName = AsQuote ++ SomeName ++ AsQuote
Temp = select(Str, length(SomeName) - length(Str) + 1)
endif
endif
if(SomeName == FileName) do
if(Action == "g") do
map.destroy(M)
file.close(fh)
quit(Temp)
elseif(Action == "r") do
M[FileName] = Comment
flag clear 1
elseif(Action == "b") do
M[FileName] = Comment ++ Delim ++ Temp
flag clear 1
elseif(Action == "a") do
M[FileName] = Temp ++ Delim ++ Comment
flag clear 1
endif
else
M[SomeName] = Temp
endif
endfor
if(index("s", Action))
M[FileName] = Comment
if(index("bar", Action) && pproflag(1))
M[FileName] = Comment
file.close(fh)
file.delete(Source)
fh = file.open(Source, "w")
if(fh <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error #13")
quit all
endif
if(NotComms)
file.writeline(fh, NotComms ++ CR)
map.restart(M)
for(not(map.eof(M)))
Str = map.getnext(M)
if(not Str)
continue
file.writeline(fh, replacechars(Str, AsQuote, Quote) ++ " " ++ M[Str])
endfor
file.close(fh)
map.destroy(M)
В скрипт передаются следующие аргументы:
В двух последних случаях скрипт пытается прочесть значение ключа Delimiter раздела Options файла scripts\ini\Descript_ion.ini. Например, если PowerPro установлена, как у меня, в d:\Utils\PowerPro, то файл настроек имеет путь d:\Utils\PowerPro\scripts\ini\Descript_ion.ini.
Если ключ существует, его значение будет использовано в качестве разделителя между старым и новым комментариями. По умолчанию значение разделителя - точка.
| Имя файла | Sub_TMTC.txt |
| Автор | Вахмурка |
| Вызываемые плагины | tc, win, childwin |
| Версия | 1.0 |
| Дата обновления | 08.06.2009 |
args hwnd, Panel if(not Panel) do Panel = tc.active(hwnd) elseif(Panel == 1) Panel = "left" elseif(Panel == 2) Panel = "right" endif local List = win.childhandlelist(hwnd, "c=TMyPanel") local TMTC = win.childhandlelist(hwnd, "c=TMyTabControl") local Num = word(TMTC, 0) local TMP if(Num == 0) do quit(0) elseif(Num == 1) do local TPP = win.childhandlelist(hwnd, "c=TPathPanel") local LPath = win.gettext(word(TPP, 1)) local RPath = win.gettext(word(TPP, 2)) for each word Hand in List Num = childwin.handle(Hand, "TPathPanel") if(Num) do Num = win.gettext(Num) if(Num == LPath && Panel == "right") do TMP = Hand break endif if(Num == RPath && Panel == "left") do TMP = Hand break endif endif endfor if(not TMP) quit(0) for each word Hand in List Num = childwin.handle(Hand, "TMyComboBox") if(Num) do if(childwin.gettext(Num) && Hand != TMP) do TMP = Hand break endif endif endfor else for each word Hand in List Num = childwin.handle(Hand, "TMyTabControl") if(Num) do TMP = Hand if(Panel == "left") break endif endfor endif TMTC = childwin.handle(TMP, "TMyTabControl") if(not TMTC) quit(0) quit(TMTC)
Внимание! Скрипт не работает в Total Commander 7.5 pb1 и pb2!
| Имя файла | Sub_Progress.txt |
| Автор | Вахмурка |
| Вызываемые плагины | - |
| Версия | 1.0 |
| Дата обновления | 23.06.2017 |
args Val, Start, End, Width, AutoClose, Display, Props
static D = Display
static P = "%"
if(!Display)
D = P
static AC = AutoClose
if(!End)
End = 100
static E = End
if(!Width)
Width = 200
static C = cl.Create("Progress", 1)
C.Insert(0)
C.SetLabel(0, "*control progress " ++ Val ++ " " ++ Start ++ " " ++ End)
C.SetProperties("Format=barsize tooltips flat position: middlecaption")
if(Props)
C.AddProperties(Props)
C.SetWidth(0, Width)
C.Insert(0)
C.AddLeft(0, "*bar close Progress")
C.SetWidth(0, 60)
C.SetToolTip(0, "Left: Close/_____________/Start: " ++ Start ++ "/End: " ++ End)
C.show
@Current
args Val
local Temp = Val
switch (D)
case P
Temp ++= D
break
case "/"
Temp ++= D ++ E
endswitch
C.SetLabel(0, Temp)
C.SetCtrlValue(1, Val)
if(Val >= E && AC) do
wait.forinterval(AC)
C.close
endif
Скрипт носит информативно-иллюстративную функцию, позволяя следить за ходом выполнения длительных операций. В средней части заголовка окна изображается небольшая панель, содержащая два элемента. Правый – так называемый прогресс-бар, показывающий выполнение операции в наглядном графическом виде. Левый предоставляет ту же информацию в числовом виде (счетчик) и позволяет закрыть панель, если это необходимо.
Скрипт вызывается минимум дважды. Первый раз – до начала операции, для отображения панели. Последующие – для обновления информации.
Для первого вызова в скрипт передаются следующие параметры:
Val – текущее значение счетчика;
Start – начальное значение счетчика (при первом запуске обычно Val = Start);
End – конечное значение счетчика (по умолчанию 100);
Width – ширина панели (по умолчанию 200);
AutoClose – время в миллисекундах, по истечении которого панель закрывается после завершения операции. Если AutoClose = 0, то панель можно закрыть только нажатием на левую кнопку панели;
Display – формат счетчика. Возможные значения:
Второй и последующие вызовы скрипта требуют одного параметра – текущего значения счетчика.
Например, обрабатываются 123 файла. До начала обработки вызывается скрипт с параметрами
.Subs\Sub_Progress(0, 0, 123, 300, 5000, "/", "roundbar: 7")
Панель будет иметь ширину 300 пикселей и сильно закругленные углы. На кнопке отобразится информация "0/123".
Далее, при обработке файла номер i вызов осуществляется командой
.Subs\Sub_Progress@Current(i)
Например, если i = 61, то на кнопке появится надпись "61/123" и полоска будет залита примерно до середины.
После того, как будет обработан 123-й файл, пройдет 5 секунд и панель исчезнет.
| Имя файла | Sub_Spin.txt |
| Автор | Вахмурка |
| Вызываемые плагины | dialog |
| Версия | 1.0 |
| Дата обновления | 23.06.2018 |
args Start, From, To, Caption, Text, Styles, Cancel, H, W, YSET, HSET, YOC, WOC, HOC, XE, WE, XS, WS, XT, WT, XC
if(!H)
H = 160
if(!W)
W = 44
if(!YSET)
YSET = 6
if(!HSET)
HSET = 12
if(!YOC)
YOC = 22
if(!WOC)
WOC = 74
if(!HOC)
HOC = 16
if(!XE)
XE = 16
if(!WE)
WE = 12
if(!XS)
XS = 6
if(!WS)
WS = 12
if(!XT)
XT = 32
if(!WT)
WT = 128
if(!XC)
XC = 86
static No = Cancel
static Num
if(!Styles)
Styles = "thickframe sysmenu centre"
dialog.error_dialog_on()
local hDlg = dialog.define(0, 0, H, W, Caption, Styles)
if(!hDlg)
quit
hDlg.define_control(XE, YSET, WE, HSET, "editbox", "ebCnt", Start, "3d border", "", "", 0x0300)
hDlg.define_control(XS, YSET, WS, HSET, "spinner", "spCnt", "", "setbuddyint")
hDlg.define_control(XT, YSET, WT, HSET, "static", "text", Text)
hDlg.define_control(XS, YOC, WOC, HOC, "button", "", "OK", "", cbx("@onOk"))
hDlg.define_control(XC, YOC, WOC, HOC, "button", "btQuit", "&Cancel", "", cbx("@onQuit"))
hDlg.create(1)
local hWnd = hDlg.get("ebCnt", "hwnd")
hDlg.send_message("spCnt", "setbuddy", hWnd, 0, 0)
hDlg.set_range("spCnt", From, To)
hDlg.run("foreground")
quit(Num)
Function onOk(sUserArg, dlgHan)
Num = dlgHan.get_value("spCnt")
dlgHan = dlgHan.destroy()
quit
Function onQuit(sUserArg, dlgHan)
Num = No
dlgHan = dlgHan.destroy()
Скрипт предназначен для ввода одного целого числа. Это можно сделать в поле редактирования, а можно воспользоваться spin-control'ом (он же "счетчик" или "вертушка").
Параметры имеют следующий смысл:
Параметры начиная с H можно не задавать, тогда используются умолчания. Все размеры окон и элементов управления подобраны близко к "золотому сечению".
| Имя файла | Sub_BarName.txt |
| Автор | Вахмурка |
| Вызываемые плагины | win, childwin |
| Версия | 1.0 |
| Дата обновления | 28.10.19 |
local hh = win.handle("c=TTOTAL_CMD")
win.postmessage(hh, 0x400+51, 498, 0)
wait.for(100, win.exists("c=TBUTTONCHANGEDLG"))
local TBCD = win.handle("c=TBUTTONCHANGEDLG")
local BarName = childwin.gettext(TBCD, "TMyPanel")
if(!BarName)
BarName = childwin.gettext(TBCD, 8)
if(TBCD)
win.close(TBCD)
if(validpath(BarName))
quit(BarName)
Скрипт возвращает имя текущей панели кнопок (button bar)
|
На главную |
|
Все о Total Commander |
|
PowerPro | Все скрипты |
|