english readers please follow this link

Mit jeder neuen 4D Version bekomme ich als Entwickler Oberflächen-Objekte nachgereicht, die sich inzwischen in die Betriebssysteme eingefunden haben. Manches nach langem Warten, manches zu spät (Metallic-Fenster). Die V12 ist hier nicht anders. Die großen Neuerungen wie hierarchische Listboxen sind bekannt gemacht. Mir geht es um die erkannte oder die versäumte Liebe zum Detail - attention to detail.

Wenn mir was auffällt, liste ich es hier auf:

1. Dez. 2010 

Search-Picker

Ein Feature der V12 sind vorgefertigte Formular-Elemente für Suche, Kalender, Datum und Zeit. Eigentlich eine gute Idee. In der Realisierung gibt es noch Haken. Z.B. das Wachsen bzw. Bewegen im Formular.

Direkt bei YouTube ansehen. Deren Einbettungscode, in allen Varianten, hat seine Schwierigkeitgen.

30. Sep 2010 

Programmiersprache

Es gibt jetzt für viele Set-Befehle einen passenden Get-Befehl und es wurde die Benennung der Befehle vereinheitlich. Statt ENABLE BUTTON, DISABLE BUTTON sollte jetzt OBJECT SET ENABLED verwendet werden – gilt nicht mehr nur für Buttons – und es gibt einen Get-Befehl OBJECT Get enabled. Die Befehle funktionieren mit Variablennamen und Objektnamen. Gut so – sehr gut sogar!

Im Moment suche ich OBJECT Get format. Hat den schon jemand gefunden?

17. Juli 2010 

Macros

objectnameV12

Der Tag <method_name/> liefert für Formular-Objekte neuerdings einen anders zusammengesetzten Methodenname zurück. Bisher bekam ich Formular.Variablennamen. Die V12 sieht das ganze anders. Schon der Fenstertitel zeigt Formular.Objektname und liefert als Tagauflösung ebenfalls Formular.Objektname. Also nicht mehr Import_Editor.bOK sondern Import_Editor.Schaltfläche3.

Ich habe eine Ahnung warum – der Objektname wird mit jeder 4D Version wichtiger – und halte es für konzeptionell richtig. Doch die Realisation ist unglücklich. Ich hätte die Funktion des Tag gelassen und einen neuen Tag eingeführt, z.B. <method_objectname/>.

Vermutung meinerseits: der Macro-Tag <method_name/> liefert nicht wirklich den Methodennamen sondern den Fenstertitel nach dem Doppelpunkt :-)

7. Juli 2010 

Methoden-Editor

Wechsel zwischen aktiv und inaktiv – es flackert mehr als in älteren Versionen. Der Methodentext bleibt stehen, aber das Verhalten der Buttons im Kopf und der Listen im Fuß des Editors haben sich verändert.

rollbalken

Wird das Fenster in den Hintergrund geschoben, werden Kopf- und Fuß-Bereich deaktiv dargestellt. Der Übergang ist sanft.

Neu in der V12 werden auch die Rollbalken des Methodentextes deaktiviert – wie es sein sollte.

Kommt das Fenster der Methoden-Editors wieder in den Vordergrund, flackerts. Im Kopfbereich sieht es aus, als würden die Button zweimal gezeichnet, zuerst der weiche Übergang ins aktive und dann nochmal neu, quasi ein unnötiges REDRAW. Nerviger sind die Listen im Fuß, dort habe ich wirklich den Eindruck als würden die Listen komplett neu berechnet und danach neu gezeichnet.

Schriften im Methoden-Editor

Es sind zwei Sachen die mich stören. Ich muß alle Schnitte (normal, kursiv, fett und fettkursiv) derselben Schrift haben, damit sie von 4D V12 benutzt werden. Bisher konnte ich Lucida Grande nehmen, jetzt geht das nicht mehr, weil es Lucida Grande nicht in kursiv gibt.

Aller

Weil alle 4 Schnitte zur Verfügung stehen müssen, ist die Schrift-Auswahl bereits eingeschränkt. Damit kann ich leben. Mehr stört mich, daß die Schriften im Methoden-Editor anders zu rendern scheinen als bisher. Das Schriftrendering erinnert mich an Windows XP und dort ist das Schriftbild hart und dünn.

Die Schriften mit fester Laufweite sehen nur noch schrecklich aus, Helvetica ist ungeeignet ohne Retina-Display, die Serifenschriften sowieso … ich habe jetzt die Aller aktiv.

Ich mag den neuen Methoden-Editor. Sehr sogar, weil er sich endlich auf- und zugeklappt merkt. Halleluja! Aber das Schriften-Rendering, nee, zum Weggucken.

27. April 2011 

Befehle über mehr als eine Zeile

Die Hoffnung stirbt zuletzt. Es ist wahr geworden, Befehle können in die nächste Zeile umbrechen. Super, kann ich mir dritten 30" ganz rechts sparen, brauche am Schreibtisch nichts anzubauen. Hier mein Aufräumen in der Variablen-Deklaration.

mehrzeiligerCodeV12

23. Sep 2010 

Update

Option-Drag

Eine Zeile im Menü-Editor auswählen und per Option-Drag an eine neue Stelle kopieren funktioniert nicht mehr. Bisher wurde auch der Zeilenschalter mitkopiert und das Einsetzen klappte, schaffte sich die fehlende Zeile. Jetzt fehlt dieser Zeilenschalter und das ist sehr lästig! Statt einem Select-Option-Drag muß ich vorher Platz schaffen und kann dann erst eine Kopie erzeugen oder wieder klassisch: Quelle auswählen, ⌘-C, Cursor ans Ziel setzen und ⌘-V. Das ist kein Fortschritt!

Type-Ahead

Das Type-Ahead im Methoden-Editor ist eigentlich Klasse und – kaum zu glauben –, bietet es auch den Zugriff auf die deklarierten lokalen Variablen. Klasse … nur warum wird, sobald ich $i tippe $inputForm als Vorschlag ausgewählt statt $i? Beide sind definiert und nach meiner Sortierung müßte $i vor $inputForm erscheinen. Wenn ich dann nicht mühsam mit der Maus $i aus der Vorschlagsliste auswähle, trägt 4D $inputForm ein und ich darf das wieder wegmachen. Kacke!

Meine Lösung: die von mir präferierten Variablen müssen vor den anderen Variablen deklariert worden sein – dann klappt es auch mit $i vor $inputForm.

1. Juli 2010 

Registerkarten und Popups

rk1

Endlich können Registerkarten wieder ohne den Drumherum-Rahmen verwendet werden. Das ist nicht wirkich systemkonform, aber es spart viel Platz und kann in der Funktionalität Radiobuttons ersetzen.

Erst suchte ich den Eigenschaften eine Rahmen ausschalten-Option, fand keine. Dann kam ich drauf, wie es geht: das Objekt so weit in der Höhe reduzieren, bis der Rahmen verschwindet und die Register-Button noch unbeschnitten bleiben.

rk2

Wie schon in der V11, wird aus den Register-Button sobald die Breite nicht reicht ein Popup-Menü.
Das sieht wesentlich besser aus als die Pfeile in den früheren Versionen.

rk3

Das Popup ist jedoch kein Popup. Es ist eine Art ComboBox ohne den Teil Combo, also ohne Eingabe. Es ist lösgelöst vom Formularobjekt wie bisher auch, jedoch hängt es unter dem Formularobjekt und nicht mehr darauf. So erinnert das Popup an ein Fenster vom Typ Pop up window oder eben ComboBox ohne Combo.

popup

In einer überschaubaren Auswahl wie hier mit wenigen Einträgen verwirrt die Lage.

Ist die Auswahl größer, bekomme ich eine pseudo Windows ComboBox ohne Combo unter MacOSX. Weggucken!

Ein Popup mit Rollbalken - was issn das? Auf dem Mac wird die Höhe des Monitors ausgenutzt und wenn es nicht reicht Weiterrollen-Pfeile angezeigt. Das funktionierte bisher in 4D. Heute haben wir so schön große Monitore und ich muß in einem Guckloch nach dem Eintrag suchen und habe dazu nur den fummeligen Rollbalken.

trenner

Leider ist die Eleganz des Trennstriches in einem Menü verloren gegangen. Das dezente Grau des nicht Auswählbaren ist durch hammerhartes Schwarz ersetzt. Schade :-(

Workaround

eigenpopup

Eigene Toolbar-Button im Look eines moderneren OSX-Popups mit angebundenen Dynamic pop up menu sehen aus wie erwartet.

Oder wie in den SVG-Goodies angedeutet, systemnähere Oberflächen über den Umweg SVG. Ich bin mir sicher: SVG ist eine gute Wahl. Doch wenn ich alles selber zeichnen muß, per Code und dann auch noch verwalten, dann nehme ich doch MAMP und dazu wünsche ich mir eine IDE für HTML5, CSS3, SVG, JavaScript incl. Form-Editor.

popupV12_Lion

Und in Lion?

In MacOSX Lion sehen die Popups wieder vernünftig aus.

Den Workaround kann ich mir sparen, wenn ich drauf achte, das Popup in her Vertikalen max. 20 Punkte groß zu machen.

Wahrscheinlich ist 4D V12 schon weiter fortgeschritten als SnowLeopard und verwendet tatsächlich echte System-Objekte. In Lion macht sich das bezahlt.

4D Themen: Berichte in Arbeit