// Auf der Form liegen:
// DataSource1 : TDataSource;
// DBF1 : TDBF;
// DBGrid1 : TDBGrid;
// BT_openDBClick : TButton;
// Als globale Variable
var
CurrentDbf : TDbf;
// Eine DBF Datei auswählen
procedure TForm1.BT_openDBClick(Sender: TObject);
begin
SelectDB;
end;
// Eine DBF Datei anzeigen
procedure TForm1.SelectDB;
var
sDBFile :
String;
begin
with TFileOpenDialog.Create(
nil)
do
try
if Execute
then begin sDBFile := Filename
end;
finally
Free;
end;
if length(sDBFile) < 1
then exit;
ResetDBHandle;
CurrentDbf := TDbf.Create(
nil);
try
CurrentDbf.FilePathFull := ExtractFileDir(sDBFile);
CurrentDbf.TableName := ExtractFileName(sDBFile);
CurrentDbf.Exclusive := True;
CurrentDbf.TableLevel := 3;
DataSource1.DataSet := CurrentDbf;
DBGrid1.DataSource := DataSource1;
CurrentDbf.Open;
LabeledEdit1.Text := IntToStr(CurrentDbf.ExactRecordCount);
except
on E :
Exception do MessageDlg(E.ClassName +#13#10 +E.
Message,mtError, [mbOK], 0);
end;
end;
// Zurücksetzen einer allenfalls geöffneten DB
procedure TForm1.ResetDBHandle;
begin
if assigned(CurrentDbf)
then
begin
CurrentDbf.Close;
CurrentDbf.Free;
LabeledEdit1.Text := '
';
end;
end;
// Schliessen der Applikation
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ResetDBHandle;
end;
// Verändern der Applikationsgrösse
procedure TForm1.FormResize(Sender: TObject);
begin
DBGrid1.Width := DBGrid1.Parent.Width -22;
DBGrid1.Height := DBGrid1.Parent.Height -DBGrid1.Top -40;
end;