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.
|
|