Quartex Pascal v0.14i released

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
Quartex Pascal v0.14i - release notes

Like most releases the features tend to emerge in avalanches, where one of more core features enables several minor issues and features to also be finished. This is indeed one such build, which should make some of our active backers happy since these features have been a long time coming.
1628948883807.png
The latest changes to the IDE and underlying work is pretty neat, all that work is finally coming to the surface

Change log​

  • The forms in the application are now collected and presented in the build-options, where you can check which form you want to auto-create on application startup. NOTE: The application injection point is not active yet, so the IDE does not generate the startup code in this build. That should be in the next!
    • The list of forms and their checked state is now persisted to the project build file
  • When switching to a form tab the IDE checks if the form-designer has an active selection. If a selection is active, the property inspector is automatically populated.
  • Default coding font has been changed to Consolas (fallback to “Courier New” if missing).
  • The code-editor minimap can now be hidden / shown via the View menu
    • The visibility of the minimap is stored in the IDE preferences file, and applied when the IDE starts.
    • When resizing the minimap the IDE synchronizes all other open tabs uniformly
    • The IDE stores the size of the minimap to the IDE preferences file (applied when the IDE starts)
  • The widget palette has been moved adjacent with form designer
    • The widget palette can be hidden / shown via the View menu
    • Visibility and size of the widget palette is stored to the IDE preferences file (applied when the IDE starts)
  • The symbol info panel now shows full inheritance info for Field types
    • The symbol info panel shows full inheritance info for Property types
    • The symbol info panel can now be hidden / shown via the View menu
    • The visibility and size of the panel is stored to the IDE preferences file (applied when the IDE starts)
  • The unit structure panel can now be hidden / shown via the View menu
    • Visibility and size of the unit structure panel is stored to preferences (applied when the IDE starts)
  • DOM keyboard delegates have been added to the RTL (qtx.dom.events.keyboard.pas)
  • TDOMApplication now expose common delegate helper functions (mouse, pointer, keyboard)
  • Work has begun on the delegates inspector. It uses the same codebase as the property inspector
  • The RTL have two new attributes used with Widget registration:
    • PropertyDialog(propertyname: string; Dialog: TQTXWidgetDialogType)
    • RegisterInfo(Description: string)
  • The property inspector now supports “property dialogs”, similar to Delphi’s custom property inspectors. Dialogs are assigned to widget properties via the [PropertyDialog] attribute.
  • The property inspector now supports Enum datatypes
  • The property inspector now supports SetOf datatypes
  • The RTL now has a TQTXMemo widget (qtx.dom.control.memo.pas)
  • The various input controls have been isolated as their own widgets (qtx.dom.control.edit.pas)
    • TQTXEdit
    • TQTXColorPicker
    • TQTXDatePicker
    • TQTXDateTimePicker
    • TQTXDateTimeLocalPicker
    • TQTXEmailEdit
    • TQTXFilePicker
    • TQTXMonthEdit
    • TQTXNumberEdit
    • TQTXPasswordEdit
    • TQTXSearchEdit
    • TQTXPhoneEdit
    • TQTXTimeEdit
    • TQTXWeekEdit
    • TQTXUrlEdit
  • Bug in TQTXContentBox which prevented proper alignment has been fixed. All widgets using TQTXContentBox for content now have working horizontal (left, center, right) and vertical (top, middle, bottom) alignment.
  • All common DOM element widgets have been registered
    • TQTXDOMArticle
    • TQTXDOMButton
    • TQTXDOMCanvas
    • TQTXDOMCheckbox
    • TQTXDOMEdit
    • TQTXDOMImage
    • TQTXDOMLabel
    • TQTXDOMParagraph
    • TQTXDOMPre
    • TQTXDOMRange
    • TQTXDOMSpan
    • TQTXDOMVideo
  • TQTXDOMImage is now capable of storing the image data as .jpg and .png files
    • TQTXDOMImage now exposes SaveToStream and LoadFromStream methods
    • TQTXDOMImage exposes access to raw pixel buffer and JImageData compatible with Canvas.Draw()
  • Offscreen canvas class, TQTXGraphicsContext, has been added to qtx.dom.graphics.pas
  • Fixed a bug in the Delphi extended .inifile parser, quoted strings caused a buffer alignment problem
  • Для просмотра ссылки Войди или Зарегистрируйся component package has been added to the distro (Thank you RT!), this adds the powerful layered map component as a drag & drop widget
  • TQTXOptionsListbox had a bug which prevented DataList support, this has now been fixed
  • … and much, much more!
1628948941428.png
“ThemeTest” is a kitchen sink example, here showing multi-form creation in a dynamic HTML5 application, with both automatic creation of form widgets, as well as manually creating widgets by code. TabPages and Listview + marching ants selector is very cool

What’s up next?​

While we dont have a fixed roadmap just yet, these are the features that should be implemented in the near future. Some of the more elaborate features, such as the protocol designer and subsequent ragnarok aware widgets, as well as database aware widgets, won’t appear until version 1.2 – 1.3 of the system.

I should add that Ragnarok already exists and is in the RTL, so its possible to hand-write the protocols. The filesystem protocol likewise also exists and can be used right now, but only manually. The work listed below is more about visually designing the protocols and auto-generating code based on the protocol-design-files.

The moment version 1.0 is out the door, I can finally focus at least 50% of my backer based time on the Quartex Media desktop, which will be moved from the old Smart Pascal syntax to Quartex. Which is where the full power of QTX will be available to everyone.

  • Delegate registration attributes
  • Working delegate tab for creating and attaching delegates to widgets
  • Delegate code-injection into the form source-code
  • New {$I ‘App:Initalization} injection point for auto-creating forms at startup
  • Rewrite of the live “code suggestion” feature, which right now is horrible and buggy as hell
  • Replace Besen as our JS parser with a better one (with full construct info)
  • Replace PDF helpfile viewer with THMLComponents PDF renderer (get rid of 2 megabytes of dependencies)
  • Get rid of Jedi framework dependency
  • Implement missing sizing features in the form designer
  • Add helpful layout functions to the designer
  • Designer should set the displaymode and positionmode depending on project type (absolute vs relative layout)
  • Add support for stacked, top-down, relative form design
  • Better provider implementation for JavaScript and HTML editor tabs (provides info to “code suggestion”)
  • Ragnarok service designer
    • Database protocol
    • Filesystem protocol
    • Audio protocol
    • Video protocol
  • Protocol aware widgets
    • Audio playback widget(s)
    • Video playback widget(s)
    • Filesystem widgets
    • Database widgets
  • SQLite database / table editor

Download​

Backers have access to the Quartex Pascal repository on BitBucket. If you want to become a backer, you can donate €100 or more to Для просмотра ссылки Войди или Зарегистрируйся, and PM me Для просмотра ссылки Войди или Зарегистрируйся for instructions. I will add you to the repository (make sure you create a BitBucket free account) and give you fork/download rights. You also get access to the Quartex Developer Group which is private (where you can ask questions and request features / report bugs directly).