Inhaltsverzeichnis
5.1. Entwurf des Bedienungskonzepts

5.2. Implementierung

Neben dem Algorithmus zur Visualisierung von Strukturen, der in Abschnitt 4. ausführlich diskutiert wurde, sind zur Implementierung des Programms im Wesentlichen nur die Funktionen aus der Bibliothek erforderlich. Kleinere algorithmische Überlegungen werden im Zuge der Implementierung behandelt.

Als Entwicklungswerkzeug wird Borland Delphi gewählt. Es erlaubt ein sehr effizientes Erstellen von Programmoberflächen, ohne gleichzeitig Einschränkungen bezüglich Realisierbarkeit oder Performance gegenüber anderen auf Hochsprachen basierenden Entwicklungsumgebungen mit sich zu bringen. Das Programmieren der Oberfläche kann deshalb vergleichsweise kurz erläutert werden; bei den folgenden Überlegungen zur Implementierung steht die eigentliche Funktionalität im Mittelpunkt. Auf eine detaillierte Beschreibung aller Programmabläufe wird allerdings verzichtet. Zu diesem Zweck befinden sich die kommentierten Quelltexte im Anhang, auf die im Text hin und wieder unter Angabe der Seitenzahl in eckigen Klammern verwiesen wird. Die Erläuterungen beschränken sich auf die benötigten Datenstrukturen und die Grundideen des Programmablaufs.

Die größte Teil der Ein- und Ausgabe von Werten kann mittels der unter Windows üblichen Steuerelemente erfolgen. Es gibt aber drei Stellen, an denen diese Standardelemente ungeeignet sind und die daher einer besonderen Programmierung bedürfen:

Ausgehend von den Überlegungen zum Bedienungskonzept werden für den Hauptteil der Anwendung folgende Variablen verwendet. Sie werden als Member der Hauptfenster-Klasse deklariert [C 22]:

var
Klasse: TStrukturKlasse; {gewählte Klasse }
Nummer, SubNummer, {aktuelle Katalognummer und SubNummer für Ableitung}
Code, BasiskettenCode: int64; {Code der angezeigten Struktur, Code der
  Basiskette für abgeleitete Mechanismen}
Basiskette: TBasiskette; {Basiskette des angezeigten Mechanismus}
M, {Gliedmatrix der aktuellen Struktur}
Mabgeleitet: TGliedmatrix; {aus Kette abgeleitete Gliedmatrix des
  aktuellen Mechanismus}
MechInfo: TMechInfo; {Info über aktuellen Mechanimsus}

Das Verarbeiten der verschiedenen Möglichkeiten des Anwenders, einen anderen Typ für die Anzeige festzulegen bzw. auszuwählen, ist bei kinematischen Ketten und AGn mit Hilfe der Funktionen aus der Bibliothek mit wenig Aufwand realisierbar. Es ist lediglich darauf zu achten, dass inkorrekte Eingaben abgefangen werden. Bei den Mechanismen dagegen erhöht sich der Aufwand für diese Operationen etwas; dazu in Abschnitt 5.2.1. mehr. Prinzipiell sollten beim Suchen keine Gliedmatrizen miteinander verglichen werden, da diese isometrisch sein können, ohne identisch zu sein. Soll eine Struktur anhand ihrer Gliedmatrix gefunden werden, muss der zugehörige Typencode berechnet und gesucht werden. In diesem Zusammenhang ist auch zu beachten, dass beim Ableiten eines MTs aus einer kinematischen Kette von der betreffenden Bibliotheksfunktion nicht die gleiche Gliedmatrix geliefert wird, die ein Entschlüsseln des zugehörigen Typencodes ergibt, sondern nur eine zu dieser isometrische.

5.2.1. Zusätzliche Funktionalität bei Mechanismen