Page 1 of 4

RUN(rewritten in UASM and improved)

Posted: Thu Aug 31, 2017 2:52 pm
by 0CodErr
More complex UASM + KolibriOS.lib example.

This rewritten app a bit more handy then original http://board.kolibrios.org/viewtopic.php?f=9&t=2122
At now you can insert path from OpenDialog into EditBox more than one times.

For example:
let you want to open /sys/settings/system.ini in /sys/develop/t_edit
  • press Insert key (or button "...")
    select /sys/develop/t_edit
    press Space key
    press Ctrl + Insert key (or button "...")
    select /sys/settings/system.ini
    now in EditBox: /sys/develop/t_edit /sys/settings/system.ini
    press Enter (or button "run")
Spoiler:
Run.gif
Run.gif (59.32 KiB)
Viewed 12570 times
The app has the following keyboard shortcuts:
  • Insert — just set path from OpenDialog to EditBox text(like in original version)
  • Ctrl + Insert — insert path from OpenDialog into EditBox at the current cursor position
  • Shift + Insert — always insert without quotes (cause some(actually many) programs do not understand quotation marks)
  • Ctrl + Shift + Insert — always insert without quotes path from OpenDialog into EditBox at the current cursor position
RUN.7z (5.66 KiB)
Downloaded 427 times
UASM can be downloaded here http://www.terraspace.co.uk/uasm.html
KolibriOS.lib can be found in Delphi7 examples topic

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 8:54 pm
by 0CodErr
Since revision #6953 this application uses in nightly builds.
But i don't know how to say to users about available hotkeys.
Maybe someone has a suggestions?

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 9:13 pm
by Leency
Есть идея! Внизу под текстовым полем пустая область, куда можно написать: "Press F1 to get info about hotkeys" (или как-то так, англ у меня интермидиет не флюент).
При нажатии F1 вывести справку через @notify http://prntscr.com/ghwwv3

Кстати, у тебя в раннере не работает кописапст, в прошлом работало (хоть и криво - все затирало).

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 9:23 pm
by 0CodErr
в прошлом работало (хоть и криво - все затирало).
А это не ко мне вопрос, а к тому, кто добавил такую возможность в EditBox. Моя программа сама copy\paste не делает и никогда не делала.
Внизу под текстовым полем пустая область,
Но ведь туда выводится результат запуска программы.

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 9:27 pm
by Leency
Когда ты только открыл там пусто. Добавь сообщение, юзер увидит. Он что даун чтобы не понять что делать. С момента открытия программы до запуска первой программы есть время.

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 9:37 pm
by 0CodErr
Leency wrote:Когда ты только открыл там пусто.
Логично, в принципе.
Ну ОК, добавлю тогда туда.
Вопрос теперь в том, как бы лучше вывести инфо о hotkey-ях, чтобы покороче, но при этом было понятно. Или оставить как в первом сообщении?

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 10:09 pm
by Leency
Не понимаю различия всех этих хоткеев и не знаю кто будет это использовать.
Эта куча горячих клавиш напоминает мне Машину Голдберга (https://ru.wikipedia.org/wiki/%D0%9C%D0 ... 0%B3%D0%B0) больше чем реально полезный инструмент.

Re: RUN(rewritten in UASM and improved)

Posted: Wed Sep 06, 2017 10:17 pm
by 0CodErr
Leency wrote:Понятия не имею
:) А это потому что ты сам не пользуешься KolibriOS.

Я примеры приводил уже. Чтобы не писать вручную путь, передаваемый в качестве параметра.
В KolibriOS почти все программы не понимают кавычки. Они должны делать UnQuote для параметров. Поэтому я добавил ещё и "Shift + Insert — always insert without quotes".
Так как я пользуюсь этим очень часто, то мне естественно лень писать постоянно параметры-пути вручную.
А я неоднократно говорил уже, что даже сами разработчики не используют KolibriOS.

Вообще, меня очень удивило, как можно не понять для чего это :lol:

Re: RUN(rewritten in UASM and improved)

Posted: Thu Sep 07, 2017 1:17 am
by 0CodErr
Leency wrote:не работает кописапст, в прошлом работало (хоть и криво - все затирало).
0CodErr wrote:А это не ко мне вопрос, а к тому, кто добавил такую возможность в EditBox. Моя программа сама copy\paste не делает и никогда не делала.
А тут вообще интересная ситуация. Всё же copy\paste работает, но после вставки RUN начинает вести себя так, как будто зажат Ctrl. C чего бы?
То что, товарищ, добавивший copy\paste, сделал это криво, сомнений не вызывает.
А вот насчёт Ctrl, непонятно, где проблема?

Leency, вот код, который работает криво
http://websvn.kolibrios.org/filedetails ... m#line-362
http://websvn.kolibrios.org/filedetails ... m#line-395
Это работает в любом EditBox-е. Ты этого не замечал, так как ты не пользуешься этой OS.

Re: RUN(rewritten in UASM and improved)

Posted: Thu Sep 07, 2017 3:04 am
by Leency
Да замечал я это, если ты думаешь, что реально написать 100500 программ для Колибри и не заметить, то нет.

Ошибся, у тебя тоже работает копипаст. Вопрос снят.

Re: RUN(rewritten in UASM and improved)

Posted: Sat Sep 09, 2017 9:38 pm
by 0CodErr
Leency wrote:Внизу под текстовым полем пустая область, куда можно написать: "Press F1 to get info about hotkeys"
Leency wrote:Когда ты только открыл там пусто.
А может просто рядом с "Type name of program" добавить " or press F1 to show help"?

Как покороче написать сами подсказки, чтобы при этом понятно было?

Re: RUN(rewritten in UASM and improved)

Posted: Sun Sep 10, 2017 12:16 am
by Leency
Лучше внизу)

Re: RUN(rewritten in UASM and improved)

Posted: Tue Sep 12, 2017 4:33 pm
by 0CodErr
Заметил, что если ввести в поле ввода слеш "/", то после нажатия "Run" пишет "Program run successfully", при этом в Process Manager никаких новых процессов не появляется.
Если же ввести в поле ввода два слеша "//", или три слеша "///", или точку со слешем "./", или вообще ничего не вводить, то всё как положено "File not found".

Re: RUN(rewritten in UASM and improved)

Posted: Mon Sep 18, 2017 10:43 pm
by 0CodErr
Можно ли как-то проще детектировать нажатие Insert, чем сейчас?
Вот это место в коде программы RUN

Code: Select all

            .If Key.Scan == KEY_SCAN_ENTER
              Invoke OnButtonRun
            ; need check Code cause numpad0.Scan = Insert.Scan
            .ElseIf (Key.Scan == KEY_SCAN_INSERT) && \
                    (Key.Code != KEY_CODE_0)
              Invoke OnButtonBrowse
            .Else
              Invoke EditBoxKey, Offset Edit1
            .EndIf
Дело в том, что нужно обрабатывать не только Insert, но и Ctrl+Insert, который даёт другой Key.Code.
Поэтому проверять Key.Code вместо Key.Scan — шило на мыло получается.

Re: RUN(rewritten in UASM and improved)

Posted: Sat Sep 23, 2017 9:58 pm
by 0CodErr
Сейчас программа имеет две версии: русскую и английскую.
Раньше программа была переведена также и на итальянский.

Товарищ fedesco, который переводил на итальянский, забыл перевести одну строку.
Я её перевёл онлайн-переводчиком.
Также добавил испанский перевод тоже с помощью онлайн-переводчика.
Думаю, что кто-нибудь переведёт более правильно.

Кажется, что было бы удобно, если для разных языков это будет собираться на SVN.
Для того, чтобы определять тот или иной язык сборки, надо как-то объявить определённое имя.

В UASM есть такой ключ:

Code: Select all

-D<name>[=text]      Define text macro
В tup-файлах какие-то проблемы, чтобы сделать define, например, судя по http://websvn.kolibrios.org/filedetails ... upfile.lua

Хорошо, тогда, можно делать так

Code: Select all

echo lang_en = 1 > lang.inc
и подключать этот файл с помощью ключа

Code: Select all

-Fi<file_name>       Force <file_name> to be included
Для других языков:

Code: Select all

echo lang_it = 1 > lang.inc
echo lang_ru = 1 > lang.inc
echo lang_sp = 1 > lang.inc
Сейчас у меня для каждого языка свой make_[??].bat

А в RUN.asm так:

Code: Select all

IfDef     lang_it
...
ElseIfDef lang_sp
...
ElseIfDef lang_ru
...
ElseIfDef lang_en
...
Else
  .Err Language
EndIf
Можно будет залить на SVN исходный код как только появится возможность собрать программу на сервере.