Hallo Allerseits,
nachdem nun im ersten Teil geklärt wurde wie ein dBase-Datenbankzugriff grundsätzlich realiesiert wird, hier nun die Steigerung.
Die Delphi Erweiterung
Topaz erlaubt die Möglichkeit mit sog. virtuellen Dateien zu arbeiten.
Dies bedeutet lediglich, dass die dBase-Datei zunächst in den Speicher geladen und dann dort verarbeitet wird.
Welche Vor- oder Nachteile dies hat, soll hier nicht Thema sein.
Ziel soll es vielmehr sein, ein vorhandenes Programm welches mit den Grafikkomponenten von Topaz implementiert wurde, so zu ändern, dass dies alles zur Laufzeit erstellt wird und ohne die Grafikkomponenten auskommt.
Hier zunächst der vorhandene Quellcode:
Delphi-Quellcode:
unit UTest;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ucommon, tzprimds, utzcds, utzmds, StdCtrls;
type
TForm1 =
class(TForm)
TzVFile1: TTzVFile;
TzVFile1NAME: TStringField;
TzVFile1AGE: TTzFloatField;
TzVFile1AMOUNT: TTzFloatField;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
TzVFile1.Open;
TzVFile1.Append;
TzVFile1NAME.AsString:='
Max Mustermann';
TzVFile1AGE.AsFloat:=88.88;
TzVFile1AMOUNT.AsInteger:=100;
TzVFile1.Post;
TzVFile1.WriteToDisk;
end;
end.
Das Beispielprogramm ist absichtlich einfach gehalten.
Zunächst wird die Verbindung zur dBase-Datei und ein Button auf einem Formular erzeugt.
Wenn der Button gedrückt wird, wird ein neuer Datensatz in die dBase-Datei eingefügt.
Das war es auch schon.
Die zugehörige
dfm-Datei sieht so aus:
Delphi-Quellcode:
{kein Delphi-Quellcode, sondern der Inhalt der dfm-Datei}
object Form1: TForm1
Left = 1283
Top = 316
Width = 398
Height = 252
Caption = '
Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.
Name = '
MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 64
Top = 24
Width = 75
Height = 25
Caption = '
Button1'
TabOrder = 0
OnClick = Button1Click
end
object TzVFile1: TTzVFile
DbfFields.Strings = (
'
name, C, 30, 0'
'
age, F, 18, 8'
'
amount, N, 10, 2')
DbfFileName = '
junk.dbf'
HideDeletedRecs = False
TableLanguage = tlOem
Left = 24
Top = 24
object TzVFile1NAME: TStringField
FieldName = '
NAME'
Size = 30
end
object TzVFile1AGE: TTzFloatField
FieldName = '
AGE'
Size = 18
end
object TzVFile1AMOUNT: TTzFloatField
FieldName = '
AMOUNT'
Size = 10
end
end
end
Das Problem besteht nun darin, die grafische Implementierung durch eine reine Quellcode-Implementierung auszutauschen.
Bisher ist mir dies nicht gelungen und ich hoffe, dass hier im Forum jemand Erfahrung damit hat.
Im Dateianhang das Objektinspektor-Fenster von TTzVFile (Topaz-Komponente), dass Formular (Delphi 5) und die dBase-Datei.