www.000webhost.com

RUSSIAN
(Русский)
ENGLISH


Эта функция использует куки.
Если браузер не принимает куки,
используется светлая тема.

 

AL-IV:   История версий

4.06.2020 - новая версия 1.1.0

  • Изменения:
     
    • Отменено ограничение на количество параметров функции (не требуется добавлять модификатор BAD при использовании не-нативных функций с более чем 3 параметрами);
    • Добавлено требование при вызове не-нативной функции с большим количеством параметров как минимум с четвертого параметра использовать форму Имя = значение для передачи параметров (допускается передавать параметры в этой форме с любого параметра раньше четвертого);
    • Добавлена возможность создавать "перегруженные" функции с несколькими наборами типов параметров, например, FUN Find_index_max({INT,REAL,STR} A|rray_to_search_max, INT Start|_from, INT Last|_index_where) ==> INT или FUN Max({INT,REAL,STR} A|_parameter1, {INT,REAL,STR} B|_parameter1) ==> {INT,REAL,STR};
      для обеспечения возможности иметь несколько отличный код добавлена особая форма оператора ветвления, например CASE ? {{1}}: ... {{2,3}}: ... ;
  • Исправления:

     

    • C#: работа с {Bitmap}, загруженным из индексированного формата пикселей (gif) - GraphicsFromImage не работал, решено пересозданием объекта изображения такого же размера с переносом на него загруженной картинки;
 

31.05.2020 - версия 1.0.11

  • Изменения:
     
  • Исправления:

     

    • C#/Интерпретатор: при создании нового объекта не учитывалась возможность присваивания значений промежуточным переменным, в результате такое значение ошибочно присваивалось первому полю объекта/структуры;
    • C#/Интерпретатор: параметры, указанные в опции /param[...] не передавались запускаемой программе - вместо этого она получала параметры, переданные самому интерпретатору;
    • Компилятор: если тип (перечисление или структура) для переменной указывался в виде точной спецификации {Class}.{type}, то не анализировалось компилятором наличие такого типа в этом классе, как и наличие самого класса, в результате в отсутствие импортированного класса {Class} или типа {type} в нем использовался встроенный тип BOOL;
    • {Bitmap}.Bitmap_from_clipboard: Width и Height полученного из буфера обмена объекта изображения не устанавливались, считывалось значение 1 (хотя рисунок можно было нарисовать на канве, сохранить и т.п.);
    • IDE AL4/Class wizard (некоторое количество мусора в генерируемом классе, в секции IMPORT);
    • IDE AL4/Form Designed (генерация события menu_item - избыточные параметры, оставшиеся от "события" menu);
    • Компиляция самокомпилирующего компилятора восстановлена: после ряда последних реструктуризаций кода цепочка [компиляция ALIV.csproj в MSVStudio] ==> [_1_compile_cs_(by_Primary).cmd] ==> [_1a_compile_CSharp_build_(by_Compiled).cmd] снова переставала работать (хотя это и не мешало использовать уже собранный компилятор из zip с дистрибутивом).
 

24.05.2020 - версия 1.0.10

 

21.05.2020 - версия 1.0.9

 

20.05.2020 - версия 1.0.8

  • Изменения:
     
    • Delphi/VCL: Вычищен код {AL4_form} от {$ifdef/ifndef FMX, ANDROID, MOBILE_...};
    • Delphi: Небольшие оптимизации сгенерированного кода (некоторое уменьшение размера приложения);
    • {String_functions|_common} - объединен из нескольких вариантов, предназначенных для различных платформ, специфичный для этих платформ код сохранен в соотвествующих классах {NATIVE_String_functions};
    • Абстрактные классы, не имеющие предков или потомков, более не требуют инициализации NONE-объектов (это обычно наборы функций, для которых не требуется экземпляр класса);
  • Исправления:

     

    • C#, Delphi: {Fake_parameters}: проблемы компиляции проектов, использующих привязку по типам данных и операции перетаскивания файлов их проводника;
    • {Checkbox}: проблема с компиляцией при использовании радио-групп (метод radio_select был перемещен из {Form}, но не проверена его компилируемость;
    • IDE: при изменении файла на диске другой программой IDE сохранял свою версию, игнорируя эти изменения (при этом показывая диалог загрузки - но в итоге его же собственный вариант и загружался);
 

16.05.2020 - версия 1.0.7

  • Изменения:
     
    • Все функции и типы данных, относящиеся к работе с консолью, перенесены в отдельный класс {Console} (из {System_functions});
    • Добавлены функции {Console}.Console_ANSI_colors(BOOL), Support_console_ANSI_colors ==> BOOL, Fg|Foreground_color_console|Escape_sequence({colors}), Bg|Background_color...({colors}), Con|sole_special_color_control({special_con}). Последние три предназначены для использования в правой части оператора <<, например:
      << 'SAVE'.Con 'RED'.Fg 'YELLOW'.Bg "ОШИБКА!" 'PREV'.Con #NL
      (Пока нет поддержки в Android);
    • Все функции и типы данных, относящиеся к работе с "железом" (процессор, память, диски, электропитание) перенесены из {System_functions} в класс {Hardware};
    • Delphi/FPC: переработан генератор кода, в результате выходной исполнимый файл уменьшен на несколько Кбайт;
  • Исправления:

     

    • Delphi/KOL: принудительное подключение модуля {System_functions} устранено, размер приложений - от 9 Кбайт;
    • Free Pascal: Replace - для случая особых значений наподобие 0xA0;
    • Free Pascal: {Button} создается в режиме AutoSize = true, если родительская колонка выровнена 'TOP' / 'BOTTOM' (решает проблему кнопок с длинной надписью);
    • Компиляция проекта с опцией /$ALLTESTS не выполнялась при отсутствии хотя бы одного теста;
 

7.05.2020 - версия 1.0.6

  • Изменения:
     
    • Компилятор: добавлен параметр /[section], позволяет отфильтровать из файла конфигурации, заданного параметром /@ path только указанную секцию (если не указан, используется первая секция без имени и указания секции); Данная опция позволяет сократить число файлов конфигурации для запуска компилятора;
    • В именах элементов перечислений разрешено использовать символ "-":
      'some-item-with-minus-in-name';
    • Разрешено использовать пустые скобки при вызове функции / метода без параметров:
      foo()
    • Компилятор: классу-другу разрешено записывать / добавлять значения в поля объекта, предназначенные "только для чтения";
    • Компилятор: запрещено передавать структуры в "нативные" функции в качестве параметров (и возвращать в качестве результатов);
    • Компилятор: модификатор NEW для функций, возвращающих не объект класса, считается ошибкой;
    • Delphi/VCL, Free Pascal/LCL (Windows): центрирование файловых диалогов, окна сообщения {Form}.message;
  • Исправления:

     

    • Интерпретатор: исправлена запускаемость некоторых проектов (проблема была с некоторыми нативными функциями, при вызове которых передавались структуры);
 

22.04.2020 - версия 1.0.5

  • Изменения:
     
    • {Scene|2D} - фактически завершен (пример Test_paintbox переведен на использование {Scene}) ;
  • Исправления:

     

    • Delphi/Free Pascal: генерация кода, связанного с созданием структур (STRUCTURE) - не инициализировались поля-ссылки на объекты, неверное работало клонирование массивов простых структур;
    • Java/Android: исправлена инициализация структурных полей в объектах и структурах;
 

21.04.2020 - версия 1.0.4

  • Изменения:
     
    • {Bitmap}: добавлена функция Bitmap_from_clipboard ==> {Bitmap};
    • Добавлен контрол {Scene|2D} для рисования "оффлайн" (принцип создания объектов - графических примитивов, которые далее отображаются без вызова события paint); в том числе реализуется принцип оффлайн-анимации (задается участок времени, на котором примитив существует, его начальные и конечные координаты, размеры, угол поворота - анимация выполняется так же без учета вашего кода; - работа со {Scene} пока в стадии бета-тестирования;
  • Исправления:

     

    • Delphi/KOL: добавлены проверки на валидность Canvas / Bitmap в {AL4_drawing};
    • Java/Android: исправлена компиляция проектов (были добавлены новые функции, потребовались изменения в {AL4_form}, {AL4_drawing});
 

15.04.2020 - версия 1.0.3

  • Изменения:
     
    • Добавлен класс {Zlib} для компрессии/декомпрессии файлов (только C#, используется DeflateStream, доступный с FrameWork 4.5);
    • C#: Добавлено распознавание значение $FRAMEWORK=4.5 / 4.5.1 / 4.6.1;
  • Исправления:

     

    • Delphi/KOL: предотвращено многократное срабатывание события {Form}.mouse_wheel;
    • CONST REAL: в случае целочисленного по форме значения, использовалась константа 0.0;
    • Delphi/VCL, Delphi/FPC: проблемы минимизацией форм в панель задач (вместо превращения в иконки на рабочем столе в стиле Windows 3.x);
    • Free Pascal: {Bitmap}.Load_png (хотя без прозрачности);
 

4.04.2020 - версия 1.0.2

  • Добавлено:
     
    • В качестве демонстрационно-практического (и полезного в эти дни) начат открытый проект Draft Notes для помощи студентам, слушающим лекции/курсы/семинары онлайн. Приложение позволяет захватывать указанную часть экрана, сохранять ее в виде изображений по простому клику/тапу и быстро добавлять к ним примечания в виде скетч-рисунков, линий, текстовых надписей. Предназначено как для работы на большом мониторе или в мульти-мониторной среде, так и на единственном мониторе, с использованием клавиатуры, тач-скрина, графического планшета, мыши и т.п. Итоговое приложение вполне функционально, содержит чуть более 1200 строк кода на AL-IV и может компилироваться всеми поддерживаемыми целевыми компиляторами (в том числе FPC для Linux и Java для Android - хотя в последнем случае необходимо еще решить ряд проблем и переориентироваться на прямую работу с внешней камерой или подключаемым источником видео).
          В случае C# работает чуть медленнее. В случае Delphi работает быстрее и поддерживает все Windows платформы. В различных вариантах (в зависимости от целевого языка/конечной платформы) поддерживает разные наборы форматов изображений (не во всех вариантах графической библиотеки есть поддержка gif, png, и в случае не-Windows может не быть поддержки bmp).
          В настоящее время проект выложен как самостоятельный по ссылке: https://sourceforge.net/projects/draft-notes
    • Добавлена возможность под Linux компилировать с помощью fpc, полученного в результате установки CodeTyphon IDE. Для этого:
       
      • в настройках опций компиляции компилятора для linux AL4FPCCompiler на стороне Windows следует указать параметр
        /$LINUX_LAZARUS_HOME=/usr/local/codetyphon/typhon/
      • как обычно на стороне Linux, создать переменную окружения $LAZARUS_HOME с таким же путем в качестве значения
      • и дополнительно дописать в переменной $PATH путь к fpc из поставки CodeTyphon (пути не обязательно именно такие):
        PATH=$PATH:/usr/local/codetyphon/fpc/fpc64/bin/x86_64-linux/
        export PATH
  • Изменения:
     
    • Небольшие добавления:
       
      • {Form}.Set_mouse_cur|sor_position;
  • Исправления:

     

    • Delphi: Незначительные исправления в библиотеках (функция {Form}.Client_size);
    • Delphi/VCL: сворачивание форм только в панель задач;
 

29.03.2020 - версия 1.0.1

  • Изменения:
     
    • Отменено правило игнорирования "пустого" оператора ввода >> в режиме тестирования.
    • Генерация приложений для Linux с использованием g++:
       
      • компилятор AL4->gcc собирается на Windows и Linux с использованием компилятора AL4->gcc собранного компилятором, изготовленным с помощью компилятора AL4->C#;
      • позволяет создавать консольные приложения размером от 34 Кбайт;
 

20.03.2020 - версия 1.0.0

  • Изменения:
     
    • Добавлен запрет на использование на одном уровне выражения обращений к функциям, потенциально имеющим побочные эффекты (а так же к рекурсивным функциям), и полям объектов (т.е. запрещено на одном уровне выражения обращаться к более чем одной такой функции или к такой функции и к полю). В том числе, аналогичное правило распространяется на операцию добавления элемента в массив-поле, если добавляемое значение вычисляется с использованием функций. Данное злое правило гарантирует корректную работу кода, независимо от предпочтений целевого языка в отношении порядка вычисления операндов в выражениях.
  • Исправления:
     
    • Компиляция Delphi/Free Pascal с оптимизацией (могли не обнаруживаться обращения к динамическим массивам);
       
 

18.03.2020 - версия 0.99.9

  • Изменения:
     
    • Частично восстановлено направление компиляции кода в C++ (используется только gcc - под Windows для компиляции консольных, в linux - консольных и GUI(X11) приложений). Минимальный размер приложения Hello_world около 86Кб (MinGW/Windows). На данный момент работают только консольные приложения для Windows;
    • IDE/Designer: добавлена возможность при перетаскивании контролов вставлять их первыми в целевую колонку (перед первым компонентом в колонке);
    • Добавлена утилита Tools\File2Hex для перевода бинарного файла в строки в 16-ричном виде (для вставки в код после END и использования во время выполнения для восстановления бинарного файла из hex-строк, например, для извлечения графических ресурсов, используемых в программе);
  • Исправления:
     
    • IDE/Designer: улучшено отображение в режимах "показывать имена контролов", "показывать текстовые метки";
    • IDE: исправлен/дополнен перевод на русский язык;
 

3.03.2020 - новая версия 0.99.8

  • Изменения:
     
    • {Form}.new_column: добавлена возможность создавать колонку, вложенной в другую ранее созданную колонку (в позиции обычного визуального компонента); Поддержка этой возможности может зависеть от платформы, и при отсутствии этой возможности колонка создается обычным способом, в зависимости от порядка создания м указанного выравнивания. В настоящее время поддержка добавлена для C# и Delphi/VCL, Free Pascal и частично в Android, тогда как Delphi/KOL пока не поддерживаются;
    • IDE/Designer: добавлена возможность управлять параметрами Nested и After_control, позволяющими создать заданную вложенную колонку после определенного компонента на форме;
  • Исправления:
     
    • IDE: исправлена перезагрузка файла  после изменения его на диске другой программой или другим экземпляром IDE;
    • IDE/Designer: восстановлен пропавший элемент для визуального выбора выравнивания колонки;
 

1.03.2020 - версия 0.99.7

  • Изменения:
     
    • IDEAL4: полностью отделен от кода компилятора (меньше размер, быстрее компилируется); в связи с этим произошла существенная реорганизация исходных кодов всего проекта AL-IV (не забудьте полностью удалить прежние исходные коды перед распаковкой дистрибутива);
  • Исправления:
     
    • Free Pascal/Linux: исправлена медленная работа компилятора при работе в сетевой (открытой на доступ на другой машине) директории;
    • {Form}, {Dialog}: при отображении модального диалога в обработчике menu_item, все события в родительской форме получали неверную ссылку на sender [IDE: устранена непрорисовка окна редактора, пока вызван диалог About или выбора шрифта];
    • Интерпретатор: восстановлена компилируемость / работоспособность интерпретатора, в том числе на визуальных проектах (Lines, OpenGL demo);
    • IDE/Desiner: формировались некорректные строки в коде CONSTRUCT при редактировании многострочных значений для комбобоксов;
 

27.02.2020 - версия 0.99.6

  • Изменения:
     
    • IDE/Designer: добавлена возможность множественного выделения компонентов (SHIFT + клик, SHIFT + перетаскивание), а так же возможность перетаскивания компонентов на новое место мышью (ЛКМ);
  • Исправления:
     
    • IDE/C#: еще меньше мельтешений при работе в Дизайнере форм;
    • Free Pascal/Linux: восстановлена (снова) возможность компилировать компилятор для Linux, и возможность использовать его в Linux для существующих демо-проектов;
 

25.02.2020 - версия 0.99.5

  • Изменения:
     
    • IDE/Designer: добавлена возможность автоматического создания расширения класса формы/диалога для упрощения операций первоначальной настройки компонентов формы и извлечения данных из компонентов в структуру, а так же для сохранения данных формы в конфигурации или восстановления их из конфигурации. После первого создания расширения класса (меню Дизайнера Файл/Создать {Ex_ класс)дальнейшее обновление класса выполняется автоматически (например, при изменениях свойств компонентов в дизайнере);
    • {Dialog}.Show_modal -- работает теперь в классическом понимании модальности, возвращая строку результата непосредственно в точке вызова диалога - для всех поддерживаемых платформ (C#, Delphi/FPC, Android). Соответственно, событие {Form}.answer более не требуется. В случае необходимости соблюсти совместимость минимальными усилиями достаточно вызвать (прежний) метод answer (заменив OVERRIDE на METHOD) вслед за вызовом Show_modal;
    • {Dialog_file}/Android: обеспечен минимальный диалог для выбора файла для открытия или записи (в разрешенной для приложения области во внутренней памяти или на SD-карте);
    • Синтаксис: части строчной константы, ограниченные двойными апострофами ''...'', могут теперь размещаться в любом месте длинной строки, взамен любой подстроки в обычных двойных кавычках "..." (с той разницей, что могут содержать двойные кавычки в качестве символов);
  • Исправления:
     
    • {Long_operation} восстановлен для C# и Delphi/Free Pascal;
    • IDE/C#: меньше мельтешений при работе в Дизайнере форм;
    • C#/Компилятор: устранена проблема при сканировании длинных продолжающихся строк, содержащих строки, заключенные в двойные апострофы ''...'';
 

21.02.2020 - версия 0.99.4

  • Изменения:
     
    • Delphi/ Free Pascal: структуры, имеющие только простые поля, реализуются с помощью record (выше быстродействие, меньше расход памяти);
  • Исправления:
     
    • Оптимизатор: исправления оптимизации операций ин-лайнинга;
 

19.02.2020 - версия 0.99.3

  • Изменения:
     
    • Компилятор (ускорение): тестирование выполняется только для изменившихся (после последнего удачного тестирования) классов и классов, импортирующих изменившиеся классы; Если тестирование не требуется ни для одного класса, стадия тестирование пропускается;
    • Компилятор (замедление): добавлена опция /$ALLTESTS, при включении которой компилируются и выполняются все тесты;
    • Сценарии удалены из языка (SCENARIO, GOTO, CALL, WAIT);
    • Отдельный оператор FRIENDS заменен на модификатор FRIENDS в операторах IMPORT;
  • Исправления:
     
    • Delphi: генератор кода мог разбивать слишком длинные строки на части игнорируя наличие комментариев // в конце строки;
    • Delphi: имя класса теперь добавляется к имени структуры для обеспечения уникальности декларации ее в конечном приложении;
    • Delphi: устранены утечки памяти при работе со структурами;
    • Delphi/KOL: генерация кода в некоторых случаях (несогласованные try при включенной опции $NOTRY);
    • Free Pascal: при включенной оптимизации могли генерироваться слишком длинные имена для промежуточных переменных, компилятор FPC не мог работать;
 

15.02.2020 - версия 0.99.2

  • Изменения:
     
    • Завершен переход на использование STRUCTURE взамен прежних RECORD / OBJECT. Декларации RECORD / OBJECT более не поддерживаются;
    • Декларации MAXLEN|GTH так же более не поддерживаются для полей структур/классов;
    • IDE: добавлен переход по CTRL+ENTER на операторах LIKE/REVERT на исходный блок, на который ссылается этот LIKE/REVERT;
    • IDE: добавлено отображение имени текущей функции, заголовок которого находится вне поля зрения - вместо верхней строки текста, если курсор не находится в верхней строке;
  • Исправления:
     
    • IDE: Undo операция могла откатывать "все сразу";
    • IDE: переходы на декларации типов данных, элементов перечислений по CTRL+Enter;
 

12.02.2020 - версия 0.99.1

  • Изменения:
     
    • Продолжается работа по адаптации проектов (демо-проектов, тестовых, инструментария) к новым декларациям STRUCTURE (которые скоро заменят RECORD и OBJECT); На данный момент практически во всех проектах и RECORD, и OBJECT заменены на STRUCTURE.
    • Для выражений, содержащих создание новых объектов, обеспечивается временная переменная, кроме случаев CASE с множеством ветвлений - в этом случае запрещено создавать новые объекты и структуры как часть выражений в условиях  ветвей;
  • Исправления:
     
    • Оптимизации:
       
      • при выключенных оптимизациях могли включаться все оптимизации;
      • отключена inline-оптимизация для операции << (добавление в массив);
      • отключена оптимизация inline для присваиваний, в которых переменная в левой части встречается в выражении в правой части;
      • Delphi: отменено удаление классов, содержащих структуры;
      • Java: переименование переменных при слиянии (оптимизация V5) создавало недостаточно уникальные имена;
 

08.02.2020 - версия 0.99.0

  • Изменения:
     
    • Декларация STRUCTURE добавлена в язык для определения структур с единственным владельцем (подобны OBJECT, но гарантируют существование единственной ссылки на эту структуру, что позволяет пользоваться ей подобно RECORD - в ближайшем будущем заменит собой и RECORD, и OBJECT, после чего они будут удалены);
      В качестве пробника для перехода используется проект Demo_projects\100 и используемые в нем классы/структуры;
  • Исправления:
     
    • IDE (Designer):
       
      • проблемы генерацией Alias с разрывом текста в кавычках;
      • установка флажка "Настраиваемый размер" при выборе элемента на форме;
 

04.02.2020 - версия 0.98.9

  • Исправления:
     
    • C#/Интерпретатор: компиляция интерпретатора восстановлена (опечатка в файле DB.al4, отсутствие добавления нового объекта в массив, некорректная работа с записями RECORD, приводившая к модификации "исходного" экземпляра записи, некоторые другие исправления);
 

03.02.2020 - версия 0.98.8

  • Исправления:
     
    • Android: {Dialog} -- работа модальных диалогов восстановлена; Так же: обеспечивается корректный выход из модального диалога по (аппаратной) кнопке НАЗАД (с отрицательным ответом по умолчанию);
       
  • Изменения:
     
    • {Edit}, {Memo}, {Paint_lines}: добавлены опции при создании, контролирующие разрешение использовать дополнительный функционал ввода в Android (подсказки слов, ввод только чисел, телефонных номеров, разрешение на ввод символа возврата каретки в {Memo});
    • IDE: в дизайнере формы добавились соответствующие настройки для классов {Edit}, {Memo}, {Paint_lines};
 

02.02.2020 - версия 0.98.7

  • Исправления:
     
    • Android: {Form}.popup_menu не работал в случае последней активной (или созданной) колонки выровненной 'TOP'/'BOTTOM';
    • Android/Java: отображение вещественных чисел функциями Str / S_float обрезалось до 5 десятичных знаков в любом случае;
    • Android/Java: реализована установка размеров для функциональных (на основе TextView) визуальных компонентов функциями Set_width, Set_height, Set_size;
    • Android/Java: реализована прокрутка для {Listbox};
    • Android/Java: реализовано событие selection_change для {Listbox} по клику на элементе;
    • Android/Java: в {Memo} обеспечивается ввод символа возврата каретки;
    • Android/Java: {Form}.popup_menu - визуальная галочка обеспечена для "отмеченных" пунктов меню (с подстрокой ",checked" перед ":" в спецификации пункта);
    • Android/Java: улучшена работа "консольных" приложений (см. Demo_projects\15);
       
  • Изменения:
     
    • Android/Java: добавлена опция /$NOTHREADS : с ней все события выполняются в основном потоке. Предназначена для использования в приложениях, либо не содержащих тяжелых вычислений, либо обеспечивающих вычисления в потоке самостоятельно;
    • Android/Java: реализованы функции Get_char, Char_ready;

 

 

30.01.2020 - версия 0.98.6

  • Исправления:
     
    • Java/Android:
       
      • добавлена обработка события onPause() - так же вызывает событие формы "closed", позволяя сохранить состояние;
      • в AL4_form.java не хватало функции Is_keyboard_key_pressed - добавлена заглушка;
      • Console_app.al4 копировался не в кодировке UTF-8, что при не-латинских именах классов приводило к ошибке при попытке компилировать проект. (Тест _Russian_code теперь работает);
      • _Test_clipboard не работал из-за неуспешного доступа к буферу обмена из фонового потока исполнения, исправлено;
      • в реализации внутреннего класса FixAByte не хватало метода copy() - ComplexTest не компилировался;
      • оптимизатор успешно удалял pop-методы (для методов, используемых в операторах PUSH), в результате при включенной оптимизации код мог не компилироваться;
      • оптимизатор успешно удалял локальные переменные их инлайн-вставки кода вызванной функции, не учитывая, что они используются. В результате код не компилировался;
      • неверно формировались ссылки на тип данных и переменную NoneObj вида OBJECT в некоторых операциях, код не компилировался при наличии таких переменных в коде;
      • добавлен вызов обработчика mouse_double_click для двойного тапа (с разницей < 400 мс);
      • добавлена очистка списка форм в событии onStart() - удаляет из системного меню список форм, оставшийся от предыдущего запуска приложения, предотвращает ситуацию с "В приложении произошла ошибка";
      • добавлена реализация вызова ряда системных функций, ранее не реализованных (пока без глубокого тестирования);
      • Там же: исправлен вызов системного метода Insert для массивов записей RECORD;
      • Там же: исправлен вызов EnumAsInt (применение метода Int к enum-значению);
      • реализованы сценарии (демо игра Tic-Tac-Toe компилируется и работает);
      • событие value_change (и соответственно Any_change) не вызывалось при отсутствии обработчика такого события в форме;
      • {Form}.key_press - результат, возвращаемый обработчиком, анализировался неверно (с точностью до наоборот пропуская или не пропуская отфильтрованный ввод);
      • {Form} - высота колонки выровненной влево, вправо или по центру, не может быть меньше нижней границы самого низкого вложенного контрола (в крайнем случае форма скроллируется вниз);
    • Оптимизация: инлайн-вставка для параметров-массивов;
    • Компилятор: при создании объекта класса в части OWNED BY было невозможно использовать объект вида OBJECT в качестве владельца;
    • Компилятор: не было проверки на наличие завершающей точки в случае короткой функции в формате присваивания
      FUN square|_of_X(REAL X|_argument) ==> REAL : = X * X .
    • C#,Java: генерация кода для операторов CASE, входящего в конструкцию LIKE;
    • C#: {File_path}.Catalog_detailed - неверно сканировались подкаталоги (имя каталога не заполнялось);
  • Изменения:
     
    • Java/Android, режим /$CONSOLE: клавиатура всплывает теперь только по клику, по прокрутке скрытая клавиатура не отображается;
    • Там же: удален отладочный вывод из стаб-приложения;
    • Java/Android, {Paintbox} - удалена красная рамка при отображении состояния прокрутки (паннинга);
    • Java/Android: добавлена возможность задавать png-иконку для приложения (опция /$ICON=файл.png);
    • Java/Android: большая переделка кода для поддержки визуальной части - все обработчики событий работают в отдельном потоке, позволяя нормально взаимодействовать с интерфейсом при выполнении интенсивных вычислений в коде;
    • Java/Android: реализована опция /$ORIENTATION= для значений в манифесте android.orientation (portrait/landscape);
    • C#: {Bitmap}.Capture_screen : теперь позволяет захватывать полупрозрачные окна (эта опция в Windows недоступна для Delphi/Free Pascal);

 

 

18.01.2020 - версия 0.98.5

  • Изменения:
     
    • Продолжается работа над визуальной библиотекой для Android и компилятором AL-IV -> Java/Android. В настоящий момент на устройствах с Android полностью работают базовые функции {OpenGL}. Тестовое приложение GL_program_demo.apk - 227 Kб.
    • IDE: всплывающее меню на вкладках (по правому клику) содержит группировки по словам из имен классов, позволяя быстрее переключаться на нужную вкладку, когда загружено много файлов;
  • Так же:
     
    • инструкция по использованию компиляторов AL4\about compilers - read me!.txt была исправлена и дополнена, а так же удален текст по неподдерживаемым более направлениям (C++, Java/awt, DelphiRadStudio, Python).
 

15.01.2020 - версия 0.98.4

  • Изменения:
     
    • Продолжается работа над визуальной библиотекой для Android и компилятором AL-IV -> Java/Android. В настоящий момент на устройствах с Android частично работают функции {OpenGL}.
    • {Form}: внутренние изменения для передачи sender, sender_alias в события: для события paint, когда источником является объект {OpenGL}, sender==NONE, sender_alias=="Alias" объекта-источника (по техническим причинам, а именно ввиду асинхронной природы opengl на платформе Android;
    • Синтаксис языка: больше не выдается предупреждение об имени параметра, начинающемся со строчной буквы, для параметров личных функций класса.
  • Исправления:
     
    • Delphi: операция приведения типа object.{Class} не работала правильно в случае цепочки наследования;
    • FPC: {Bitmap}.Capture_screen в Windows теперь может делать снимок всего экрана в случае конфигурации системы с несколькими мониторами;
  • Так же:
     
    • выполнено массовое тестирование (особенно визуальных) проектов (с фиксацией проблем) для всех поддерживаемых платформ (C#, Delphi/KOL, FPC, частично Java/Android), в связи с глубокими низкоуровневыми изменениями в {Form}, {AL4_form}, {AL4_drawing} и др.
 

7.01.2020 - версия 0.98.3

  • Изменения:
     
    • Продолжается работа над визуальной библиотекой для Android и компилятором AL-IV -> Java/Android. В настоящий момент могут уже вполне полноценно работать визуальные приложения, с сохранением/восстановлением состояния (используется событие closed для сохранения состояния, в after_construct оно может быть восстановлено). Главное меню по '≡' переопределено через PopupMenu (т.к. в некоторых случаях стандартное системное меню не отображается).
    • Небольшие изменения в работе {Long_operation}:
       
      • Ее методу Indicate добавлен параметр флажка (при значении TRUE выполняется процессинг всех оконных сообщений);
      • Форма {Long_operation} создается скрытой и показывается только при задержке между обращениями к Indicate более 2 секунд;
  • Исправления:
     
    • Delphi: не инициализировались временные локальные переменные типа OBJECT;
    • Больше проверок на обращение к несуществующим контролам (уже или еще);
 

4.01.2020 - версия 0.98.2

  • Исправления:
     
    • проблемы приведения типа OBJECT к {Object}, сравнения OBJECT с NONE;
    • проблемы оптимизации:
       
      • оптимизация слиянием локальных переменных - не учитывались присваивания внутри выражений;
      • могло происходить нежелательное удаление CALLBACK-функций и их наследников;
    • C#/{File_path}: небольшие исправления в Create_dir (проверка на пустое имя);
    • C#, Delphi: File_detail (корректировка времени на новый формат - время теперь во всех платформах хранится в миллисекундах от начала эпохи);
    • IDE AL4:
       
      • Мастер создания классов: ошибочная проверка имени базового класса;
      • Дизайнер форм: неверный анализ выравнивания 'CENTER' для оператора новой колонки (в результате оператор new_column пропадал и все контролы центральной колонки переходили к предыдущей колонке);
      • Исправлена работа операции Ctrl+' (заключение блока текста в кавычки / обратная операция по снятию кавычек): учтены изменения в синтаксисе строка может быть заключена в двойные апострофы (чтобы внутри можно было использовать двойную кавычку), улучшено форматирование;
         
 

2.01.2020 - версия 0.98.1

  • Изменения:
     
    • Продолжается работа над визуальной библиотекой для Android и компилятором AL-IV -> Java/Android.
       
      • Обеспечивается компиляция и выполнение консольных приложений. Фактически стаб-приложение Console_app встраивается в качестве главного класса, создает текстовое окно на базе {Paint_lines}, перенаправляет консольный вывод и ввод на собственные функции, и запускает собственно приложение в отдельном потоке. Обеспечивается вывод цветного текста в консоль, автоматический поворот экрана меняет размеры консоли, есть автоматическая прокрутка к последней строке при выводе текста. Консольные приложения могут использоваться для прогонки тестов (параметр /$TEST компилятора);
  • Исправления:
     
    • Компиляция и запуск компилятора и приложений для Lazarus/Free Pascal обеспечена для Windows 32/64 и для Linux 32/64-битных версий.
       

Предыдущая история версий (2019)


См. здесь

 

Предыдущая история версий (2018)


См. здесь

 

Предыдущая история версий (2016-2017)


См. здесь

 

 


В начало