![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с bookmark
_qwerty_ © (2011-11-30 12:17:00)Нужно восстанавливать позицию курсора в датасете после FindKey. Корректен ли такой код?
function TGroups.Exists(Id: Integer): Boolean;
var
Bookmark: TBookmark;
begin
Bookmark := FGroupsTable.GetBookmark;
try
Result := Find(Id); // <- внутри функции вызывается FindKey,
// который позиционирует курсор на найденную в датасете запись.
finally
if FGroupsTable.BookmarkValid(Bookmark) then
FGroupsTable.GoToBookmark(Bookmark);
FGroupsTable.FreeBookmark(Bookmark);
end;
end;
Ega23 (2011-11-30 12:43:00) [1]
> пользователь из 1С будет его вызывать и проверять существование
> группы, в этом случае Disable/Enable Controls не нужны?
Выполни сначала свой код.
Потом вот такой:
function TGroups.Exists(Id: Integer): Boolean;
var
Bookmark: TBookmark;
begin
FGroupsTable.DisableConrols;
try
Bookmark := FGroupsTable.GetBookmark;
try
Result := Find(Id); // <- внутри функции вызывается FindKey,
// который позиционирует курсор на найденную в датасете запись.
finally
if FGroupsTable.BookmarkValid(Bookmark) then
FGroupsTable.GoToBookmark(Bookmark);
FGroupsTable.FreeBookmark(Bookmark);
end;
finally
FGroupsTable.EnableConrols;
end;
end;
Почувствуй разницу.
_qwerty_ (2011-11-30 12:30:00) [2]а если Exists - метод класса ком-сервера. пользователь из 1С будет его вызывать и проверять существование группы, в этом случае Disable/Enable Controls не нужны?
Ega23 (2011-11-30 12:20:00) [3]Корректен.
Ega23 (2011-11-30 12:20:00) [4]Я бы ещё Disable/Enable Controls добавил, чтобы грид не прокручивался.