Sorry to find so many.. Well glad this is still the beta release

In the TVTDb class, you have an initialized property, with FInit being the 'reader' for the property. Use use the variable maybe 5 times: one time in the Create (FInit := False and as checks in SetFileName, SetOpenMode and other properties.

My point: You have forgotten to set FInit to True after a succesful Initialize;

My temporary bugfix inside VTDbUnit.pas (TVTDb.Initialize, line 275):

[pascal]
// Read-only mode opens existing file
opReadOnly:
Result:= UpdateKeys();
end;

if Result = errNone then { Lines added since they should have }
FInit := True; { been here in the first place.. }
end;[/pascal]

While I am at it... :twisted:

[pascal]
TOpenModes = (opUpdate, opOverwrite, opReadOnly);
[/pascal]

This is the declaration of TOpenModes. For as far I am aware the 'standard' is that the first few letters of an enumerated type's value are the first letters of the words the name of the enumerated type is composed from. (TBorderStyle - bsNone, bsSingle or TWindowState - wsMinimized, wsMaximized). So I think the declaration should be this:

[pascal]
TOpenModes = (omUpdate, omOverwrite, omReadOnly);
[/pascal]

No need to thank me :twisted: :twisted:

[Edit]
BlueCat, it seems the BOLD and perhaps the other styles too, act weird when placed inside a pascal tag. Wanted to use them for clearification

:idea: They should declare May 31 as a International Bugfinding festival :idea:
[/Edit]