Eigenschaft Bof

Komponenten
Syntax:
Eigenschaft Bof: Boolean


Beschreibung:


Die Eigenschaft Bof gibt an, ob der erste Datensatz der Datenmenge aktiv ist.

Mit Bof (Beginning Of File) können Sie feststellen, ob der erste Datensatz der Datenmenge aktiv ist, also eindeutig die erste Zeile in der Datenmenge darstellt.
In diesem Fall hat die Eigenschaft den Wert true. Bof erhält den Wert true, wenn in einer Anwendung eine der folgenden Aktionen durchgeführt wird:

Eine Datenmenge wird geöffnet. Die Methode First einer Datenmenge wird aufgerufen.
Die Methode Prior einer Datenmenge wird aufgerufen und schlägt fehl, weil der erste Datensatz bereits aktiv ist.
Die Methode SetRange wird für einen leeren Bereich bzw. eine leere Datenmenge aufgerufen.


In allen anderen Fällen hat Bof den Wert false.

Beispiel:

//In diesem Beispiel wird eine Schaltfläche verwendet, um den Wert eines Feldes im vorhergehenden Datensatz in das entsprechende Feld des aktuellen Datensatzes zu kopieren.

procedure TForm1.CopyDataClick(Sender: TObject);

var SavePlace: TBookmark; PrevValue: Variant; begin with MyData do begin { Positionsmarke abrufen, damit wir zum selben Datensatz zurückkehren können } SavePlace := GetBookmark; try

{ Zu vorhergehendem Datensatz wechseln }

FindPrior;

{ Wert abrufen }

PrevValue := Fields0.Value;

{ Zurück zu Positionsmarke wechseln.

Dies ist aber nicht mehr der nächste Datensatz, wenn die Datenmenge asynchron geändert wird. } GotoBookmark(SavePlace); { Wert zuweisen } Fields0.Value := PrevValue; { Positionsmarke freigeben } finally FreeBookmark(SavePlace); end; end;

end;

Damit die Schaltfläche deaktiviert wird, wenn kein vorhergehender Datensatz vorhanden ist, wird über das Ereignis OnDataChange des DataSource-Objekts ermittelt, ob der Benutzer zum Anfang der Datei gelangt ist (Eigenschaft BOF wird true). Ist dies der Fall, wird die Schaltfläche deaktiviert.

procedure TForm1.MyDataDataChange(Sender: TObject; Field: TField);

begin if MyData.Bof then CopyData.Enabled := False else CopyData.Enabled := True; end;