Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

DBGrid с номером строки

Delphi , Компоненты и Классы , TDBGrid

DBGrid с номером строки

Автор: Mark Meyer

Другой кибернетик придумал робота-андроида и настроил его на оптимальное выполнение задач. В качестве теста приказал ему принести 5 тысяч долларов. Робот вернулся через 2 минуты со страховкой маленького сына кибернетика.

Скомпилируйте это, и вы получите новый компонент с нужными свойствами:


unit RowGrid;

interface

uses
  WinTypes, WinProcs, Classes, Grids, DBGrids;

type
  TRowDBGrid = class(TDBGrid)
  public
    property Row;
    property RowCount;
    property VisibleRowCount;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Data Controls', [TRowDBGrid]);
end;

end.


{вот небольшой испытательный демо-проект.. мы
поместили на форму нашу сетку-наследницу, 3 компонента
EditBox и поместили следующий код в обработчик события
ondrawdatacell вашего TRowGrid}
procedure TForm1.RowDBGrid1DrawDataCell(Sender: TObject; const Rect:
  TRect; Field: TField; State: TGridDrawState);
begin
  eb_row.text := inttostr(rowdbgrid1.row);
  eb_rowcount.text := inttostr(rowdbgrid1.rowcount);
  eb_visiblerowcount.text := inttostr(rowdbgrid1.visiblerowcount);
end;

Вот перевод текста на русский язык:

Проект Delphi по созданию пользовательского компонента grid

Цель проекта - продемонстрировать, как создать новый компонент grid, который может отображать информацию о текущей строке, общем количестве строк и видимых строках.

Единица RowGrid

  • TRowDBGrid - класс, наследующийся от TDBGrid. Он добавляет три публичных свойства: Row, RowCount и VisibleRowCount.
  • Процедура Register регистрирует пользовательский компонент grid в Delphi, чтобы он мог быть использован в будущих проектах.

Имплементация

  • Процедура Register вызывается дважды. Это потому, что Delphi ожидает отдельный раздел implementation для процедуры Register.
  • В первой вызове Register пользовательский компонент grid регистрируется в категории "Data Controls".

Демо-проект

  • Демо-проект включает форму с экземпляром пользовательского компонента TRowDBGrid (именованным RowDBGrid1).
  • Три текстовых поля (eb_row, eb_rowCount и eb_visiblerowcount) размещены на форме.
  • Обработчик события DrawDataCell реализован для компонента grid. Это событие вызывается, когда клетка должна быть нарисована.
  • В обработчике события DrawDataCell, текст каждого текстового поля обновляется информацией о текущей строке:
    • eb_row.text устанавливается в значение RowDBGrid1.Row.
    • eb_rowCount.text устанавливается в значение RowDBGrid1.RowCount.
    • eb_visiblerowcount.text устанавливается в значение RowDBGrid1.VisibleRowCount.

Альтернативное решение

Если вы хотите отображать более информации о каждой строке, например, содержимое строки или дополнительные метаданные, вы можете модифицировать обработчик события DrawDataCell, чтобы получить эту информацию из связанного dataset компонента grid. Например:

procedure TForm1.RowDBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  eb_row.text := IntToStr(ROWDBGRID1.Row) + ': ' + Field.AsString;
   // ...
end;

В этом коде получается значение текущей строки и конкатенируется с именем поляusing двоеточие (:). Результатирующий текст затем отображается в текстовом поле.

В статье рассматривается создание компонента DBGrid с номером строки, а также пример использования его в приложении на языке Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TDBGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-20 08:31:54/0.0061600208282471/0