Ein Hallo an alle Mitglieder,
ich bin ständigen Sprachwechseln ausgesetzt, mal PHP, mal JS und dann wieder Delphi. Bei jedem Wechsel gibt es irgendetwas, was man von einer anderen Sprache vermisst, vor allem wenn man von Delphi zu PHP (
OOP ist da mehr ein Witz als Tatsache, auch in PHP 5) wechselt.
Jedenfalls habe ich mich durch die Arbeit an einem Web-Projekt so dermaßen an das JS-Framework
jQuery, gewöhnt, dass ich beim letzten Switch zu Delphi nicht vom Gedanken loskommen konnte, eine ähnliche
Unit für Delphi umzusetzen. Der Wunsch nach so einem Framework entstand, als die Anforderung bestand, ein paar kleine Positionierungsanimationen von irgendwelchen Komponenten durchzuführen.
So dauerte es nicht lange und aus diesem Bedürfnis (mit den Vorteilen von jQuery im Hinterkopf) entstand das Projekt:
AccessQuery
Wiederkehrende (zeitliche) Verarbeitung von Objekten durch anonyme Methoden, mittels modernster OOP-Entwurfsmuster (Chained-Chain-Pattern, Fluent-Interface, Garbage-Collector) und einem flexiblem Plugin-System auf Generics-Basis. AccessQuery ist prädestiniert für unabhängige und verteilte parametrische Animationen, jedoch ist der genaue Verwendungszweck nicht spezifiziert (rationalisiertes Konzept).
Die TAQ-Klasse (AQ ist die Abkürzung für AccessQuery) greift ein oder beliebig viele Objekte und bietet Methoden, diese mittels anonymer Methoden zu verarbeiten.
Die Verarbeitung kann...
- sofort (TAQ.Each),
- wiederholt (TAQ.EachRepeat),
- zeitversetzt (TAQ.EachDelay),
- zeitbegrenzt wiederholend (TAQ.EachTimer)
- oder in unbegrenzten Intervallen wiederholt (TAQ.EachInterval)
...erfolgen.
Konzept
TAQ nutzt moderne objektorientierte Entwurfsmuster und kontextsensitive anonyme Methoden, die es dem Entwickler nicht nur erlauben mit weniger Code mehr zu erreichen, sondern vielmehr, zusammenhängende Code-Fragmente zu vereinen.
- Die meisten TAQ-Methoden arbeiten nach dem Chain-Pattern
- Abzweigungen mittels Chained-Chains oder bedingter Chains
- [NEU] Flexibles Plugin-System für unbegrenzte Erweiterbarkeit
- Indirekte Instanziierung nach dem Singleton-Pattern
- Gemanagete TAQ-Instanzen, die durch den integrierten Garbage-Collector automatisch freigegeben werden
- Unterstützt auch ungemanagete TAQ-Objekte
- Beliebig viele zeitliche Aktionen über einen TTimer
- [NEU] TAQPControlAnimations-Plugin für die Animation von Eigenschaften (Position, Hintergrund- und Schriftfarbe) aller TControl-Nachfahren
- [NEU] TAQPMessages-Plugin für die Bindung beliebig vieler Message-Listener an von TControl abgeleitete Komponenten
Ein Beispiel:
Delphi-Quellcode:
// ...
implementation
uses
AccessQuery,
AQPControlAnimations; // Plugin (AQP = AccessQueryPlugin)
procedure TForm1.FormClick(Sender: TObject);
begin
Take(Sender)
.FinishAnimations
.Plugin<TAQPControlAnimations>
.ShakeAnimation(6, 20, 3, 20, 500);
end;
// ...
AccessQuery-Projektseite auf meiner
KiHiWi-Seite (Dokumentation etc.) und
Sourceforge (Code-Hosting).
AccessQuery wird unter der
MPL 1.1 veröffentlicht:
Lizenz.