RAD Studio VCL Reference
|
Indicates whether the first record in the dataset is active.
property Bof: Boolean;
__property Boolean Bof;
Test Bof (beginning of file) to determine if the dataset is positioned at the first record. If Bof is true, the active record is unequivocally the first row in the dataset. Bof is true when an application.
Opens a dataset.
Calls a dataset's First method.
Call a dataset's Prior method, and the method fails because the first row is already active.
Calls SetRange on an empty range or dataset.
Bof is false in all other cases.
C++ Examples:
/* This example uses a button to copy the value of a field in the previous record into the corresponding field in the current record. */ /* To ensure that the button is disabled when there is no previous record, the OnDataChange event of the DataSource detects when the user moves to the beginning of file (BOF property becomes true), and disables the button. Detection occurs on scrolling and editing, not selection with the mouse. */ void __fastcall TForm1::DS2DataChange(TObject *Sender, TField *Field) { if (Customers->Bof) Button2->Enabled = False; else Button2->Enabled = True; } void __fastcall TForm1::Button2Click(TObject *Sender) { TBookmark SavePlace; Variant PrevValue; // get a bookmark so that we can return to the same record SavePlace = Customers->GetBookmark(); Customers->FindPrior();// move to prior record PrevValue = Customers->FindField("Field1")->Value; // get the value // Move back to the bookmark // this may not be the next record anymore // if something else is changing the dataset asynchronously Customers->GotoBookmark(SavePlace); Customers->Edit(); Customers->FindField("Field1")->Value = PrevValue; // set the value Customers->FreeBookmark(SavePlace); }
Delphi Examples:
{ This example uses a button to copy the value of a field in the previous record into the corresponding field in the current record. } procedure TForm1.Button1Click(Sender: TObject); var SavePlace: TBookmark; PrevValue: Variant; begin with Customers do begin { get a bookmark so that we can return to the same record } SavePlace := GetBookmark; try { move to prior record} FindPrior; { get the value } PrevValue := FindField('Field2').Value; {Move back to the bookmark this may not be the next record anymore if something else is changing the dataset asynchronously } GotoBookmark(SavePlace); { Set the value } Edit; FindField('Field2').Value := PrevValue; { Free the bookmark } finally FreeBookmark(SavePlace); end; end; end; { To ensure that the button is disabled when there is no previous record, the OnDataChange event of the DataSource detects when the user moves to the beginning of file (BOF property becomes true), and disables the button. Detection occurs on scrolling and editing, not selection with the mouse. } procedure TForm1.DS2DataChange(Sender: TObject; Field: TField); begin if Customers.Bof then Button1.Enabled := False else Button1.Enabled := True; end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|