2015-08

Datum: 06.08.2015

Ort: Gaststätte Graf Moltke / Schnitzelkönig, Stuttgart

Thema: Die MagicTextbox

Teilnehmer: Thomas Möller, Emilia Maxim, Hans Schock, Thorsten Wichmann, Uwe Krause, Dagmar Lutz, Roman Hauber, Dirk Eberhardt, Artur Stierz, Marvin Bröck, Ulrich Klein, Björn Schober

Bericht: Thomas Möller

Der Sommer hat es wirklich in sich. Es ist verdammt heiß dieses Jahr. Ich habe das Gefühl in Stuttgart ist es besonders heißt. Da freut man sich dann ganz besonders auf den Besuch des Stammtisches.

So ist es dann auch nicht weiter verwunderlich, dass ich rechtzeitig von meinem Arbeitsplatz aufbreche. Warum weiter am Schreibtisch schwitzen, wenn man das auch mit einem kühlen Getränk tun kann. 😉
Als ich gegen 18:10 eintreffe ist Dagmar auch schon da. Gemeinsam bestellen wir unser Essen und unterhalten uns. Das Thema ist – wie sollte es im Sommer anderes sein – grillen. Wir machen uns gegenseitig Appetit mit der Aufzählung der bereits gegrillten Köstlichkeiten.

So nach und nach füllt sich der Raum. Das ist ja auch nicht weiter verwunderlich. Schließlich hat Dirk einen Vortrag angekündigt. Da kommen dann auch im Sommer in der Hauptferienzeit schon mal 12 Personen zum Stammtisch.

Ich unterhalte mich mit Roman. Seine Fragen vom letzten mal sind beantwortet. Mit der API-Geschichte ist er weiter gekommen. Und die Fragen zur Rechtschreibkorrektur hat er zusammen mit Dirk aufgearbeitet. Dazu hören wir später mehr im Vortrag.

Doch Roman wäre nicht Roman, wenn er nicht schon die nächsten Fragen parat hätte. Dieses mal geht es darum, wie man bei einem Feld in einer Tabelle die Eigenschaft „Eingabe erforderlich“ ändern kann. Ein möglicher Weg ist der Einsatz von DDL – Data Definitioon Language. Dabei geht es darum, dass man die Datenbankobjekte mit einem SQL-Statement ändern kann. In diesem Fall sollte ein „Alter Table“ die Lösung bringen.
Im Rahmen des Gesprächs erläutert Roman seinen „Versuchsaufbau“. Er hat eine Formular mit Unterformular. Dabei ist eine Tabelle involviert in der ein Feld eine Eingabe benötigt. Zum Problem wird es jetzt, wenn man in das Unterformular klickt um einen neuen Datensatz zu erfassen und sich dann aber entschließt, die doch nicht zu tun. Eine Idee wäre, die aufkommende Fehlermeldung im Ereignis „Bei Fehler“ des Formulars abzufangen und zu verwerfen.

So gegen 20:00 kamen wir dann zum Hauptteil des Abend – dem Vortrag von Dirk und Roman. Wir erinnern uns: Roman hatte beim letzten mal gefragt, wie man mit Access Texte formatieren und eine Rechtschreibprüfung durch kann. Die Lösung war der Einsatz eines Richttext-Feldes. Dies steht ab Access 2007 zur Verfügung. Mit der Taste F7 lässt sich auch dort die Rechtschreibprüfung starten. Problem: Es wird Wort für Wort geprüft. Die aus Word bekannte Funktionalität, dass alle falsch geschriebenen Worte mit einer roten Wellenlinie unterstrichen sind, steht leider nicht zur Verfügung.

Genau an dieser Stelle setzt der Vortrag an. Dirk und Roman habe die Rollen gut verteilt. Roman macht die allgemeinen Erläuterungen und führt in das Thema ein. Dirk erstellt dann ein Formular und zeigt mit ein wenig Code, wo das Problem liegt und wie man es lösen kann.

An der Lösung haben Dirk, Roman und Dirks Azubis gearbeitet. Insgesamt sind so zwei Arbeitswochen investiert worden. Hut ab vor soviel Einsatz. Das Ergebnis kann sich sehen lassen. Herausgekommen ist ein Klassenmodul. Dieses kann man an eine TextBox binden. Dort stellt dann die Klasse ihre Funktionalität zur Verfügung. Die Klasse heißt sinniger weise „MagicTextbox“.

Die Klassen kann man so konfigurieren, dass die MiniTool-Bar, die Access immer wieder einblendet, wenn man einen Text in einem Richtext-Feld markiert, komplett unterdrückt werden kann. Statt dessen kann man alternativ Button bzw. Bezeichnungsfelder an die Klasse binden, die ausgewählte Funktionen, wie z.B. die Formatierung von fett, kursiv oder unterstrichen ermöglicht.

Das Herzstück jedoch ist die Möglichkeit, dass alle falsch geschriebenen Worte farblich hervorgehoben werden. Über ein Kontextmenü werden dann noch die Korrekturvorschläge eingeblendet, so das eine Ersetzung des fehlerhaften Wortes leicht von der Hand geht.

Dirk erläutert, wie der Prozess funktioniert. Es wird der gesamte Text aus dem Richtextfeld eingelesen. Dieser wird dann in die einzelnen Worte zerlegt. Danach werden die einzelnen Worte an eine Word-Instanz geschickt und dort die Rechtschreibkorrektur aufgerufen. Im negativen Fall färbt der Code das gefundene Wort entsprechend ein. Da ein Wort mehrfach in einem Text vorkommen kann, liegt ein Augenmerk darauf, die richtige Instanz des Wortes zu markieren. Dabei kommen Regular Expressions zum Einsatz.

Dirk zeigt uns einige Funktionen direkt im Code. Der Code ist sehr gut strukturiert. Man merkt, dass hier ein erfahrener Clean-Coder am Werk ist.

Das Klassenmodul wird, wenn es denn fertig ist, frei verfügbar sein. Ich freue mich schon heute auf den Download.

Nach diesem interessanten Vortrag führen wir noch weitere Gespräche. Da es im Raum warm geworden ist, verlagern sich die Gespräche mehr und mehr zu den Rauchern nach draußen.

So gegen 22:15 löst sich der Stammtisch auf. Im Schlussspurt erreiche ich meine Bahn.

Suchen
Kategorien