Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#1

dBase-Datenbanken mit Topaz-Erweiterung - Teil 2

  Alt 1. Jun 2010, 17:55
Datenbank: dBase • Zugriff über: Topaz
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.
Miniaturansicht angehängter Grafiken
objektinspektor_eigenschaften_von_ttzfile_141.jpg   form_463.jpg  
Angehängte Dateien
Dateityp: zip junk_192.zip (202 Bytes, 3x aufgerufen)
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat