Since the delivery of 4D v18, a series of blog posts on how to convert and develop with project databases have been published. What about components? This blog post answers that question.
PROCESS 4D TAGS has been enhanced with each 4D version and the latest additions as 4DCODE have drastically increased the use cases. What was previously a single line of code, is now often many lines, even pages, of 4D code.
In 4D v18, we shipped a cool feature allowing you to easily manipulate tables with new commands and standard actions. We’ve got even more good news (especially for those who prefer UI over coding): we’ve extended these new capabilities to the 4D Write Pro widget interface. Now, a new tab lets you manipulate tables directly from the widget!
Sometimes it’s preferable to have the lines of an object keep their original width, regardless of the applied transformation. For example, you draw a line on a map showing a user’s position and a destination. When the user zooms in on the map, you want to enlarge the map but have the line maintain its width.
Adding a block of comments at the beginning of a method is useful for adding a note about what a method does, as well as a list of input/output parameters. And having a few lines of human-readable text within a complicated section of code can be convenient to help you and others recall the purpose of this particular section of code. Beginning with 4D v18, your programming experience is enhanced with the addition of comment blocks!
4D Write Pro has been designed to create all kinds of documents, from the most simple to the most sophisticated. To achieve this diversity, documents can hold distinct parts, like paragraphs, sections, headers, footers, etc. Once filled in, 4D Write Pro behaves in such a way that all of these parts can be read. However, sometimes some parts must be resized according to their content. This is typically the case for headers and footers whose height can change automatically. This functionality is generally very useful, but sometimes it’d be more practical to set the heights of headers and footers to constant values (even if their content may be truncated and no longer be fully visible).
So your application has been developed and you’re ready for the next step. 4D lets you:
- generate a compiled database that no longer contains any interpreted code,
- generate a standalone application that can be double-clicked, (i.e., merged with 4D Volume Desktop, 4D’s database engine),
- generate client/server applications with automatic updates of client and server parts.
Wondering how to create a nice and dynamic user interface? Typically when a form is resized, the form objects whose horizontal sizing or vertical sizing properties are set to move or grow, are automatically resized. In some cases (e.g., finer user interface management), developers choose to manage form object size and position by programming. To do so, they check the “on resized” event which is triggered within the form method. But what happens when the form contains one or more subforms? On many levels? This blog post gives you the answers!
4D provides libraries to help you develop applications. One of these libraries is standard and contains preconfigured form objects and widgets, while other libraries are custom. The standard library is “read-only” and its behavior doesn’t change when developing project databases (with the exception of minor, cosmetic interface differences). You also have the ability to create your own custom libraries to save your own form objects or group of objects. In this case, a few changes have been made to make them even more powerful. The following is everything you need to know about these changes:
Have you ever needed to use methods with both thread-safe and not thread-safe calls, with conditions that skip over commands that are not thread-safe? Currently the compiler prevents doing this and an error is thrown, however there’s a flag that lets you disable this check and this blog post shows you how.
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