Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
TVertGrid — TStringGrid с возможностью заполнения в design-time

Автор: Дмитрий Логинов

Компонент TVertGrid представляет собой модифицированный TStringGrid.

В стандартный компонент добавлена возможность в режиме Design-time заполнять первую колонку (property Labels) и первую строку (property Titles) грида.

Если набранных строк в Labels больше, чем задано количество строк самого TVertGrid, то они будут автоматически добавлены. Аналогично и с количеством колонок (Titles). При уменьшении строк в свойствах Labels и Titles, количество строк и колонок самого грида не будет уменьшаться.

На скриншоте показано редактирование списка заголовков колонок. Количество строк в Titles это количество заполненных колонок первой строки.

Компонент очень прост и вы можете модифицировать его по своему собственному желанию.

Скачать VertGrid.Zip (1K)

Исходный код компонента:


unit VertGrid;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, stdctrls;

type
  TVertGrid = class(TStringGrid)
  protected
    { Protected declarations }
    procedure SetLines(Value: TStrings);
    function GetLines: TStrings;
    procedure SetTitles(Value: TStrings);
    function GetTitles: TStrings;
  public
    constructor Create(AOwner: TComponent); override;
  published

    // Первая колонка
    property Labels: TStrings read GetLines write SetLines;
    // Первая строка
    property Titles: TStrings read GetTitles write SetTitles;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TVertGrid]);
end;

constructor TVertGrid.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  ColCount := 2;
  DefaultRowHeight := 16;
end;

procedure TVertGrid.SetLines(Value: TStrings);
begin
  if Value.Count > RowCount then
    RowCount := Value.Count;

  Cols[0].Assign(Value);
end;

procedure TVertGrid.SetTitles(Value: TStrings);
begin
  if Value.Count > ColCount then
    ColCount := Value.Count;

  Rows[0].Assign(Value);
end;

function TVertGrid.GetLines: TStrings;
begin
  result := Cols[0];
end;

function TVertGrid.GetTitles: TStrings;
begin
  result := Rows[0];
end;

end.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay