diesen Artikel auf deutsch?

Every new 4D version delivers to the developer user-interface-objects which were new to the OS. Some after a long wait, some too late (metalic window anybody), seldom sharp. This is true for V12, too. The great news like hierachical listboxes where announced. I'll concentrate on the well-done or missed attention to detail. When I found something, I'll list it here:

1 Dec 2010 


A nice feature of V12 are the predefined form-widgets for Search, Calendar, Date and Time. A really good idea. But the reality catches up early. Take a look at growing and moving - unusable.

Visit YouTube to see what I mean. That new embedding code doesn't work properly.

30 Sep 2010 

4D language

Many Set-commands now have an accompanying Get-command. The namings have changed a bit, to make them more coherent. Instead of ENABLE BUTTON, DISABLE BUTTON you should use OBJECT SET ENABLED, not for buttons only. The Get-command is OBJECT Get enabled. The commands work with variablenames and objectnames. Perfect!

Just now I'm looking for OBJECT Get format. Anybody found that command already?

17 July 2010 



The tag <method_name/> delivered the variable-name up to V11, or form.variablenname.

V12 handles this tag different. The tag now expands to form.objectname, same as the window-title. Equally true for Import_Editor.bOK which now gets Import_Editor.Schaltfläche3 or Import_Editor.button3 in english.

I've got an idea why – the objectname gets more important with every new 4D version – and I think this is a fundamentally good concept. But the realisation is underwhelming. I would have done no change to the behavior of tag <method_name/> but added a new tag, like <method_objectname/>.

By the way: to me it looks like tag <method_name/> doesn't deliver the methodename but the second part of the windowtitle :-)

7 July 2010 


Activating and deactivating the editor-window flashes much more than in previous versions. The methodtext itself doesn't flash, but the buttons in the header and the lists in the footer behave completely different.


Moving the window to the background, both header and footer get displayed inactiv. This change is smooth.

New to V12 even the scrollbars get deactivated – as it should have been for a couple of versions.

There are couple of flashes when bringing the method-editor window to the foreground. The header looks like buttons get drawn twice: first smooth change into activated but then a complete redraw. The footer is much more enervating. The lists look like being recalculated and completely redrawn.

Fonts of the Method-Editor

I have to have a font with styles normal, italics, bold and bolditalic installed for V12-methodeditor. Until V11 I could use Lucida Grande and display some method-tokens in italics. There has never been italics for Lucida Grande – which means no italics with V12.


This cuts down on the available fonts. Nothing really to care about. Much more disturbing is the font-rendering. The font-rendering reminds me of Windows XP where the fonts look thin, pixelated and unpleasing for a MacOSX-eye.

The monospaced fonts look terrible, Helvetica looks unusable below 300 dpi, same is true with the serif-fonts … I've settled with the font Aller for now.

I love the new method-editor. Very much indeed, just because remembering which parts where collapsed and which were expanded. Halleluja! But the font-rendering, forget it, look at something more pleasing.

27 April 2011 

More than one line for a command

While there's life, there's hope. Finally true, commandlines kann be wrapped. Now I need not add a third 30" to the very right, no need to do any woodwork concerning my desk. Here an example from my variable-declaration.


23 Sep 2010 



Selecting a line of code and then option-dragging to create a copy at a new place doesn't work any more. Up to V12, the linefeed was also selected and copied and this is how it created an empty line to drop the copy into. In V12 the linefeed is missing and that is annoying. Instead of a single selection-option-drag I have to first create an empty line before copying an existing one or return to classic behaviour: select the source, ⌘-C,move the cursor, create room, and ⌘-V. That's a step back!


The type-ahead of the method-editor is very much appreciated. Hardly believable, it even displays the declared local vars. Just why, when typing $i the list defaults to $inputForm. Both are declared. My sorting-habit would expect $i comes first and $inputForm second. I have to manually select $i from the list, otherwise $inputForm gets the countervariable and throws an error. Annyoing!

My solution: my preferred variables need to be declared first. Then typing $i will not put $inputForm into the for-loop.

1 July 2010 

Tab-controls and Popups


Finally tab-controls can exist without that frame. It might not really be OS-like, but it saves a lot of space and might replace radio-buttons in functionallity.

First I tried to find a checkbox: hide frame. There is none. Then I found out how: reduce the height until the frame disappears and the tab-controls still have their default size.


Shrinking the width no longer displays the those unusable arrows to access hidden tab-controls but converts the tabs into a popup. This was already a V11-feature. Nice indeed!


But the Popup is no longer a Popup. It's sort of a combobox without the combo-part, aka the data-entry. The popup-formobject and the popup always have been two objects, but in V12 the selection-list is below the formobject for extra mousemovements. The V12-popup now looks like a window of type Pop up window or ComboBox without combo.


With a short selectionlist, you are wondering, why to move the mouse at all.

A longer selection-list is a pseudo Windows-Combobox without combo, looking terrible on MacOSX.

A popup with scrollbar what is that? Not a native UI-object on MacOSX and not even using the height of the screen. This is a peephole with the same fiddly scrollbar as in fieldselection in elementsinfo for a formobject. Why that change at all? I thought 4D v12 has given up on non OS-userinterface objects – again.


Still popup: pityly the elegance of the dividerlines are gone. The decent grey of a unselectable line is replaced by an bold scar.



A toolbar-button of your own, looking like a modern OSX-popup, running Dynamic pop up menu looks as expected. Click the picture for a simulation.

Another potential workaround as suggested in SVG-Goodies: build yourself OS-compliant UI-objects utilizing SVG.
I'm pretty sure, knowing SVG and creating some tools of your own is a good idea. But drawing everything myself by code and maintaining that code, I'd be better off with MAMP and a decent IDE for HTML5, CSS3, SVG, JavaScript. If there were only a form-editor included in that IDE.


And with Lion?

Running V12 in MacOSX Lion you see those nice Popups.

I'll save that extra work for the workaround now. Better make all popups-heights 20 pixels or less.

Looks like 4D V12 was already ahead of SnowLeopard and used real system-objects. That pays with Lion, sort of.

4D Themen: Berichte in Arbeit