Web-Site Dr. Grigo
Delphi-Quellen

Inhalt:

Delphi-Quellen:


RTF-Editor  (Mappe: "RTF-Editor")  

Delphi-Quelldaten eines einfachen RTF-Editors. Das Programm kann als Text-Editor für TXT- und RTF-​Dateien genutzt werden. Derartige Anwendungen stehen genügend zur Verfügung (z.B. Microsoft Word­Pad). Die Quelldaten sind jedoch für weitergehende Projekte gedacht, wo ein derartiger Editor Vorausset­zung ist. Der Editor besitzt alle üblichen Bedienelemente. Bild 1 zeigt die Oberfläche des Programms, wobei hier jedoch keine Bilder möglich sind.


RTF-Editor (grafikfähig)  (Mappe: "RTF-Editor-grafik")  

Delphi-Quelldaten eines einfachen RTF-Editors, bei dem, im Ge­gensatz zum erstgenannten, auch Bild-​Daten vom Typ BMP, RTF oder ICO eingefügt werden können. Die RTF-Dateien mit den Bildern können u.a. mit WordPad gelesen werden. Der Bestimmungszweck der Quell ist der gleiche wie oben. Die Bild-Daten vom Typ BMP können entweder über Copy Paste oder mit der Menüfunktion "Insert Picture" in den Text ein­gefügt werden. Daten vom Typ JPG oder ICO können nur mit der Menüfunktion eingefügt werden.

Oberfläche des Programms
Bild 1: Oberfläche des Editors

Memo-Editor-Unit  (Mappe: "Memo-Editor-Unit")  

Die Unit ist als Ergänzung für Delphi-Programme gedacht, die mit Text-Dateien arbeiten. Man erhält einen voll­wertigen Editor auf TMemo-Basis.
Der Editor wird über
procedure ShowMemoEditor(F:TForm;const Capt:String);
created. Dabei ist F die aufrufende Form. Capt ist die Caption für das Window. Bei Capt='' wird diese automatisch erzeugt. Der Editor kann beliebig oft aufgerufen werden. Über "Kennung" (0...) kann der aktuelle identifiziert werden.
Für ein sauberes Beenden ist es notwendig, daß im Hauptprogramm unter "FormClose"
DestroyAllMemoEditors;
aufgerufen wird.

Memo-Editor.gif
Oberfläche des Memo-Editors

КАОS-Editor  (Mappe: "K_Editor")  

Das Programm ist ein einfacher RTF-Editor, der für die Bedürfnisse beim Editieren von Dateien des Typs "KEI" modifiziert wurde. Er ist nicht dafür geeignet, К А О S-Quellen von Grund auf neu zu erfassen. Das muß mit dem System К А О S selbst erfolgen, da mit dem Editor allein die Wahrscheinlichkeit von Syntaxfehlern groß ist.
Das Programm kann natürlich auch zum Editieren beliebiger RTF- oder TXT-Dateien benutzt werden.
Für den Editor gibt es drei Arbeitsmodi:

Modus 1Editieren von К А О S-Quellen
Der Modus stellt sich ein beim Öffnen einer Datei vom Typ KEI oder Anlegen einer neuen Datei mit dem Tool-Button "New File". Es stehen eine Reihe Service-Leistungen, die nur für К А О S- Quellen einen Sinn haben, zur Verfügung.
Modus 2Editieren von RTF-Dateien
Der Modus ist nach Programmstart eingestellt, nach Öffnen einer Datei vom Typ RTF oder dem Anlegen einer neuen Datei mit dem Tool-Button "New File" und Abbruch des darauf folgenden Dialogs.
Modus 3Editieren von Text- und sonstigen Dateien
Der Modus stellt sich ein beim Öffnen einer Datei, die nicht vom Typ KEI oder RTF ist. Er unter­scheidet sich äußerlich nicht vom Zweiten, nur bei der Ausgabe wird das RTF-Format unterdrückt. Wurde eine gewöhnliche Text-Datei geladen, kann bei dieser ohne Probleme eine Textformatierung (und damit Umschaltung auf Modus 2) erfolgen und der neue Text als RTF-Datei gespeichert wer­den.

Bei den Modi 1 und 2 können mit Hilfe von Tasten-Kombinationen К А О S-Sonderzeichen in den Text eingefügt werden. Über den betreffenden Tool-Button können Dateien in Directories gesucht und geöffnet werden.

Tool-Leisten

Tool-Leisten der Programm-Oberfläche bei den verschiedenen Arbeitsmodi,
oben im Modus 2 oder 3, unten im Modus 1, dazu die Erklärung der Tool-Buttons

{Letzte Änderung: Version 1.0.2 (1.11.2016)}


Minimaler HTML-Browser (Mappe: "HTML-Browser")  

Ein minimaler HTML-Browser, der als selbstständiges Leseprogramm für spezielle HTML-Files genutzt oder als Hilfsunit für HTML-Manuals in Delphi-Projekte eingebaut werden kann


TEdit für Sonderzeichen  (Mappe: "SonderZeichenEdit")  

Es bestand der Wunsch, mit einem Nachkommen von TEdit (hier "TSZEdit" genannt) Sonderzeichen aus der Schrift "Symbol", gemischt mit Zeichen des ANSI-Codes, erfassen und in TRichedit platzieren und von dort wieder herauslesen zu können.
Da nur eine begrenzte Anzahl von Sonderzeichen interessant ist, wäre es am einfachsten, eine eigen Schrift zu schaffen. Da diese aber auf vorhandene Schriften zurückgreifen müßte, ständen urheberrechtliche Bedenken dem im Wege.
Betrachte man die Windows-Zeichensätze, so fällt auf, daß der Kode-Bereich von 127 bis 191 für die euro­päischen Sprachen nur wenige relevante Zeichen enthält. Man kann also in diesem Bereich maximal 68 interessante Sonderzeichen in einer Tabelle definieren, die Zeichen bei Ein- und Ausgabe mit dieser Tabelle zu konvertieren, sonst aber im Programmablauf (z.B. in Strings) mit dem neuen Kode arbeiten. Die Abbildung der Sonderzeichen in TSZEdit kann über die Canvas von TEdit erfolgen. Das Eintragen in und Auslesen aus TRichEdit erfolgt mit Bearbeitung der Zeichenformatierung.

TSZEdit

{Letzte Änderung: 1.11.2016}


ListBox mit Bildern  (Mappe: "ListBox with Pictures")  

Testprogramm für eine ListBox mit Bildern. Das folgende Bild zeigt das Test-Programm.

Picture_ListBox

Testprogramm: Icon im Infobereich der Windows-Taskleiste  (Mappe: "Icon im Infobereich")  

Ein kleines Testprogramm, welches das Minimieren einer Form und Einfügen eines Icons in den Infobereich des Windows-Taskbars demonstriert.


Dir_List  (Mappe: "Dir_List")  

Das Hilfsprogramm "Dir_List" dient zur Darstellung der Directory- bzw. der Datei-Hierarchie auf einem Laufwerk oder Sub-Directory auf ihm.
Das Bild zeigt die Oberfläche des Programms.

Oberfläche Dir_List
Oberfläche des Programms "Dir_List"

Mit der Combobox und der Directory-Listbox wählt man das Start-Directory aus. Mit der Checkbox "+ Sub-Dirs" kann man festlegen, daß auch alle Subdirectories durchsucht werden.
Ist die Checkbox "nur Dirs" gesetzt, so wird nur die Directory-Hierarchie aufgelistet. Im andern Fall erfolgt eine Auflistung der Datei-Hierarchie. In dem für den Datei-Typ vorgesehenem Feld kann man festlegen, welche Datei-Typen berücksichtigt werden sollen ("*.*" bedeutet z.B. alle Typen, "*.txt" nur Textdateien). Ist das Genannte nach Wunsch eingestellt, betätigt man den Button "Dir Ok" und gibt damit den Start-Button frei.
Im Bedienfeld "Listenstil" kann man das Aussehen der rechten Liste, welche die Ergebnisse der bevorstehenden Suche anzeigt, beeinflussen. Mit den drei Checkboxen "Abc","ABC" oder "abc" legt man fest ob die Originalschreibweise der Namen verwendet werden soll, ob alles groß oder alles klein geschrieben werden soll.
Bei gesetzter Checkbox "mit Dir-Text" werden die vollständigen Dateipfade gelistet. Im andern Falle werden nur die Dateinamen ohne Pfad ausgeschrieben. Das Setzen der Checkbox "Dir-Filter" bewirkt, daß die Hierarchie übersichtlich dargestellt wird, wie es auf dem Bild zu sehen ist. Die einzelnen Directory-Namen in den Pfaden werden beim ersten Auftreten ausgeschrieben, dann zur besseren Übersichtlichkeit weggelassen, statt dessen werden senkrechte Linien dargestellt. Mit dem Button "Start" löst man den Suchvorgang aus, der eine kurze Zeit dauern kann.
Nach erfolgreicher Suche wird der Button "Save" freigegeben. Mit ihm kann man ein Speichern der Ergebnisse als Text-Datei veranlassen.
Mit der rechten Maustaste öffnet man ein Kontext-Menü mit den Punkten "About","Dir_List Help" und "Copy to Clipboard". Der Zugriff zur HTML-Hilfsdatei steht nur zur Verfügung, wenn diese im Programm-Directory gefunden wurde. Der letztgenannte Menüpunkt steht zur Verfügung, wenn in der Liste eine oder mehrere Zeilen markiert wurden. Man kann damit diese mit den vollständigen Pfadangaben in die Windows-Zwischenablage speichern.


Programm zum File-Suchen   (Mappe: "SearchProgram")  

File Suchen

Das Hilfsprogramm "Suchen" dient zum Finden von Directories oder Dateien ab einem Start-Directory in der Directory-Hierarchie eines Laufwerks. Dabei erfolgt auf Wunsch auch die Suche in Subdirectories.
Das Programm kann folgende Aufgaben erledigen, die man mit der Combobox "Aufgabe" auswählt:

- Suche aller Directories,
- Suche aller Directories mit einer vorgegebenen Zeichenfolge im Namen,
- Suche aller Dateien eines vorgegebenen Typs,
- Suche aller Dateien mit einer vorgegebenen Zeichenfolge im Namen,
- Suche aller editierbaren Dateien mit einer vorgegebenen Zeichenfolge im Inhalt,
- Suche aller Grafik-Dateien,
- Suche aller Grafik-Dateien mit einer vorgegebenen Zeichenfolge im Namen.

Die Ergebnisse werden in einer Ergebnisliste angezeigt, deren Inhalt als Text-Datei ausgegeben, kopiert oder gedruckt werden kann. Das obige Bild zeigt ein Beispiel der Ergebnisliste nach erfolgreicher Suche mit aufgeklapptem Kontextmenü. Ist nur eine Zeile markiert, so bietet das Kontextmenü, welches man durch Klick mit der rechten Maustaste öffnet, das Kommando "Open selected File". Mit ihm kann man die ausgewählte Datei öffnen. Handelt es sich nicht um ein Programm, so wird die Datei mit der dazugehörigen Standard-Anwendung geöffnet. Weiterhin werden die Funktionen "goto Directory", mit der man den Windows-Explorer mit dem Directory der File öffnet, und die Funkion "Show Properties" angeboten, mit der man die Datei-Eigenschaften ansehen kann.


Unit "DirDialog" (Mappe: "Dirdialog")  

Ein Dialog zur Directory-Auswahl. (Auf Wunsch kann der Dialog mit oder ohne "Make Dir-Taste" generiert werden.)

DirDialog

Universelles Object zum Directory- oder File-Suchen  (Mappe: "universelle FindUnit")  

Die bei Directory- und File-Suche notwendige Folge von FindFirst- und FindNext-Aufrufen wurde in einem universellen Object zusammengefaßt, welches für die verschiedensten Suchaufgaben genutzt werden kann. Die Steuerung erfolgt über Flags, Properties und Events. Folgende Suchaufgaben sind möglich:

- Zählen aller Directories oder Files (unter den in den folgenden Zeilen genannten Randbedingungen)
- Suche aller Directories oder Files
- Suche aller Directories oder Files mit einer vorgegebenen Zeichenfolge im Namen,
- Suche aller Dateien eines vorgegebenen Typs,
- Suche aller Dateien einer vorgegebenen Typengruppe (Verwendung eier externen Procedure),
- Suche aller editierbaren Dateien mit einer vorgegebenen Zeichenfolge im Inhalt
(Verwendung einer externen Procedure).

Ein "FontDialog" mit reduziertem Angebot an Schriften  (Mappe: "a Short FontDialog")  

Ein Font-Dialog, der aus der Vielzahl der Screen-Schriften nur ausgewählte Namen anbietet. Auf Wunsch kann auch der Font-Parameter "CharSet" eingestelt werden.

MyFontDialog

Ein minimaler "FindDialog"  (Mappe: "a Short FindDialog")  

Häufig wird für kleine Editoren oder ähnliche Textprogramme ein einfacher Find-Dialog ohne zusätzliche Optionen gewünscht. Für diesen Zweck wurde der "ShortFindDlg" geschaffen. Mit ihm wird in Texten ohne Berücksichtigung von Groß-/Kleinschreibung und ohne Beachtung von Wordgrenzen gesucht.
Das Handling des Dialogs wird in "Test_ShrtFindDialog.Unit1" demonstriert. Das Programm ist gleichzeitig ein Beispiel für eine Suche in einem TMemo-Text.

ShrtFindDlg

Unit "MyMessages"  (Mappe: "My MessageDlgs")  

Eine Unit mit einen universellen, zentrierbaren Message-Dialog ("MyMessageDlg") und einer zentrierbaren ShowMessage ("CenterdShowMessage"). Das folgende Bild zeigt das Test-Programm "Test_MyMessageDlg".

MyMessageDlg

Testprogramm + Funktions-UP's: Besselfunktionen J0(x), J1(x) und Neumannfunktionen N0(x), N1(x)   (Mappe: "Test Bessel-Fkt")  

Ein kleines Testprogramm für die Unterprogramme mit den Reihenentwicklungen der genannten Funktionen.


Unit für komplexe Berechnugen unter Delphi 7
    (Mappe: "Math_Units", Unit: "Math_komplex_D.pas")  

Sammlung einer Vielzahl (57) von Prozeduren und Funktionen zur komplexen Rechnung, insbesondere für Berechnungen mit komplexen 2x2-Matrizen. Grundprinzipien sind:
Die komplexen Zahlen werden im Format "Extended" als record (x,y) oder gleichwertig als array[1..2] dargestellt. Die meisten math. Operationen werden über Proceduren ausgeführt, wobei ein komplexer Akkumulator (kac) Anwendung findet. Außerdem wird ein skalarer Akkumulator (sac) als Zwischenspeicher verwendet. Für weniger genaue Rech­nungen wird parallel eine Arithmetik auf Basis vom Format "Double" angeboten.


Unit für analytische Geometrie unter Delphi 7
    (Mappe: "Math_Units", Unit: "analytic_Gometry_D.pas")  

Sammlung einer Vielzahl (33) von Prozeduren und Funktionen zur analytischen Geometrie der Ebene.
Grundprinzipien sind:

Die Vektoren werden im Format "Extended" als record (x,y) dargestellt oder äquivalent dazu, als array [1..2]. Bei vielen Operationen findet ein komplexer Akkumulator (kac) Anwendung. Außerdem wird als Zwischenspeicher ein skalarer Akkumulator (sac) verwendet. Bei Richtungsvorgabe wir der Richtungsvektor verwendet (Länge = 1). Das folgend Bild zeigt vier Funktionen als Beispiel.
analytische Geometrie

Modifizierte Gleitkomma-Konvertierung   (Mappe: "Test FloatOut")  

Eine Funktion, welche die Ausgabekonvertierung von Gleitkommazahlen auf Basis der Delphi-Function "FloatToStrF" verbessert. Ein kleines Testprogramm, welches das Ergebnis der Function bei verschiedenen Parametern demonstriert.


Farbverlauf   (Mappe: "FarbVerlauf")  

Programm zum Erzeugen einer Bitmap mit einem Farbverlauf zwischen anzugebenden Grenzen (z.B. für einen HTML-Hintergrund)

linearer Farbverlauf
Oberfläche des Programms, Generierung eines linearen Farbverlaufs

symmetrischer Farbverlauf
Generierung eines symmetrischen Farbverlaufs

Farbtausch in Bitmaps, jpg- oder png-Files   (Mappe: "FarbTausch")  

Mit dem Hilfsprogramm können von einer Bild-Datei als Quelle (bmp-, jpg-, jpeg- oder png-File) pixelweise die Farbpunkte getauscht werden. Die Farben werden in den drei Komponenten R (rot), G (grün) und B (blau) zerlegt betrachtet. Dementsprechend erfolgen die Farbeinstellungen. Die Farbkomponenten werden dezimal und hexadezimal angezeigt. Sie werden mit Scroll-Schiebern eingestellt. Erfüllt ein Farbpunkt die Suchbedingungen, so wird er durch die eingestellte Zielfarbe ersetzt.

Oberfläche FarbTausch
Oberfläche des Programms "Farbtausch"

Das Bild zeigt die Oberfläche des Programms. Mit → File → Open öffnet man eine Quelldatei. Es erscheint ein Fenster mit dem Bild der Quelle. In der Status-Leiste wird der Name der Quelle und die Cursorposition bei Bewegung des Mauszeigers über dem Bild angezeigt. Mit Klick der rechten Maustaste auf einen Bildpunkt wird dessen Farbe in der Status-Leiste angezeigt und wird als Text im Clipbord gespeichert. Klickt man mit der rechten Maustaste auf die Farb-Felder "Farbbereich" oder "Zielfarbe", so wird diese Farbe dorthin übertragen. Ein Klick mit der linken Maus-Taste auf diese Felder startet einen Color-Dialog.
Mit Klick auf die Taste "Change" wird der Farbtausch gestartet. Ist die Check-Box "Farbtonvergleich" nicht aktiviert, werden alle Farbpunkte, deren Farbkomponenten innerhalb der eingestellten Grenzen liegen, getauscht. Ist die Check-Box aktiviert, werden nur Punkte berücksichtigt, deren Farbton inerhalb der Grenzen liegt.
Im Kontrollbild wird der durchgeführte Farbwechsel angezeigt. Mit → File → "Save" oder "Save as" kann das geänderte Bild gespeichert werden.
Die folgenden Bilder zeigen ein Beispiel vor und nach Tausch der Hintergrundfarbe.

Beispiel vor Farbtausch

Beispiel nach Farbtausch

Farb-Vergleich und Farb-Test   (Mappe: "ColorTest")  

Oft ist es notwendig, eine geeignete RGB-Farbe zu finden, z.B. für einen HTLM-Hintergrund, oder sich einen Eindruck über die Wirkung einer Farbe vor einem bestimmten Hintergrund zu verschaffen oder zwei Farben zu vergleichen. Für diese Zwecke wurde das Programm "ColorTest" geschaffen. Das folgende Bild zeigt die Oberfläche des Programms. Mit der linken ScrollBar-Gruppe kann man die Hintergrundfarbe (das äußere Feld) und mit der rechten die Testfarbe (das inner Feld).
Im Bild ist das aufgeklappte Kontextmenü zu sehen.

- Mit der Funktion "Save Sample to Clipboard" übernimmt man eine 50x50-Pixel-Bitmap mit der Farbe ins Clip-
board.
- Mit der Funktion "Color-Code to Clipboard" übernimmt man den RGB_Code der Farbe als Text ins Clipboard.
- Mit der Funktion "Save Sample to File" öffnet man einen Save-Dialog zur Auswahl des Namens einer BMP-File
mit einer 50x50-Pixel-Bitmap mit der Farbe.
- Mit der Funktion "Get Color from Dialog" öffnet man einen Color-Dialog zur Auswahl einer Farbe.
- Mit der Funktion "Get Sample from Clipboard" wird erwartet, daß sich eine Bitmap oder ein String mit einem
RGB-Farb-Code im Clipboard befindet. Bei einer Bitmap wird diese intern geöffnet und die Farbe des Mittel-
punktes übernommen.
- Mit der Funktion "Get Sample from File" öffnet man intern eine BMP-File, und die Farbe des Mittelpunktes
übernommen.

Auf welchen Bereich (Hintergrund- oder Test-Farbe) sich die Funktionen beziehen, hängt davon ab, wohin man mit der rechten Maustaste zum Öffnen des Kontextmenüs geklickt hat.

ColorTest

Scroll-Bar-Block für RGB-Farben für Delphi 7   (Mappe: "ColorScrollBars")  

Bei Programmen, welche sich mit Farben beschäftigen, werden oft Scrollbars für die drei Farb-Komponenten benötigt. Um den Aufwand bei der Programmierung zu minimieren, wurden zwei Objekte geschaffen, welche die dazu notwendigen Komponenten in einer GroupBox zusammen fassen. In der Unit "ColorSB_Unit" wurden diese definiert ("TColorScrollBarsV" als vertikale und "TColorScrollBarsH" als horizontale Version). Das folgende Bild zeigt die Oberfläche des Testprogramms für die horizontale Version, die vertikale kann man am Beispiel des Programms "ColorTest" studieren.

ColorScrollBars

Computergrafik: "Fractale"   (Mappe: "Computergrafik/Fractale")  

Vor 35 Jahren fand ich ein Computer-Grafik-Programm auf Basis von Fraktalen. Der Algorithmus wurde von mir experimentell verändert. Es wurden außerdem Zufallsfunktionen für die Startparameter und die Pixel-Farben eingebaut. Heraus kam das angebotene Programm, mit dem man interessante Kreis-Muster (ein Beispiel, s. Bild) erzeugen und, wenn sie gefallen, abspeichern kann. Das damalige Turbo-Pascal-Programm wurde in jüngerer Zeit in Delphi umgeschrieben.

Beispiel für Fractale

Computergrafik: "PC_Art"   (Mappe: "Computergrafik/PC_Art")  

Das Programm "PC_Art" entstand parallel zum Programm "Fractale". Es basiert auf Henon-Abbildungen. Der Algorithmus wurde experimentell verändert, so daß in der Regel interessante Bilder erzeugt werden (s. Bild).

Beispiel für PC_Art

Wecker   (Mappe: "Wecker")  


Ein Wecker-Programm, das sich dadurch aus­zeichnet, daß die Einstellung der Weckzeit anlog durch Ziehen des Weckzeigers mit gedrückter linker Maustaste er­folgt, die Weckzeit aber digital angezeigt wird. Links wird die aktuelle und rechts die Weck-Zeit angezeigt. Der Knopf dazwischen dient zur Aktivierung des Weckers. Er erscheint dann rot. Wird bei aktiviertem Wecker auf die Taste zum Minimieren gedrückt, so verschwindet das Fenster vom Display und erscheint als Symbol im Infobereich des Windows-Taskbars.
Wecker

Information zum Download des Paketes  

Datei "Delphi-Sources.zip"
Datenvolumen:   13.6 MB,  entpackt:   52.3 MB
Format: kompr. Windows-Ordner (ZIP-Archiv)

alle Quellen

download
Bemerkung:
Den Ordner Delphi_Sources aus dem ZIP-Archiv in einen beliebigen unkomprimierten Ordner ko­pieren.


E-Mail to: Kontakt@Grigo-SHF.de