powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGridEh - ошибка "при работе с закладкой"
5 сообщений из 5, страница 1 из 1
DBGridEh - ошибка "при работе с закладкой"
    #32185887
mpro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что сие означает?
Возникает сволочь не постоянно а иногда после замены данных в гриде
...
Рейтинг: 0 / 0
DBGridEh - ошибка "при работе с закладкой"
    #32185900
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а чё за закладка то?
...
Рейтинг: 0 / 0
DBGridEh - ошибка "при работе с закладкой"
    #32185907
mpro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пока с ними не разбиралься но ошибка вываливается в этой функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
function TDBGridEhSelectionRect.BoxRect(ALeft: Integer; ATop: TBookmarkStr;
  ARight: Integer; ABottom: TBookmarkStr): TRect;
var OldRec: Integer;
  TopGridBM, BottomGridBM: TBookmarkStr;
  TopRow, BottomRow: Integer;
  SwapCol: Integer;
  SwapBM: TBookmarkStr;

  function FindRecNumByBookmark(BM: TBookmarkStr): Integer;
  var i: Integer;
  begin
    Result := - 1 ;
    for i :=  0  to FGrid.FDataLink.RecordCount -  1  do
    begin
      FGrid.FDataLink.ActiveRecord := i;
      with FGrid.DataSource.DataSet do
        if CompareBookmarks(Pointer(BM), Pointer(Bookmark)) =  0  then
        begin
          Result := i;
          Break;
        end;
    end;
  end;
begin
  if ALeft > ARight then
  begin
    SwapCol := ALeft;
    ALeft := ARight;
    ARight := SwapCol;
  end;
  if FGrid.DataSource.DataSet.CompareBookmarks(Pointer(ATop), Pointer(ABottom)) >  0  then
  begin
    SwapBM := ATop;
    ATop := ABottom;
    ABottom := SwapBM;
  end;
  OldRec := FGrid.FDataLink.ActiveRecord;
  try
    FGrid.FDataLink.ActiveRecord :=  0 ;
    TopGridBM := FGrid.DataSource.DataSet.Bookmark;
    if FGrid.DataSource.DataSet.CompareBookmarks(Pointer(ATop), Pointer(TopGridBM)) <  0  then
      TopRow :=  0 
    else begin
      TopRow := FindRecNumByBookmark(ATop);
    end;
    if TopRow = - 1  then TopRow := FGrid.FDataLink.RecordCount;
    TopRow := TopRow + FGrid.TopDataOffset;

    FGrid.FDataLink.ActiveRecord := FGrid.FDataLink.RecordCount -  1 ;
    BottomGridBM := FGrid.DataSource.DataSet.Bookmark;

    if FGrid.DataSource.DataSet.CompareBookmarks(Pointer(ABottom), Pointer(BottomGridBM)) >  0  then
      BottomRow := FGrid.VisibleDataRowCount
    else begin
      BottomRow := FindRecNumByBookmark(ABottom);
    end;
    BottomRow := BottomRow + FGrid.TopDataOffset; // -  1 ;
  finally
    FGrid.FDataLink.ActiveRecord := OldRec;
  end;

  Result := FGrid.BoxRect(FGrid.DataToRawColumn(ALeft), TopRow,
    FGrid.DataToRawColumn(ARight), BottomRow);
//
end;
...
Рейтинг: 0 / 0
DBGridEh - ошибка "при работе с закладкой"
    #32185909
mpro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на этой строчке

if FGrid.DataSource.DataSet.CompareBookmarks(Pointer(ATop), Pointer(ABottom)) > 0 then
...
Рейтинг: 0 / 0
DBGridEh - ошибка "при работе с закладкой"
    #32186229
Andrei_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня такие ошибки были когда закладки уже нет (например квери закрыл открыл перед этим, или строку удалил на которую ссылается)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGridEh - ошибка "при работе с закладкой"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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