self.tabBarItem.title, не работающий?

Минимальный пример проекта, приведенный ниже, практически точно копирует ваш проект, за исключением того, что он использует TClientDataSet в качестве набора данных вместо AddAim.

Он правильно показывает только одну строку. Поэтому проблема заключается в использовании TACRTable. Так что, если вам не повезет, и кто-то здесь не распознает проблему и не знает, как ее исправить, вам нужно решить проблему с помощью AddAim.

Код:

  type
    TForm1 = class(TForm)
      DataSource1: TDataSource;
      DBGrid1: TDBGrid;
      EmpGrpMember: TClientDataSet;
      procedure FormCreate(Sender: TObject);
    public
    end;

  [...]
  procedure TForm1.FormCreate(Sender: TObject);
  var
    AField : TField;
  begin
    AField := TStringField.Create(Self);
    AField.FieldKind := fkData;
    AField.FieldName := 'GroupGUID';
    AField.Size := 255;
    AField.DataSet := EmpGrpMember;

    AField := TStringField.Create(Self);
    AField.FieldKind := fkData;
    AField.Size := 255;
    AField.FieldName := 'GroupName';
    AField.DataSet := EmpGrpMember;

    EmpGrpMember.IndexDefs.Add('GroupGUID', 'GroupGUID', [ixPrimary, ixUnique]);
    EmpGrpMember.IndexDefs.Add('GroupName', 'GroupName', [ixUnique]);
    EmpGrpMember.IndexName := 'GroupName';

    EmpGrpMember.CreateDataSet;
    EmpGrpMember.InsertRecord(['123', 'www']);

  end;

Конечно, если вы можете повторить свою проблему, изменив вышеупомянутый проект, возможно, есть кое-что, на что стоит обратить внимание.

Обновление Чтобы отладить вашу проблему, установите обработчик для события DrawCell сетки, например,

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  DataCol := DataCol;
end;

Установите в нем точку останова. Когда точка останова сработает, вы обнаружите, что при трассировке источника VCL от него вы в конечном итоге получите цикл while внутри процедуры DrawCells в Grids.Pas. Проверка состояния while должна показать вам, почему вы получаете строку, отображаемую дважды.

12
задан Isaac Waller 4 April 2009 в 21:24
поделиться

1 ответ

Я нашел, использовал ли я self.navigationItem.title = 'Blah'; вместо self.title, это работало бы.

24
ответ дан 2 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: