CRDBGrid1 - запомнить/восстановить позицию

Обсуждение возникших проблем, предложений и ошибок MyDAC компонентов
Закрыто
Tekkerey
Сообщения: 2
Зарегистрирован: Вт 21 окт 2014 13:59

CRDBGrid1 - запомнить/восстановить позицию

Сообщение Tekkerey » Вт 21 окт 2014 14:02

Здравствуйте.

Хотелось бы запоминать позицию в гриде и возвращаться на нее, после обновления данных, а не на первую. Есть такое свойство? Обычно оно называется BookMark, но тут не нашел. Я новичек в использовании этого компонента. Правильно понимаю, что он больше не разрабатывается?

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: CRDBGrid1 - запомнить/восстановить позицию

Сообщение Alexp » Ср 22 окт 2014 05:40

Добрый день,

Свойство Bookmark есть у TDataSet. Для сохранения/восстановления позиции вы можете использовать следующий код:

Код: Выделить всё

var
  Bookmark: TBookmark;

procedure SavePos;
begin
  Bookmark := MyQuery1.Bookmark;
end;

procedure RestorePos;
begin
  if MyQuery1.BookmarkValid(Bookmark) then
    MyQuery1.GotoBookmark(Bookmark);
end;
P.S. Да, CRDBGrid больше не разрабатывается, мы исправляем в нем только критически ошибки.
Если Вам необходимо новая функциональность, то Вам придется реализовывать ее самостоятельно.

Tekkerey
Сообщения: 2
Зарегистрирован: Вт 21 окт 2014 13:59

Re: CRDBGrid1 - запомнить/восстановить позицию

Сообщение Tekkerey » Сб 25 окт 2014 11:00

Чудно. А подскажите, пожалуйста еще такой момент - как в этом прекрасном гриде сделать%

1. отображение текста из поля mediumtext. Показывается оно как memo.
2. сделать волшебную кнопку, которая переключала бы режимы грида: показывать кучу текста как ровно столько, сколько влезет в строку или показывать весь текст в строке, даже если строка будет больше, чем сам грид.

Спасибо.

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: CRDBGrid1 - запомнить/восстановить позицию

Сообщение Alexp » Пн 27 окт 2014 07:00

Для отображения текста из таких полей, Вам необходимо в событии поля onGetText присвоить параметру Text значения этого поля как строку:

Код: Выделить всё

procedure TForm14.MyQuery1f_textGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  Text := Sender.AsString;
end;

Закрыто