COMRapid
ComRapid soll eines Tages aus vielen sich ergänzenden Modulen bestehen (im kleinen Maßstab
ist das bereits der Fall). Ziel der Bibliothek ist es den Softwareentwicklungsprozess eines Teams oder
von einzelnen Programmierern zu beschleunigen und die Qualität des Ergebnisses zu steigern.
Das Resultiert aus der sehr guten Wiederverwendbarkeit (COM Objekte). Die einzelnen Module sollen dabei
nicht nur die Grundanforderung decken, sondern durch besondere Features auffallen. Hier gehen andere
Bibliotheken meist den einfacheren Weg. Oft bedeutet alles was über die Grundanforderung hinausgeht
einen großen Arbeitsaufwand beim Programmieren, Testing und Wartung.
COMRapid soll aber nicht hochportabel sein, nicht auf noch so schwachen Systemen lauffähig sein und
auch nicht alle denkbaren Features bieten. Da der Programmierer im Besitz der Quellcodes der
Bibliotheksmodule ist, kann sich dieser leicht seine Spezialwünsche einbauen.
Diese Bibliothek soll derzeit nur auf den Systemen Win95/Win98/Win2000 und WinNT laufen. Für einige
Module ist DirectX (7 oder 8) erforderlich. Eine ordendliche Rechenleistung und Hauptspeicherausstattung
wird vorausgesetzt.
Die Hauptentwicklung on COMRapid soll immer in der Hand weniger Entwickler sein, damit es ein konsistentes
und stabiles System bleibt/wird. Interesse?
Folgende Module befinden sich in der Implementierungsphase:
![](Bilder/seperator.gif)
GraphLib
Das GraphLib Modul unterstützt derzeit folgende Features (alles mit Antialiasing):
2D Clipping, 32Bit Surfaces und Operationen, Punkte setzen (mit und ohne Alpha)/lesen,
gefüllte Rechtecke (normal oder 50% Transparent), Punkte, Linien, Kreise(normal und
gefüllt), gefüllte Polygonezüge und Truetype Text (relativ performant)
![](Bilder/seperator.gif)
MessageHandler
Dieses Modul ermöglicht das sehr einfache Generieren von Logdateien. Die Daten werden gepuffert
und auf Kommando in eine Datei geschrieben. Wenn erwünscht, wird die Datei auch ausgegeben
(sehr praktisch bei Fehlermeldungen). Die anderen Module benutzen den MessageHandler in 2
Instanzen, zur Nachrichten- und zur Fehlerprotokollierung.
Das Modul hat sich bereits bei mehreren Applikationen bewährt.
![](Bilder/seperator.gif)
SimpleBox
Die Komponenten, die in diesem Modul zusammengefasst sind, haben nur den Zweck ein interaktives
2D System zu testen. Das System bietet derzeit flüssige flickerfreie Darstellung
(mit Antialising) von 2D Elementen die in einer Baumstruktur (Szenengraph) organisiert sind.
Der Benutzer kann mit den Elementen interagieren, und diese Laden und Speichern. Die Ansicht auf
die Elemente kann verschoben oder vergrößert/verkleinert werden.
![](Bilder/seperator.gif)
SplashWindow
Dieses Modul ermöglicht es auf einfache Weise einen sog. Splashscreen anzuzeigen. Viele
professionelle Applikationen zeigen vor dem Start ein Fenster mit Informationen an. Dieses
Modul zeigt eine alphageblendete Bitmap an und deaktviert diese auf Kommando, nach einer
bestimmten Zeit oder auf einen Mausklick hin.
![](Bilder/seperator.gif)
Reference Guard
Dieses Modul ermöglicht es Speicherlecks von nicht freigegebenen Objekten aufzufinden.
Dabei wird die Referenzählung der Smartpointerklasse modifiziert. Nach Beenden der
Applikation oder wenn erwünscht auch vorher werden die noch nicht freigegebenen Objekte
aufgelistet.
![](Bilder/seperator.gif)
WinGUI
Hier ist ein Testdialog zu sehen, der mit WinGUI erzeugt wurde. Der Benutzer generiert die Buttons
durch C++ Befehle. Position und Größe werden vom System automatisch nach Layoutinformationen
vom Benutzer und eingestellter Windows Konfiguration erzeugt. Vorteilhaft wirkt sich das auf folgende
Punkte aus: Lokalisierung (Anpassen an die Landessprache), Designänderungen, Multiplattformentwicklung,
dynamische Generierung von Dialogen, Rapid Prototyping, Konfigurierbarkeit.
|
![](Bilder/seperator.gif)
Core
Hierbei handelt es sich nicht um ein COM Objekt, sondern um eine Ansammlung von Klassen die bei
der Entwicklung der Applikationen oder Module helfen. Hierin findet sich eine Smartpointer
Klasse, Vaterklassen zur einfachen Erstellung von neuen Modulen, wichtige Datentypen und ein sehr
gutes Serialisierungssystem (Arbeitsaufwand beim Programmierer praktisch 0, dabei Auf- und
Abwärtskompatibilität möglich).
|