TVertGrid — TStringGrid с возможностью заполнения в design-time
Автор: Дмитрий Логинов
Компонент TVertGrid представляет собой модифицированный TStringGrid.
В стандартный компонент добавлена возможность в режиме Design-time заполнять первую колонку (property Labels) и первую строку (property Titles) грида.
Если набранных строк в Labels больше, чем задано количество строк самого TVertGrid, то они будут автоматически добавлены. Аналогично и с количеством колонок (Titles).
При уменьшении строк в свойствах Labels и Titles, количество строк и колонок самого грида не будет уменьшаться.
На скриншоте показано редактирование списка заголовков колонок. Количество строк в Titles это количество заполненных колонок первой строки.
Компонент очень прост и вы можете модифицировать его по своему собственному желанию.
unit VertGrid;
interfaceuses
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;
publicconstructor Create(AOwner: TComponent); override;
published// Первая колонкаproperty Labels: TStrings read GetLines write SetLines;
// Первая строкаproperty Titles: TStrings read GetTitles write SetTitles;
end;
procedureRegister;
implementationprocedureRegister;
begin
RegisterComponents('Samples', [TVertGrid]);
end;
constructor TVertGrid.Create(AOwner: TComponent);
begininherited Create(AOwner);
ColCount := 2;
DefaultRowHeight := 16;
end;
procedure TVertGrid.SetLines(Value: TStrings);
beginif Value.Count > RowCount then
RowCount := Value.Count;
Cols[0].Assign(Value);
end;
procedure TVertGrid.SetTitles(Value: TStrings);
beginif 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.
Компонент TVertGrid - модифицированный TStringGrid, позволяющий заполнять первую колонку и строку в режиме design-time.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS