[Цитировать]

    xnik
  • 19473
  • Стаж: 6 лет
  • Сообщений: 486
  • Репутация:11

    [+] [-]
  • Откуда: СССР
avalat, скажите а у PECMD есть возможность сделать раскладной пункт меню?

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
xnik, раскладной - это какой ?
.
такой ?

[Цитировать]

    xnik
  • 19473
  • Стаж: 6 лет
  • Сообщений: 486
  • Репутация:11

    [+] [-]
  • Откуда: СССР
раскладной - это какой
Вот такой пункт
CALL @Windows1
_SUB Windows1,W375H280,
ENVI @this.Font=14:Tahoma
ITEM 1,L10T10W350H50, Пункт1, EXEC soft.exe,,
_END
И что бы он раскладывался по клику или по наведению и с низу открывались подпункты
понял что _SUB надо прикрутить, но пока еще не совсем разобрался

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
Так подойдёт ?
CALL @Windows1
_SUB Windows1,W375H280,
ENVI @this.Font=14:Tahoma
ENVI a=m
ITEM it1,L10T10W350H50, Пункт1,%a%
ITEM it2,L10T70W350H25,Пункт2,,,16
ITEM it3,L10T105W350H25,Пункт3,,,16
ITEM it4,L10T140W350H25,Пункт4,,,16
_END
_SUB m
TEAM ENVI @it2.Visible=1|ENVI @it3.Visible=1|ENVI @it4.Visible=1|ENVI a=mm
_END
_SUB mm
TEAM ENVI @it2.Visible=0|ENVI @it3.Visible=0|ENVI @it4.Visible=0|ENVI a=m
_END

[Цитировать]

    Gvint64
  • 24573
  • Стаж: 4 года 6 месяцев
  • Сообщений: 620
  • Репутация:71

    [+] [-]
aa собрал из примеров avalat - получился такой. Если перетащить окно в другое место - то и субменю будет открыватся в другом месте.
win
_SUB win,W385H210,,
CALL mn
ITEM it,L10T10W360H40,ПУНКТ1,,,
ITEM it1,L10T50W360H40,ПУНКТ2,,,
ITEM ,L10T90W360H40,ВЫХОД,EXIT 2,,
ENVI @it.MSG=0x0204: CALL@--popmenu:%f%.%g% mm
ENVI @it1.MSG=0x0204: CALL@--popmenu:%f%.%g% mmm
_END
_SUB mm
MENU ,111,EXEC notepad
MENU ,222,EXEC mspaint
MENU ,333,
MENU -
MENU ,444,EXIT
_END
_SUB mmm
MENU ,555,EXEC notepad
MENU ,666,EXEC mspaint
MENU ,777,
MENU -
MENU ,888,EXIT
_END
_SUB mn
ENVI @this.MSG=0x0046:pm
_END
_SUB pm
ENVI @this.POS=?x:y
TEAM CALC f=%x%+250|CALC g=%y%+200
_END


Последний раз редактировалось: Gvint64 (2023-09-05 15:40), всего редактировалось 1 раз

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
Gvint64
А я так и не понял про
... раскладной пункт меню...

[Цитировать]

    Gvint64
  • 24573
  • Стаж: 4 года 6 месяцев
  • Сообщений: 620
  • Репутация:71

    [+] [-]
avalat, Ну если мышкой передвинуть основное окно программы то и меню будет появлятся в поле этого окна - а не гдето посередине экрана или что то не так получилось?

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
Gvint64, Да я не про это... нормально всё.
101113avalat, скажите а у PECMD есть возможность сделать раскладной пункт меню?
101116 по клику или по наведению и с низу открывались подпункты

[Цитировать]

    Gvint64
  • 24573
  • Стаж: 4 года 6 месяцев
  • Сообщений: 620
  • Репутация:71

    [+] [-]
101122xnik писал(а):
Просто как вариант - было интересно решить задачку с перемещением окна.

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 595
  • Репутация:44

    [+] [-]
  • Откуда: Омск
avalat aa
101084Пример комбобокса для списка дисков
Наверное, самый короткий вариант...
win
_SUB win,W480H120,
ENVI @win.font=11:Consolas                //шрифт (или подобрать другой, моноширный)
LIST comb,L20T20W430H40,,,               //создаём комбобокс
FDRV alld=*:                                        //список всех дисков в формате С: D: E: и т.д.
FORX* %alld%,&letr,                             //перечисляем буквы '&letr' в цикле
{FDRV -vol v,fs=%letr%                        //получаем метку диска (v) и файл.систему (fs)
PART -raw list drv %letr%,a                   //запрос данных о диске в переменную 'a'
MSTR d,p,typ=<*>%a%                        //из неё получаем первые три значения - номер диска (d) , раздела (р) и тип (typ)
TEAM FIND %letr%\=?,sz|CALC siz=%sz%/1G|LSTR siz=5,%siz%                 //получаем размер диска (siz)
TEAM LSTR len=10,%v%|STRL* a1=len|LSTR lab=%a1%,%v%|CALC v1=11-%a1%|LSTR n=%v1%,            ,   //выравниваем текст метки (lab) на 10 символов
TEAM LSTR len2=5,%fs%|STRL* a2=len2|LSTR fs=%a2%,%fs%|CALC v2=6-%a2%|LSTR n2=%v2%,        ,   //выравниваем текст (fs) в списке на 5 символов
ENVI @comb.Add= %letr%  %d%:%p%  %lab%%n% %fs%%n2% %siz% Gb  %typ%                                //заносим всё полученное в строку комбобокса
FIND $%letr%=C:,ENVI @comb.Sel= %letr%  %d%:%p%  %lab%%n% %fs%%n2% %siz% Gb  %typ%        //выделяем первую строку
}
_END
ay
Чуток добавил эстетику ag
win
_SUB win,W480H120,
ENVI @win.font=11:Consolas                //шрифт (или подобрать другой, моноширный)
LIST comb,L20T20W430H40,,,               //создаём комбобокс
FDRV alld=*:                                        //список всех дисков в формате С: D: E: и т.д.
FORX* %alld%,&letr,                             //перечисляем буквы '&letr' в цикле
{FDRV -vol v,fs=%letr%                        //получаем метку диска (v) и файл.систему (fs)
PART -raw list drv %letr%,a                   //запрос данных о диске в переменную 'a'
MSTR d,p,typ=<*>%a%                        //из неё получаем первые три значения - номер диска (d) , раздела (р) и тип (typ)
TEAM FIND %letr%\=?,sz|CALC siz=%sz%/1G|LSTR siz=5,%siz%                 //получаем размер диска (siz)
TEAM LSTR len=10,%v%|STRL* a1=len|LSTR lab=%a1%,%v%|CALC v1=11-%a1%|LSTR n=%v1%,           ,//выравниваем текст метки (lab) на 10 символов
TEAM LSTR len2=5,%fs%|STRL* a2=len2|LSTR fs=%a2%,%fs%|CALC v2=6-%a2%|LSTR n2=%v2%,       , //выравниваем текст (fs) в списке на 5 символов
FIND $%typ%=DRIVE_FIXED,SET Buss=(HDD)
FIND $%typ%=DRIVE_REMOVABLE,SET Buss=(USB_Flash)
ENVI @comb.Add=%letr%\ %d%:%p% %lab% %n% %fs% %n2%%siz%Gb  %Buss%                                //заносим всё полученное в строку комбобокса
FIND $%letr%=C:,ENVI @comb.Sel=%letr%\ %d%:%p% %lab% %n% %fs% %n2%%siz%Gb  %Buss%        //выделяем первую строку
}
_END

Думаю так симпатичней смотрится ab

[Цитировать]

    Crachlow
  • 16784
  • Стаж: 7 лет 2 месяца
  • Сообщений: 10
  • Репутация:0

    [+] [-]
avalat. извините за может детский вопрос, но как применять команды CMPS [-f] [-m] [-bin|-src[:Flag]] [-o] [-u] SrcFile [,] CmpsFile

[Цитировать]

    волчара
  • 253
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 595
  • Репутация:44

    [+] [-]
  • Откуда: Омск
Crachlow, aa
В справочнике все расписано
Формат: CMPS [-f] [-m] [-bin|-src[:Flag]] [-o] [-u] < SrcFile > [,] < CmpsFile >
──────────────────────────────────────────────────
Функция Чтобы сжать или распаковать файл.
──────────────────────────────────────────────────
Параметры:
-f: Для сохранения метки формата исходного файла, (необязательно)
-m: упаковать незашифрованным,
-u: извлечь,
-o старое шифрование
-bin: зашифровать бинарный файл
Flag Флаги:
1 удалить строки комментариев
2 перевести \r\n
4 объединить пустую строку
8 удалять коментарии в строке (опасно)
──────────────────────────────────────────────────
Пример: CMPS -m B.wcs B.wcz //Упаковать файл B.wcs без шифрования, результат в B.wcz
CMPS -bin cp.exe cp.wcz //Упаковать бинарный файл cp.exe с шифрованием в cp.wcz
CMPS -u B.wcz B2.wcs //Распаковать файл B.wcz, результат в B.wcs
──────────────────────────────────────────────────
Примечание Упакованный файл можно непосредственно загружать для выполнения или выполнить
как встроенный сценарий, его значок, картинка и размер не ограничены.
Зашифрованные файлы могут быть выполнены, но не могут быть извлечены.

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
Crachlow, сделал когда то для себя

dy
ENVI t=ENVI @win.POS=::::4
ENVI txt=перетащите файл *.wcs,*.ini,*.bat,*.cmd
win
_SUB win,W360H115,CodingPECMD,,,,,-top
EDIT= ed,L10T10W326H20,,,0x100,0x000000#0xDAF0F1
LABE -left,L10T40W230H14, %txt%,,,
LABE+ -center,L240T42W96H27,Старт,CALL st,0x000000#0x8CE8FF,15
_END
_SUB st
TEAM SIZE s=%ed%|FNAM na=%ed%|FDIR f=%ed%|FEXT ex=%ed%
FIND $[%ex%=wcs | %ex%=txt | %ex%=bat | %ex%=cmd | %ex%=ini ],!TEAM MESS-icon1 Не выбран файл | ENVI @ed=|%t%|EXIT
IFEX $%s%=0,TEAM MESS-icon1  Файл не найден *-2000|ENVI @ed=|%t%|EXIT
CMPS "%ed%"  "%f%\%na%.wcz"
TEAM MESS-icon   Файл зашифрован в  %na%.wcz *-5000|ENVI @ed=|%t%|EXIT
%t%
_END

[Цитировать]

    sablinov
  • 16085
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 28
  • Репутация:2

    [+] [-]
  • Откуда: Выборг
aa а как это можно пактически применять?

[Цитировать]

    avalat
  • 222
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 465
  • Репутация:127

    [+] [-]
sablinov, В pecmd так шифруются скрипты, больше применений видимо нет

Страница 6 из 7


Показать сообщения:    

Текущее время: 21-Ноя 14:34

Часовой пояс: UTC + 3


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