...locate on a non-indexed field in a TTable?
Author: Damian Gorski
{The following function can be added to your to your unit and called as follows:}
Locate(Table1, Table1LName, 'Beman');
{Table1 is your table component, Table1LName is TField you've add with the fields
editor (double click on the table component) and 'Beman' is the name you want to find.}
{Locate will find SValue in a non-indexed table}
function Locate(const oTable: TTable; const oField: TField;
const sValue: string): Boolean;
var
bmPos: TBookMark;
bFound: Boolean;
begin
Locate := False;
bFound := False;
if not oTable.Active then Exit;
if oTable.FieldDefs.IndexOf(oField.FieldName) < 0 then Exit;
bmPos := oTable.GetBookMark;
with oTable do
begin
DisableControls;
First;
while not EOF do
if oField.AsString = sValue then
begin
Locate := True;
bFound := True;
Break;
end
else
Next;
end;
if (not bFound) then
oTable.GotoBookMark(bmPos);
oTable.FreeBookMark(bmPos);
oTable.EnableControls;
end;
printed from
www.swissdelphicenter.ch
developers knowledge base