Die BDE ist weg, die BDE ist weg…
Veröffentlicht von Manu in Allerlei am 10-03-2010
2
… ja, so hört es sich an, wenn die Umstellung einer Software sich langsam aber sicher dem “Ende” zuneigt. Zu Ende ist es natürlich “nie”, man findet immer wieder eine kleine Sache, die man ändern kann. Dennoch möchte ich einen kleinen Überblick bieten, wie die Umstellung bisher lief. Falls ihr den vorangegangen Artikel noch nicht gelesen habt, solltet ihr das zuerst tun.
TDBScroll
Wie im vorangegangen Artikel beschrieben, tauschte ich das TDBScroll gegen ein QuantumGrid von DevExpress aus. Erstaunlicherweise funktionierte das recht gut. Ein bisschen Logik musste geändert werden (was das Sortieren der Spalten betrifft) und noch ein paar Properties wurden getauscht, dann war die Umstellung von alt zu neu eigentlich schon durch. Da das QuantumGrid etwas flexibler ist, wurde es farblich etwas angepasst.
TQuery & Co.
Die Umstellung der bei Delphi beigelegten TQuery & Co. Komponenten zu den AnyDAC von RemObjects war eine doch etwas Nerven zehrende Arbeit. Etwaige in den Komponenten eingestellte Felder konnten direkt übernommen, doch beim Start flogen einem die SQL-Fehlermeldungen um die Ohren (siehe vorangegangener Artikel “BDE”). Hier und da ein bisschen Suchen und Ersetzen erledigte das ganze. Dennoch wollte es immer noch nicht so, wie es sollte. In der BDE war es möglich, eine Spalte mit “+” zu bezeichnen. FireBird bzw. AnyDAC schien das nicht ganz so zu mögen, deswegen musste die Spalte in “Plus” (wer hätte es auch anders gedacht) umbenannt und etwaige Stellen im Programm angepasst werden.
TStringLoader
Diese ominöse Komponente wurde nun endlich aus der Software verbannt und gegen ein neues System getauscht. Wie das System funktioniert, möchte ich kurz und knapp erläutern: In der FB-Datenbank gibt es eine Tabelle “LANGUAGES”, diese beinhaltet als Spalten “ID” (Int, AutoInc), “LangCode” (VarChar, Unique) sowie für jede Sprache eine einzelne Spalte. Der LangCode ist quasi das Herzstück des Systems. Durch diesen Code werden die Sprachen ins Programm reingeladen. Jeder LangCode in der Datenbank hat eine entsprechende Variable im Programm. Ganz grob gesagt passiert folgendes:
Query.SQL.Text := 'SELECT German FROM Languages WHERE langcode = 'langMainFormCaption';
Query.Open;
langMainFormCaption := Query.FieldByName('German').AsString;
MainForm.Caption := langMainFormCaption;
Von diesen LangCodes gibt es im Moment ca. 340 Stück. Eine Klasse übernimmt das Laden der Sprache. Natürlich wird nicht für jeden LangCode eine eigene SQL-Abfrage ausgeführt. Ursprünglich hatte ich es so, dass für jeden LangCode eine SQL-Abfrage ausgeführt wird, aber so dauerte der Wechsel der Sprache doch gerne mal zwei Sekunden, das war nicht akzeptabel. Durch eine kleine Änderung, alle LangCodes auf einmal zu laden und per Schleife die richtigen Felder zuzuweisen, wechselt die Sprache nun in weniger als einer Sekunde. Neue Sprachen sind nun relativ schnell hinzugefügt. Da das Programm nun auch Unicode kann, ist auch Chinesisch kein Problem mehr.
BDE
Wie die Überschrift schon sagt: Die BDE ist weg! Die Anwendung läuft nun wunderbar mit einem FireBird embedded, sogar über das Netzwerk geht es prima (was die gemeinsame Entwicklung deutlich vereinfacht hat!). Administriert wird die DB mit IBExpert, ein Muss, wenn man FB-DBs administriert.
WPTools
Die neue WPTools-Version ist nun auch am Laufen. Ein bisschen enttäuscht vom Installer bin ich schon, da zahlt man mehrere hundert Euronen und man darf die Source selbst kompilieren und die Suchpfade entsprechend hinzufügen, dass hätte man auch automatisiert machen können, aber sei’s drum. Leider waren die RTF-Dateien, die damals mit WPTools 4 erstellt wurden, alles andere als brauchbar in der Version 6. Andere Linienstärken, andere Ausrichtungen, andere Darstellung bzw. Einbindung von Bildern. Der hauseigene Editor ist übrigens eine Zumutung und sollte man direkt in den Papierkorb werfen, den Schrott kann man nicht bedienen. Man kann allerdings getrost auf Word zurückgreifen und dort alles bearbeiten. Deswegen mussten alle Datenblätter und Bestellvorlagen neu erstellt werden.
TeeChart
Die TeeChart Komponenten laufen nach wie vor, auch in der neuen Version. Was mich hier allerdings sehr ärgert ist, dass nach einer frischen Installation gleich mal eine Fehlermeldung kommt: Eine Unit im Package xyz.bpl sei schon im Package abc.bpl vorhanden, weswegen xyz.bpl nicht geladen werden konnte. Da ich die Komponenten ohne Source gekauft habe, musste ich eines der Packages in die Mülltonne kloppen (brauche dessen Inhalt sowieso nicht). Nun funktioniert zwar der Start, allerdings wird das zweite Package trotzdem nicht mehr geladen, man muss es immer wieder in der Packageverwaltung wieder aktivieren, sonst kommt es immer wieder zum Fehler, dass die Komponente “TChart” nicht gefunden wird. Ein sehr nerviges Problem. Eventuell besteht hier aber noch eine gewisse Inkompatibilität mit den von Delphi mitgelieferten TeeChart Komponenten. Allerdings habe ich am Laptop diese vorher vollständig entfernt und das Package Problem bleibt bestehen. Wie dem auch sei, es funktioniert.
Soweit der aktuelle Stand, eventuell folgt noch mal ein Beitrag zu der Sache, sofern sich Material dafür findet.











