При клике на ссылку новый текст появляется в новом окне, которое имеет те же размеры и положение, что и предыдущее. Поэтому оно полностью закрывает предыдущее окно. Любое окно можно передвинуть в новое место, изменить его размеры или убрать кликая крестик в правом вехнем углу.
Содержание
Данная программа имеет двойное назначение. Во-первых, она является средой разработки новых программ, написанных на языке ACL (advanced command language). Такие программы любой пользователь может разрабатывать по своим потребностям. Во-вторых, она является интерпретатором большой серии готовых ACL программ, написанных мной. Эти программы при желании можно вызывать из меню главного окна, которое можно перенастраивать самостоятельно. А есть и второй способ: по клику на кнопке [Run] ->
Для удобства введем терминологию. Будем называть главное окно java-программы vkACL.jar "рамой" (frame) а программы, написанные на языке ACL, просто программами. Первые 5 разделов меню рамы являются встроенными, их нельзя изменить. Остальные разделы можно менять и перенастраивать, как это написано ЗДЕСЬ. В версии 2.11.26 новых разделов меню не добавлено.
Первые два раздела меню предназначены для разработки новых программ. Программы пишутся во встроенном текстовом редакторе обычным текстом, включающим в себя как латинские, так и русские буквы. Редактор имеет возможность исправлять неправильную кодировку букв и даже имеет встроенный руссификатор, который позволяет писать по русски на компьютере без переключателя клавиатуры. Для написания или редактирования программы нужно заказать файл. Это делается в первом разделе меню [Prog]. Здесь есть три возможности. Рассмотрим первую. Предположим, что вы уже работали с каким-то файлом накануне и хотите вызвать его снова. Рама запоминает имя последнего файла, с которым вы работали. Если выбрать кнопку [Current], то содержимое этого файла сразу появится в окне редактора. Вторая возможность - вы знаете имя вашего файла и папку, в которой он лежит. Тогда выбирая кнопку [Open] вы получаете возможность ввести полное имя файла отсчитывая от папки рамы. Это общий принцип - файлы за пределами папки рамы в основном не учитываются и не работают, хотя бывают исключения. Преимущество этой кнопки в том, что если файл с заданным вами именем не существует, то будет создан новый файл с данным именем и пустым содержанием. Наконец, кнопка [Choose] позволяет выбрать файл с помощью менеджера файлов, который показывает все файлы с расширением acl. Именно такое расширение закреплено за программами. Вы выбираете файл обычным образом. Однако в новой версии JRE (виртуальной машины Java) менеджер файлов все равно показывает все файлы, показ по расширению надо заказывать в строке [Files of type].
После того, как вы отредактировали файл, есть три возможности. Вы можете выйти из редактора по кнопке [Edit] -> [Exit]. Тогда новое содержание файла автоматически спасается при выходе. Кнопки для спасения файла в меню редактора не существует, она как бы совмещена в кнопкой [Exit]. Если спасать файл не нужно (возможно была ошибка при редактировании и необходимо сохранить старое содержание), то тогда окно редактора нужно закрыть кликом крестика в правом верхнем углу. Наконец, есть третья возможность - вам нужно запустить программу на исполнение. Вы можете не закрывая окно редактора сразу выбрать кнопку меню [Exec] -> [Execute Current]. При этом новое содержание автоматически спасается в файл, и новый файл прочитывается и исполняется интерпретатором. Для быстроты можно пользоваться клавишами-ускорителями [F11] для редактора и [F12] для выполнения программы.
Если программа выполнилась успешно, то вы можете повторить процесс помощью [F11]. При этом курсор будет автоматически установлен на первом появлении трех знаков @@@. Это следует учитывать при записи файлов. Если же в процессе выполнения программы интерпретатор зафиксировал ошибку, то вам будет показано окно с информацией об ошибке. При переходе в редактор с помощью [F11] курсор будет автоматически показывать место ошибки. При использовании процедур это не всегда работает и курсор может показать только процедуру, в которой была сделана ошибка. Вы исправляете ошибку и снова нажимаете [F12]. Таким образом процесс отладки программы достаточно прост. В процессе написания программы можно пользоваться встроенным описанием языка ACL в меню [Help] ->
Таким образом, процедура написания и отладки программ достаточно удобная и быстрая. Кроме того, в процессе написания программы можно открыть и выполнить любую уже написанную программу. Готовые программы описаны ниже. Рассмотрим назначение других кнопок меню [Exec], а именно [Show textarr] и [Stop execution]. Первая показывает содержание текстового массива после выполнения программы. В принципе, это не нужно, но иногда может быть полезным при отладке. Эта кнопка появилась в самом начале развития программы vkACL.jar. Сейчас есть возможность проверки содержания текстового массива в процессе выполнения программы, а также запись данных в файлы. Но иногда можно просто напечатать в текстовый массив, а потом посмотреть результат по этой кнопке. Это может быть удобным для начинающих. Вторая кнопка необходима для того, чтобы вывести программу из бесконечного цикла. Дело в том, что ACL в принципе позволяет организовать бесконечный цикл, который должен прерываться разными способами. Но в результате ошибки можно сделать бесконечный цикл в чистом виде. Тогда программа никогда не закончится. Как раз выбор этой кнопки в процессе выполнения программы будет блокировать все циклы и программу можно вывести из комы. К сожалению бесконечные циклы с диалогами нельзя прекратить и таким способом.
Поэтому полезно запускать программу vkACL.jar через bat-файл. В этом случае сохраняется возможность закрыть окно bat-файла крестиком и спасти компьютер от зависания. Ну и всегда в запасе остается Task Manager, который запускается по кнопкам [Ctrl]+[Alt]+[Del]. Окно bat-файла удобно еще тем, что в нем могут появляться ошибки, которые обнаружила JRE при выполнении программы vkACL.jar. Эти ошибки не всегда приводят к фатальному исходу, часто они могут инициироваться ошибками ACL программы, которые ACL интерпретатор не блокирует. Тогда это уже моя недоработка, но к сожалению число возможных ошибок огромно и мне даже не всегда удается их все себе представить. Сам я ошибки делаю редко, но тоже делаю. Тогда я переписываю интерпретатор так, чтобы их блокировать. Если кто заметит какую ошибку -- сообщайте мне по эл-почте.
Собственно говоря, вот и все относительно разработки программ. Остальные разделы меню касаются запуска готовых программ или изменения внешнего вида. Раздел меню [Run] прямо предназначен для запуска готовых программ. По кнопке [File Viewer] можно запустить менеджер файлов, показывающий всю файловую структуру компьютера. В отличие от интерпретатора он способен работать со всеми файлами на компьютере. Если выбран файл с расширением htm, то запускается встроенный браузер. Если выбраны файлы с медиа расширениями (звук, видео), то запускаются программы, связанные с этими расширениями. Для всех остальных файлов запускается текстовый редактор.
По кнопке [Image Viewer] можно запустить менеджер файлов, показывающий все (и только) файлы с расширениями gif jpg png . Однако JRE-7 сначала показывает все файлы, выбор режима показа только графических файлов надо заказать в строке [Files of type], как я уже писал выше. При выборе файла картинка показывается в натуральную величину. Если размер картинки больше размеров экрана, то картинка помещается в линейки прокрутки. Третья кнопка [Chosen ACLpro] запускает менеджер файлов, показывающий все файлы с расширением acl . Здесь снова надо выбирать селекцию по расширению. При выборе acl файла он запускается на выполнение. Но учитываются только файлы в папке рамы. Кнопка
Наконец, кнопка [User's ACL-pro] запускает на выполнение специальную ACL программу с названием [pro/programs.acl]. Эту программу каждый пользователь может писать под себя. Я, как пользователь, ставлю туда таблицу иконок моих программ по рентгеновской оптике. Образец программы приводится, хотя самих вызываемых программ нет в дистрибутиве для всех. Идея этих кнопок в том, что в специальных программах можно организовать дополнительные меню по вызову практически всех написанных программ. ACL такую возможность предоставляет -- из любой программы можно вызвать на исполнение все другие программы.
Раздел меню [View] достаточно простой. Он позволяет изменить внешний вид рамы и всех стандартных окон. Такую возможность предоставляет Java. Так как программа может работать в разных операционных системах (ОС), то Java разработала три внешних вида программы: собственный (Metal), похожий на OC Sun (Solaris) с названием Motif и похожий на Windows. Я сам работаю с внешним видом Java и все окна оптимизированы на этот внешний вид. Но если кому интересно как все выглядит в других ОС - можете попробовать.
Раздел меню [Help] содержит несколько html руководств в помощь пользователю. По-первой кнопке показывается эта статья. По второй кнопке можно смотреть описание ACL на английском языке. Но для уменьшения размера стандартного дистрибутива статьи с таким описанием надо скачивать и устанавливать отдельно. Кроме того, описание на английском языке соответствует старой версии программы, к сожалению просто нехватает времени. Я сначала все описание писал только на английском. Потом перевел на русский и стал развивать русское описание. Английский язык нужен только иностранцам, но очень сложно рекламировать для них программу -- никто не знает. Третья кнопка вызывает описание языка ACL на русском. Ну и есть еще две стандартные кнопки.
Встроенные acl программы
Итак, встроенные acl программы написаны мной и могут изменяться без изменения версии программы. Ниже я опишу программы, приготовленные на момент разработки данной версии. Кстати номер версии просто отражает дату ее создания. Первая цифра - это год минус 2010, вторая - это номер месяца, а последняя цифра -- день последнего изменения. Программы условно можно разбить на три раздела: Info - для программ, содержащих какую-либо информацию, Util - для программ, выполняющих какую-либо полезную работу, и Demo - для программ, демонстрирующих возможности программирования на ACL. Среди последних могут быть и вполне самодостаточные, моделирующие какие-либо процессы. Важно, что они что-то показывают, но полезную работу не совершают.
Каждая программа имеет собственное описание и файлы помощи. Нет смысла их здесь описывать. Я только замечу, что в некоторых программах подсказки появляются в статусной строке, которая появляется в самой верхней строке экрана. Не забывайте туда посматривать. Здесь я только кратко охарактеризую каждую программу.
Calculator -- это программа калькулятора, но не примитивного, а содержащего 8 строк ввода математических выражений. Результат вычисления каждой строки записывается в соответствующую переменную и эти значения можно использовать в последующих выражениях. Более того, все введенные выражения можно сохранить в одной из 53 ячеек памяти. Необходимость что-то быстро вычислить возникает часто и полезно иметь такой калькулятор под рукой. В нем даже можно писать небольшие программы вычислений. Ответ в каждой строке появляется при клике на кнопке [=].
Card-Data -- это программа записной книжки в виде картотеки. Все записи имеют имена и сначала выставляется таблица имен записей-карточек, из которой можно выбрать нужную карточку и либо прочитать ее, либо отредактировать. Программа может работать с разными картотеками, которые удобно разделять по темам. Например, одна из тем - Контакты - позволяет записывать данные (телефоны, адреса и другую информацию) по всем знакомым или полезным людям. Я сделал такую программу сначала для карманного компьютера (КПК) и часто ей пользовался. Она позволяет быстро находить нужную информацию просто тыкая стилусом в кнопки. Это важно для КПК так как там плохая клавиатура. На настольном компьютере эта программа тоже полезна, хотя уже не так сильно. Возможно ее роль возрастет в Windows-8 с сенсорным экраном.
Postscript Figure -- эта программа позволяет создавать постскрипт файлы графиков с научной информацией. Она особенно полезна при подготовке статей к публикации моими коллегами -- учеными. Но на самом деле ее возможности шире. Фактически -- это графический редактор, позволяющий манипулировать с картинками и графиками. Важно, что при этом результат спасается как постскрипт (eps) файл. Она имеет собственное описание.
Image Processor -- эта программа позволяет манипулировать с растровыми картинками в форматах jpg и png. Помимо стандартных возможностей типа вырезания фрагмента, изменения размера и других, у нее есть и нестандартные типа показа анимации по картинкам с музыкой и закадровым голосом, а также сложение, умножение и даже деление картинок. Она имеет собственное описание.
File Processor -- здесь собраны утилиты по работе с файлами. Пока их немного, но я буду добавлять по мере того, как мне что-то покажется интересным. Есть собственное описание.
Data Processor -- здесь собраны утилиты по работе с данными в файлах. Пока их немного, но я буду добавлять по мере того, как мне что-то покажется интересным. Есть собственное описание.
PDF Creation -- эта программа работает только с большой версией, включающей библиотеку iText для работы с pdf файлами. В основной версии рамы ее лучще не запускать, хотя формально она может что-то показывать, но кроме сообщения об ошибке вы ничего не получите.
Demo программы -- все иконки с названием Demo запускают готовые программы, которые что-то показывают, как правило анимации, и больше ни на что не способны. Однако некоторые их них очень забавно посмотреть, они моделируют разные процессы механики и не только. Программы этого раздела достаточно сложны для начинающего изучать программирование на ACL. Но они показывают к чему надо стремиться.
Slide Maker -- эта программа позволяет создавать слайды для презентаций в виде картинки методом комбинирования многих картинок в одном слайде. Используются растровые картинками в форматах jpg и png. Есть собственное описание. Идея программы мне настолько понравилась, что я написал отдельную программу для этих целей с таким же названием, у которой еще больше возможностей.
Super Commands -- это информационная программа с описаниями суперкоманд, то есть подпрограмм на языке ACL, которые я написал, и которые можно использовать в ваших программах на ACL. Проект выполнен лишь частично, я буду продолжать по мере возможности
Unicodes - это программа показывающая символы, соответствующие разным юникодам с помощью разных фонтов. Фонт можно выбрать из списка, либо добавить любой другой. С помощью этой программы можно быстро узнать юникод любого символа и потом использовать его в своих программах.
Ptoe - это усеченный вариант программы Таблицы Менделеева. То есть она содержит статьи по каждому элементу, но не содержит глав из книги. Полная книга имеет довольно большой размер и распространяется в виде отдельной программы. Однако, главы из книги все же можно прочесть, если компьютер подключен к интернету. Для этого надо поставить курсор перед первой ссылкой и нажать [Alt]+[T].
Остальные программы достаточно простые и самоочевидные. Я не буду их тут описывать