Thema: Delphi DBase-Tabelle lesen

Einzelnen Beitrag anzeigen

nytaiceman

Registriert seit: 15. Dez 2005
Ort: Schweiz, Bern
58 Beiträge
 
Delphi XE3 Professional
 
#12

AW: DBase-Tabelle lesen

  Alt 30. Nov 2016, 10:47
Vielen Dank an Euch Alle!
Ich habe mich ein bisschen in TDBF eingearbeitet und kann nun meine DBF Dateien anzeigen.
Das folgende hilft vielleicht einem anderen Anfänger wie mir:

Delphi-Quellcode:
// 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;
Einfach ist nur einfach, wenn Einfach auch einfach ist!
Vermeintlich einfache Workarounds führen irgendwann zu Problemen!
  Mit Zitat antworten Zitat