AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte AccessQuery - Massenobjektverarbeitung per Chain-Pattern
Thema durchsuchen
Ansicht
Themen-Optionen

AccessQuery - Massenobjektverarbeitung per Chain-Pattern

Ein Thema von WladiD · begonnen am 27. Apr 2010 · letzter Beitrag vom 1. Jun 2010
Antwort Antwort
Seite 2 von 2     12   
WladiD
Registriert seit: 27. Jan 2006
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.
Angehängte Dateien
Dateityp: zip accessquery.examples_178.zip (1,96 MB, 41x aufgerufen)
Dateityp: zip accessquery.r49_613.zip (52,5 KB, 36x aufgerufen)
 
WladiD

 
Delphi 10.4 Sydney
 
#11
  Alt 7. Mai 2010, 22:55
@bebe
Danke für den Hinweis, dass es auch unter Delphi 2009 lauffähig ist.

@shmia
"Fluent Interface"... ...kannte ich noch nicht
Läuft aber in der Tat darauf hinaus. Mir war bis Dato in diesem Zusammenhang das Chain-Pattern bekannt, wobei ich (zumindest zu dieser Uhrzeit) keinen Unterschied zwischen den Beiden feststellen kann.

Zum Thema Garbage-Collector:
Eine Zusammenfassung über seine Funktionsweise habe ich in der Dokumentation geschrieben: Gemanagete TAQ-Instanzen. Es steht dir aber natürlich frei, die genaue Vorgehensweise aus dem Quelltext zu erkunden.
Waldemar Derr
  Mit Zitat antworten Zitat
WladiD

 
Delphi 10.4 Sydney
 
#12
  Alt 1. Jun 2010, 14:56
Um das neue AccessQuery-Plugin AQPMessages zu testen, erstellte ich mir eine kleine Demo, die ich euch zeigen möchte (Anhang).

Die Sourcen sind im AccessQuery-Archiv des ersten Beitrags.
Angehängte Dateien
Dateityp: zip stickytools_154.zip (395,7 KB, 27x aufgerufen)
Waldemar Derr
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz