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:



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)




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.



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.



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.




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.



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.



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).