Welcome Guest, you are in: Anmelden

CP Wiki

RSS RSS

Navigation



  1. Administration

Suche im wiki
»

function GetBookmark

RSS
Modified on 02/02/2009 15:22 by CPABED Categorized as Plattform
Syntax:
function GetBookmark: TBookmark;


Beschreibung:

Die Methode GetBookmark weist dem aktiven Datensatz in der Datenmenge eine Positionsmarke zu.

Mit GetBookmark können Sie für den aktiven Datensatz in der Datenmenge eine Positionsmarke einrichten. Anschließend können Sie jederzeit zu diesem Datensatz zurückkehren.

GetBookmark setzt voraus, dass bereits eine Variable für die Positionsmarke (in Delphi vom Typ TBookmark) in der Anwendung deklariert ist. Verwenden Sie GetBookmark, um der Variablen einen Wert zuzuweisen. Dieser Wert kann dann in späteren Aufrufen von GotoBookmark und FreeBookmark verwendet werden.

Die durch den Aufruf von GetBookmark zugewiesenen Systemressourcen müssen mit FreeBookmark wieder freigegeben werden, wenn die Positionsmarke nicht mehr benötigt wird.

Hinweis: GetBookmark verwendet eine als protected deklarierte Methode, die den Wert der Positionsmarke abruft. Nachkommen von TDataSet stellen durch die Implementierung dieser Methode ihre spezielle Unterstützung für Positionsmarken bereit. Unidirektionale Datenmengen unterstützen keine Positionsmarken. Wenn Sie GetBookmark für solche Datenmengen aufrufen, erhalten Sie einen bedeutungslosen Wert.
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;


ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.