BeniBela online

Quellcodes

Auf dieser Seite sind Quellcodes, die man in eigenen Projekten benutzten kann, aufgelistet, Delphikomponenten sind jedoch auf einer eigenen Seite zu finden. Alle mit der MPL-Lizenz, GPL-Lizenz oder BSD-Lizenz versehenen Quellcodes dürfen beliebig verändert und vertrieben werden.
Bei der MPL und GPL müssen aber Änderungen veröffentlicht werden und bleiben unter der MPL lizenziert, bei der GPL gilt dies auch für Erweiterungen.
Steht eine Datei unter mehreren Lizenzen, darf man eine davon wählen.
Genauere und rechtskräftige Informationen sollten den Dateien bei liegen.
Braucht jemand unbedingt eine andere Lizenz, kann er mir eine E-Mail schicken.

Titel Beschreibung Sprache Lizenz
Farbauswahldialog Ein Farbauswahldialog mit RGB- und HLS-Auswahlmöglichkeiten Delphi GPL
Internet Tools Template-basierter HTML-Parser, Autoupdateklasse und HTTP-Verbindungswrapper FPC GPL
Diagram-Tools Eine Diagrammkomponente, basierend auf einem Model/View-System FPC/Lazarus GPL
Non-VCL Canvas Eine Konvertierung des Delphi-Canvas nach Non-Vcl. Delphi MPL, GPL
BBUtils Häufig benötigte Funktionen, die einem bei FPC fehlen. FPC GPL
Diffreader Eine Unit zum Lesen und Schreiben von Unified Diffs. FPC GPL
TCVirus Eine Unit/Komponente zum Entwickeln von Scherzprogrammen Delphi MPL, GPL
TCommandLineReader Eine Unit zum Lesen von Kommandozeilenparametern FPC, Delphi GPL
TAutoUpdater Eine Unit für ein automatisches Progammupdate FPC GPL
SimpleBrowser Ein kleiner, IE-basierter Browser (Delphi), (EXE) GPL
Huffmankomprimierer Eine Funktionssammlung für Huffman(de-)komprimierung. Delphi MPL, GPL

 Farbauswahldialog

GPL
Dieser Farbauswahl ähnelt dem Windowsstandarddialog, bietet aber mehr Möglichkeiten:
  • Es werden alle Komponenten von RGB und HLS angezeigt.
  • Man kann in einem Farbverlauf eine beliebige Komponente von RGB/HLS ändern
  • Diese Komponente wird sowohl in Abhängigkeit von den beiden anderen angezeigt wie auch unabhängig
  • Die beiden anderen Komponenten können in einem 2D-Farbverlauf ausgewählt werden
  • Dieser wird jeweils in Abhängigkeit der anderen Komponente angezeigt
  • Zusätzlich kann man eine Liste von änderbaren Farben anzeigen
screenshot:example screenshot:example


Download (16 KB ) zur Übersicht

 Internet Tools

GPL
Dieses Package besteht aus drei Teilen, die alle aufeinander aufbauen:
Der HTML Parser benutzt zum Auswerten einer HTML-Seite eine in einer HTML-ähnlichen Sprache geschriebene Templatedatei. So kann man praktisch die zu parsende Datei mit minimalen Änderungen als Template benutzen und auch schnell an Änderungen der geparsten Seite anpassen. (Hat man zum Beispiel ein Datenbankfrontend, das unterschiedliche Datenbankeinträge anzeigt, so kann man aus einem einzigen dieser Einträge ein Template erstellen, mit dem der HTML Parser automatisch sämtliche dieser Einträge auswerten kann)
Der HTTP-Verbindungswrapper ermöglicht es dynamisch zwischen Wininet (auf allen Windowscomputern vorhanden) und Synapse (platform-unabhängig, aber muss installiert werden) umzuschalten.
Mit der Autoupdateklasse ist es einfach, ein Programm um ein Autoupdate zu erweitern, bei dem das Update automatisch aus dem Internet geladen und dann wahlweise auch installiert wird.
  • Parser:
  • Templates lassen sich einfach aus einer html-Datei erstellen/updaten
  • Es kann alle Teile der html Datei (außer Kommentaren) lesen
  • Die Seite wird automatisch in den richtigen Ausgabezeichensatz konvertiert
  • Die Templatesprache enthält reguläre Ausdrücke
  • Die Sprache unterstützt optionale Elemente, Schleifen und If-Anweisungen
  • HTTP-Wrapper:
  • Erlaubt GET/POST-Übertragungen über http und https mit Fortschrittsanzeige
  • Verwendet entweder die Windowsstandardlibrary Wininet oder das platformunabhängige Synapsepackage
  • Auto update:
  • Verwendet ein XML-Format, um auf dem Server die aktuelle Version und das Changelog zu speichern.
  • Erlaubt unterschiedliche Updates für 32/64-bit Linux/Windows und BSD-Platformen
  • Überprüft, ob es eine neue Version gibt, indem nur eine kleine Datei (statt dem Changelog) heruntergeladen wird
  • Erlaubt das Ausführen beliebiger Kommandozeilenparameter


Onlinereferenz

Download (124 KB ) zur Übersicht

 Diagram-Tools

GPL
Diese Unit zur Anzeige eines Diagrammes folgt einem ähnlichen Model/View-Konzept wie QT: Es gibt eine View-Komponente, welches die in einem Model gespeicherten Daten anzeigt und eine dazugehörige, abstrakte Modelklasse.
Dies ist sehr viel flexibler als der traditionelle Weg, bei welchem die Daten der anzeigenden Komponente direkt zugeordnet sind.
Features:
  • Model/View-Konzept mit automatische Synchronisation zwischen Views, welche identische Models zeigen
  • Füllen mit horizontalem/vertikalen Farbverlauf und unterschiedliche Linien/Punktstyles
  • Interpolation durch Geraden oder Splines möglich
  • Die Diagrammwerte können je nach Einstellung vom Benutzer verändert werden
  • Mehrere mögliche Achsen und Punktreihen mit samt einer Legende für letztere
  • Automatische Bereichswahl, Verarbeitung von Fließkommawerten
  • Standardmodels, mit Punktlisten, zyklischen Listen und einem Model zur Verknüpfung anderer Modelle
  • Es gibt eine Hilfedatei
screenshot:grid like screenshot:filled


Download (68 KB ) zur Übersicht

 Non-VCL Canvas

MPL, GPL
Diese Quellcodesammlung ermöglicht es die üblichen Funktionen des Delphicanvas ohne die VCL-Codes zu benutzen, indem für jede VCL-Funktion eine Methode existiert, die direkt die entsprechende GDI-Funktion auffruft.
Ihre wichtigsten Elemente sind:
  • Funktionen zum Zeichnen von Ellipsen, Linien, Rechtecken und Polygonen.
  • Funktionen zum Kopieren von Bildausschnitten.
  • Funktionen zur Ausgabe von Text.
  • Klassen zur Einstellung von Vorder- und Hintergrundfarbe.
  • Eine Klasse zum Einstellen von Fonteigenschaften.
  • Eine Hash-klasse und ein Ressourcenmanager.
In einigen Bereichen sind sie den Delphimethoden sogar überlegen, so kann man beispielweise den Text auch gedreht ausgeben.
Es gibt eine ausführliche HTML-Doku, in der alle Funktionen beschrieben sind.

Download (28 KB ) zur Übersicht

 BBUtils

GPL
In diesen Units habe ich einige kleine Funktionen gesammelt, die einem bei der Programmierung mit FPC ständig fehlen. Mit den Funktionen kann man:
  • Automatische Übersetzung von mit tr['markierten String'] und Lazaruskomponenten
  • Arrayelemente einfügen, löschen und Arrays invertieren
  • Eine Funktion in einem anderen Thread ausführen.
  • Unterschiedliche pchar/string-Vergleichsfunktionen
  • Stringzerlegung, Zeichensatzänderung, String laden/speichern
  • Bernoulli-Wahrscheinlichkeitsrechnung


Onlinereferenz

Download (36 KB ) zur Übersicht

 Diffreader

GPL
Mit dieser Unit kann man ein Unified Diff in ein strukturiertes Format einlesen, verarbeiten und wieder als gültiges Diff speichern
  • Liest Unified Diffs für eine oder mehrere Dateien
  • Erzeugt gültige Diffs
  • Besitzt Funktionen um unnötige Daten zu entfernen (siehe mein Programm Simplify Diff)


Download (4 KB ) zur Übersicht

 TCVirus

MPL, GPL
TCvirus hat (unter anderem) folgende Funktionen:
  • Es liefert einen Canvas für das direkte Zeichnen auf den Bildschirm, unabhängig von geöffneten Fenstern.
  • Man kann den Bildschirm spiegeln
  • Es liefert Windowshandle für wichtige Objekte, wie dem Startbutton, der Taskleite und des Desktops, über die sie dann verändert werden können.
  • Man kann das Programm vor dem Taskmanager verstecken.
  • Man kann die CD-Schublade öffnen und schließen.
Da TCvirus ursprünglich eine Komponente war, gibt es zwei Units: Eine mit den eigentlichen Funktionen, und eine Komponente, die einen Wrapper für die erste Unit darstellt.
Will man die Komponente ohne die VCL nutzen, benötigt man meinen Non-VCL Canvas, der aber im Ziparchiv enthalten ist.

Download (68 KB ) zur Übersicht

 TCommandLineReader

GPL
Dies ist ein Kommandozeilenparser, der sowohl mit Delphi wie auch mit Free Pascal (unter Linux nicht getestet) funktioniert.
Im Gegensatz zu den meisten anderen Kommandozeilenparser, muss man vor Benutzung die erlaubten Parameter definieren, was es erweiterte Parsingmöglichkeiten erlaubt. Die genauen Funktionen sind:
  • Automatische Typumwandlung in einen angegeben Typen
  • Automatische Anzeige aller erlaubten Parameter
  • Linux und Windowsstyleparameter werden erkannt
  • Verschiedene Eingabemöglichkeiten für Flags
  • Anführungszeichen werden erkannt
  • Existierende Dateien mit Leerzeichen im Namen auch ohne Verwendung von Anführungszeichen einlesbar


Download (8 KB ) zur Übersicht

 TAutoUpdater

GPL
Hiermit kann man in ein Programm ein automatisches Update übers Internet einbauen.
Um die Klasse benutzen zu können, braucht man eine wininet-Unit, die die Windowsinternetfunktionen enthält. (oben gibt es eine neuere Version, die ein besser konfigurierbares XML-Format verwendet) Funktionen:
  • Erkennen neuer Versionen
  • Download dieser
  • Ersetzen des eigenen Programms unter Windows NT und 9x-Schiene
  • Erkennen von Rechtemangel unter (Windows NT,...)


Download (12 KB ) zur Übersicht

 SimpleBrowser

GPL
Dies ist ein kleiner Browser, der auf dem Internet Explorer basiert.
Für einen Normaluser ist er vollkommen nutzlos, sein Aussehen kann aber beim Aufruf durch Kommandozeilenparameter festgelegt werden, was manchmal recht praktisch ist, wenn man nur eine bestimmte Seite anzeigen will.

Download (196 KB ) zur Übersicht

 Huffmankomprimierer

MPL, GPL
Diese Unit ermöglicht die (De-)Kompression von Strings mit dem Huffmanverfahren. In dem entstehenden, komprimierten String wird jedes Zeichen nicht mehr mit 8 Bit gespeichert, sondern die Bitlänge ist variabel, so dass häufige Zeichen mit weniger Bits als seltene gespeichert werden.
Es ist auch möglich Unicodestring, Arrays und Dateien zu komprimieren, indem sie von den entsprechenden Funktionen einfach als Ansistring interpretiert werden.
Die Unit läuft auch ohne die VCL.
Besonders eignet sich das Verfahren für normale Texte und andere Daten, wo einige wenige Zeichen sehr oft wiederholt werden. In beinahe jedem Fall ist die Kompressionsrate aber geringer als von modernen Komprimierungsverfahren, wie Rar oder Ace.

Download (16 KB ) zur Übersicht

www.benibela.de/sources_de.html
Inhalt zuletzt geändert: 2010-01-01 01:03:06+0100
Seite zuletzt geändert: 2010-02-07 23:46:30+0100