allegro-C OpenSource
a99 / a99a / a99d / alcarta
Quellcodes für die Erstellung der .exe's unter Windows/VisualStudio 2010
Achtung: NUR die .rc-Datei und program.h sind für a99/alcarta/a99a/a99d unterschiedlich.
Projektdateien (von VisualStudio erstellt und verwaltet)
VC6:
a99.dsw / alcarta.dsw allg. Projektdatei
a99.dsp / alcarta.dsp eine Art make-Datei f. VisualStudio
VC10:
a99.vcxproj / Projektdatei (Struktur XML)
*** Spezifische Dateien
program.h
darin steht, ob es a99, a99a, a99d oder alcarta werden soll
a99.rc / a99a.rc / alcarta.rc
Konfigurierung der Oberflächenobjekte ("resources")
*** Nur diese Dateien sind spezifisch f. a99 bzw. a99a bzw. alcarta,
Alle anderen Dateien sind identisch
resource.h
#defines f.d. Oberfl.Objekte (Zuordnung von Nummern zu den symb. Namen aus der .rc)
alcarta und a99a verwenden dieselbe Datei, aber jeweils nicht alle Nummern daraus
Grundlagen
Diese zwei werden als Libraries eingebunden (genauso in acon und osdp).
Die Quellen liegen auf zwei parallelen Verzeichnisse ac15 und aindex zum Quellenverzeichnis von a99.
ac15 : Klassenbibliothek (KONFIG, RECORD, EXET, INDEX, ABASE)
aindex : Index-Kernfunktionen (Erstellung und Zugriff)
Das eigentliche Programmpaket : Basiert auf Windows Foundation Classes (WFC)
Win-Standard f. "vorkompilierte Headerdatei" *.pch
stdafx.cpp
stdafx.h
WINDOWS oder UNIX, nur fuer rpnfind.cpp
platform.h
Anwendungs-Rahmenklasse f.d. Dialoganwendung (kein Eingriff noetig)
ca99.cpp
ca99.h
Hauptprogramm: darin FLEX-Interpreter, Oeffnen der Unterfenster u.a.
Es handelt sich um eine Dialog-Anwendung (Klasse CDialog)
nicht um eine Dokument-Anwendung! (Kl. CDocument)
a99.cpp enth. FLEX-Interpreter: Funktion FLEXecute()
und die Abarbeitung aller Menu- und Button-Funktionen
Unterfenster haben eigene Quellmodule, s.u.
a99.h
Hauptelemente (jeweils CDialog-Fenster, aus a99.cpp geoeffnet)
A. Die zwei wichtigsten, unverzichtbaren
A.1. Window für den Index
winx.cpp
winx.h
A.2. Window für Kurz- u. ViewListen: d.h. Ergebnismengen- und ViewListenfenster
wkv.cpp
wkv.h
B. Sechs andere
B.1. Aresqa-Fenster (oft f. laengere Auswahlen oder Menues genutzt)
aresqa.cpp
aresqa.hn
B.2. FernglasFormular f. find-Funktion
wfind.cpp
wfind.h
B.3. Dialog f. Glob. Ersetzungen
glob.cpp
glob.h
B.4. FormularKlasse (CDialog, FLEX: form ...)
aform.cpp
aform.h
B.5. Subfield Dialog (CDialog, Teilfeld-Editor. Wohl selten genutzt!)
subfield.cpp
subfield.h
B.6 Besen (CDialog)
acleanup.cpp
acleanup.h
C. Unterelemente mit eigenen Fenstern sowie abgeleitete Klassen
Die Erweiterung der Basisklassen, z.B. CButton, ist jeweils wegen der
Größenänderung nötig, auch wegen der Funktionstasten (F5, F7)
z.T. auch wegen anderer Zusatzfunktionen
C.1 Eigene Button-Klasse (von CButton abgeleitet)
abutton.cpp
abutton.h
C.2 Einzeiliges EingabeFeld (CDialog, FLEX: ask ...)
getl.cpp
getl.h
C.3 Einzeiliges EingabeFeld f. Passwort (CDialog, FLEX: ask @...)
getp.cpp
getp.h
C.4 Klasse f.mehrzeiliges Editfeld (von CEdit)
aedit.cpp
aedit.h
C.5 eigene RichEditKlasse (von CRichEditCtrl, Anzeigefeld)
Sonderfunktionen: Phrasen, Flips, rechte Maustaste
ariched.cpp
ariched.h
C.6 Eigene ComboBoxKlasse (von CComboBox abgeleitet)
für Eingabefelder mit Auswahl der vorherigen Eingaben, z.B. Suchbefehle
acombo.cpp
acombo.h
C.7 eigene SelectBoxKlasse (CDialog, FLEX: select ...)
selbox.h
selbox.cpp
C.8 eigene ListBoxKlasse (von CListBox, f. Erg.Menge und ViewListe)
alistbox.cpp
alistbox.h
C.9 MessageBox mit Timer (CDialog, FLEX: Mes ...)
msg.cpp
msg.h
C.10 eigene ProgressCtrl-Klasse (von CProgressCtrl, Forschritts-Balken)
aprogr.h
aprogr.cpp
Sonstige wichtige Prozeduren
Nachschauen, ob Datenbank auf dem angeforderten Verz. existiert
lookford.cpp
Komplexen Suchbefehl parsen (in RP-Notation wandeln)
parser.cpp
parser.hpp
Komplexen Suchbefehl ausfuehren (nachdem vom parser erstellt)
nutzt index.cpp (in ac15)
rpnfind.cpp
rpnfind.hpp
RegEx-Klasse f. das Suchen im iV-Text
regex.cpp
re_fail.cpp
regex.h (f. FLEX srx ...)
UB Braunschweig 2012-11-26, B.Eversberg