Syntax:
procedure FreeBookmark(Bookmark: TBookmark);
Beschreibung:
Die Methode FreeBookmark gibt die Ressourcen eines bestimmten Bookmark-Objekts frei.
Mit FreeBookmark kann ein vorhandenes Bookmark-Objekt freigeben und anschließend erneut zugewiesen werden. Wird das Objekt nicht mehr benötigt, gibt die Methode den von ihm belegten Speicher frei.
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;