Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.418 Beiträge
 
Delphi 7 Professional
 
#2

AW: Gleiches Programm für 2 Tabellen, eines mit einem zusätzlichen Feld

  Alt 7. Dez 2017, 18:44
Vor dem Table.Open ein Table.Fields.Clear.
Die Feldliste wird automatisch beim Öffnen der Tabelle befüllt. Die Definition der Felder mit dem FieldDefs-Kollektionseditor ist nur erforderlich, wenn man die Tabelle mit Table.CreateTable erstellen will.

Hat man Felder im Quelltext definiert, z. B.:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
...
  public
    fID : TField;
    fRootUrl : TField;
    fPostUrl : TField;
...
dann kann man Table ein BeforeClose-Ereignis zuordnen:
Delphi-Quellcode:
procedure TForm1.TableBeforeClose(DataSet: TDataSet);
begin
  fID := Nil;
  fRootUrl := Nil;
  fPostUrl := Nil;
...
und ein AfterOpen-Ereignis:
Delphi-Quellcode:
procedure TForm1.TableAfterOpen(DataSet: TDataSet);
begin
  fID := Table.FindField('ID');
  fRootUrl := Table.FindField('RootUrl');
  fPostUrl := Table.FindField('PostUrl');
...
Greift man nun im Programm irgendwo auf so ein Feld zu, weiß aber nicht, ob man es überhaupt zur Verfügung hat (hier also bei der alten Tabelle), könnte man das in etwa so machen:
Delphi-Quellcode:
if Assigned(fID) then begin
  ShowMessage(fID.AsString);
end;
  Mit Zitat antworten Zitat