Do you need to load web pages, extract metadata, or generate pictures from the contents of pages on a headless server? If you answered “yes”, then you’re in luck because 4D v18 R3 makes it possible! Now you can create an offscreen web area with the WA Run offscreen area command.
Do you need to store all business emails, for example, for legal or fiscal purposes? These documents must be stored as they are. That is, how they were received … in their original, unconverted formats. 4D v18 R3 answers this need by providing you with a new method allowing you to get emails in their original MIME format.
We’re thrilled to announce that 4D v18 R3 includes an enhancement that will have a huge impact on the developer’s experience. A feature many of you have requested, and 4D delivers!
When you work in 4D standalone mode during the development phase (writing and testing your code), you’re no longer required to restart your database in order to have an up-to-date datastore (ds) when the structure is updated!
Now you don’t need to restart the database each time you need a new attribute or a new table in your code! It’s all automatic!
When you call the ds command, you get an up-to-date datastore object. This means that several versions of this datastore object are handled at the same time … depending on when you updated your structure … without breaking running processes.
If you work in client / server mode, this works fine for code running on the 4D Server.
For remote clients, you simply need to restart the client requiring the structure’s update.
When developing an application, it can be very useful to have quick access to the details of a method (e.g., an explanation of what it does, its syntax, and a definition of the parameters passed to it). This becomes even more important when using a compiled component. You can’t look at the content of the method, so you can only rely on its documentation to understand how to use it.
The Explorer’s dialog has been enhanced and documentation is now available in 4D v18 R3 for project databases.
Have you ever needed to use multiple web servers in order to, for example, split your web application code into several business units, or separate the administrator’s web server from the user’s or run an old part, not preemptive-ready yet, in a separate instance, allowing the main part to run preemptive?
If you’re nodding your head yes, then keep reading because 4D v18 R3 allows you to do so … with ease.
In a previous R-release, we added two new automatic themes to define font and the font size, so there are three automatic themes at your disposal which respect the guidelines of each platform. To design your interface, the automatic theme is the recommended way to go with each form object using the font and size recommended by the OS.
In some cases, you may need more control and have valid reasons to ignore the guidelines. With 4D v18 R3, you can override the size of the automatic themes and have more control over how your text is displayed.
How many times have you gotten the “Not supported value type in a shared object” error when trying to put an object into a shared object?
What did you do? Write longer code to turn your innocent object into a shared one, perhaps iterating over all of its properties?
How about transferring a shared object from one shared group to another?
An interesting thing about objects: you already know they can be used as a hash map (a key/value system), but what about gettings all the keys or all the values with a single line of code?
Keep reading, because 4D v18 R3 is out and brings good news!
XPath is a language allowing you to easily work with your XML documents. It’s already usable via the DOM Find XML element command and with 4D v18 R3, the support of the XPath syntax has been drastically enhanced. If you’re among those who requested features such as using a wildcard in a path, then keep reading!
In a previous blog post, we introduced a very important concept in object-oriented programming: Classes. Now we’ll go through another core concept: Inheritance, the mechanism that allows a class to acquire the behavior of another class.
Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!
* Your privacy is very important to us. Please click here to view our Policy