27 Jun 2006 

„Jahrelang kam ich ohne den Run-Button in 4D aus“.

Nein nicht wirklich, es war bisher umständlicher. Erst mußte ich den Methodennamen kopieren und sie per EXECUTE(Get text from clipboard) ausführen lassen. Jetzt, mit der 4D 2004, ist das einfacher: es gibt einen Run-Button. Das ist der grüne Pfeil oben links.

nicht dieser grüne Pfeil

den entdecken Sie an mancher Ampel. Dort darf rechts abgebogen werden, auch wenn die Ampel rot ist. Ich muß darauf achten, daß keiner die Vorfahrt beansprucht und warten, wenn jemand vor mir träumt. Ist frei, kann ich sofort weiterfahren! *

Dieser grüne Pfeil ab 4D Version 2004 ist gemeint

Er verhält sich ähnlich wie der Pfeil an der Ampel: er hilft beim Vorankommen. Klick auf den Pfeil testet ein Formular oder eine Methode aus der Design-Umgebung heraus. Auch hier gilt: wenn die Vorbedingungen erfüllt sind. Sonst gibt es Fehlermeldungen. Wie kann ich mir das bereits beim Methode-Schreiben erleichtern?

Eine Methode auf den grünen Pfeil vorbereiten

Immer häufiger baue ich die Methoden nach dem bereits beschriebenen Prinzip Alles in einer Methode auf. Diese Methoden bekommen zwei Parameter: 1) was soll getan werden als Text und 2) das betroffene Objekt als einen Pointer. Das sieht im Gerüst so aus →

Entscheidenden in diesem Thema Run-Button ist sind die Zeilen

If (Count parameters=0)
 
Else

Denn der Run-Befehl übergibt keine Parameter. Deshalb und weil es defensives Programmieren** ist, wird auf keine Parameter abgeprüft.

Ich habe in dieser Konstellation zwei Möglichkeiten. Die erste ist auf :($what="") zu reagieren und die zweite, einen Vorgabewert für $what:="Vorgabewert" einzurichten, wenn keine Parameter übergeben wurden. Beide Methoden sind mir fast gleichwertig. Da Menüaufrufe auch keine Parameter übergeben, versuche ich den Test auf :($what="") für Menüaufrufe zu reservieren.

TRACE oder Unterbrechungspunkte als Vorkehrung sind nicht notwendig. Langer Klick auf den Button listet die Optionen auf.

Der Pfeil ist ein Bildbutton mit angehängtem Popup-Menü. Schön zu sehen: die 4D-Entwickler futtern Ihr eigenes Hundefutter, nicht immer aber meistens. Meistens ist notwendig, weil
1) unter MacOSX sollte der Pfeil fürs Popup-Menü nicht vom Button getrennt sein, das ist ein XP-Feature, und
2) eine Leerzeile im Popup-Menü das per Pop up menu aufgerufen wird, braucht den Menü-Eintrag "(-" um Linie und deaktiviert zu sein. Bei anderen Menüs und Popups reicht "-", das Minuszeichen.

Ein Formular auf den grünen Pfeil vorbereiten

Inzwischen sehen meine Formular-Methoden so aus →

Das macht mir die Sache einfach. Formular-Methoden rufen globale Methoden auf und übergeben eine Textanweisung. In der globalen Methode werden die Form events abgeprüft und entsprechend reagiert. Ich kann mich auf die globale Methode konzentrieren, der Run-Button im Formular einen definierten Zustand auf.

P.S. die Möglichkeit, den Inhalt der Zwischenablage per EXECUTE(Get text from clipboard) ausführen zu lassen kann ich immer noch gebrauchen. Dieses Verfahren kann Parameter übergeben.

* Amerikaner dürfen das auch ohne grünen Pfeil

** deshalb ruft Else am Schluß der Case of die Fehlerbehandlung auf, wenn eine unerwartete Anweisung übergeben wurde

4D Themen: Berichte in Arbeit