powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Что делает kbmMemTable.MoveCurRecord?
11 сообщений из 11, страница 1 из 1
Что делает kbmMemTable.MoveCurRecord?
    #39612704
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, подскажите что делает метод kbmMemTable.MoveCurRecord?
Ожидал, что переместит активную запись вверх или вниз.
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612707
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scorpion235, можно подсмотреть ...
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612798
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блогодарю, прокачал версию 7.70.00 > 7.74.00
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612829
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// Move record to the specified destination.
function TkbmCustomMemTable.MoveCurRecord(Destination: TkbmNativeInt): Boolean;
begin
Result := MoveRecord(RecNo,Destination);
end;
Переместите запись в указанное место назначения.
Но по факту что-то никуда не двигает
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612833
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
scorpion235// Move record to the specified destination.
function TkbmCustomMemTable.MoveCurRecord(Destination: TkbmNativeInt): Boolean;
begin
Result := MoveRecord(RecNo,Destination);
end;
Переместите запись в указанное место назначения.
Но по факту что-то никуда не двигает
а должна ?
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612852
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, хотелось бы
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612854
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
scorpion235defecator, хотелось бы
так загляни внутрь MoveRecord
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612856
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, перестраивает индекс, по факту записи не меняются местами

kbmMemTable.pas// Record rearranging.

// Move record from one place in table to another.
// Only rearranges the roworder index.
function TkbmCustomMemTable.MoveRecord(Source, Destination: TkbmNativeInt): Boolean;
var
p: Pointer;
begin
Result := False;
if FCurIndex<>Indexes.FRowOrderIndex then exit;

{Because property RecNo has values 1..FRecords.Count
and FRecNo has values 0..FRecords.Count - 1}
Dec(Source);
Dec(Destination);

if (Source <> Destination) and (Source > -1) and (Source < FCurIndex.FReferences.Count)
and (Destination > -1) and (Destination < FCurIndex.FReferences.Count) then
begin
p:=FCurIndex.FReferences[Source];
FCurIndex.FReferences.Delete(Source);
FCurIndex.FReferences.Insert(Destination,p);
Result:=true;
end;
end;
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612867
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
scorpion235defecator, перестраивает индекс, по факту записи не меняются местами

kbmMemTable.pas// Record rearranging.

// Move record from one place in table to another.
// Only rearranges the roworder index.
function TkbmCustomMemTable.MoveRecord(Source, Destination: TkbmNativeInt): Boolean;
var
p: Pointer;
begin
Result := False;
if FCurIndex<>Indexes.FRowOrderIndex then exit;

{Because property RecNo has values 1..FRecords.Count
and FRecNo has values 0..FRecords.Count - 1}
Dec(Source);
Dec(Destination);

if (Source <> Destination) and (Source > -1) and (Source < FCurIndex.FReferences.Count)
and (Destination > -1) and (Destination < FCurIndex.FReferences.Count) then
begin
p:=FCurIndex.FReferences[Source];
FCurIndex.FReferences.Delete(Source);
FCurIndex.FReferences.Insert(Destination,p);
Result:=true;
end;
end;
а зачем физически переносить данные записи,
если достаточно изменить позицию данных в списке ?
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39612871
scorpion235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, самописный код смены позиции двух записей в DataSet'е уже есть, думал у kbmMemTable есть готовое решение
...
Рейтинг: 0 / 0
Что делает kbmMemTable.MoveCurRecord?
    #39613252
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scorpion235самописный код смены позиции двух записей в DataSet'е уже естьхмм, позиция записи определяется сортировкой в выбранном индексе, либо внутренней реализацией датасета когда индекса/сортировки нет, так что не особо понятно о каком коде речь
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Что делает kbmMemTable.MoveCurRecord?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]