Создайте новое приложение VCL Forms и вставьте TListview
в его форму:
object ListView1: TListView
Left = 0
Top = 80
Width = 514
Height = 150
Align = alBottom
Columns = <
item
Caption = 'Caption'
Width = 100
end
item
Caption = 'AColumn'
Width = 100
end
item
Caption = 'BColumn'
Width = 100
end>
Items.ItemData = {
055A0000000100000000000000FFFFFFFFFFFFFFFF02000000FFFFFFFF000000
00054900740065006D0031000A5300750062004900740065006D004F006E0065
00603449440A5300750062004900740065006D00540077006F0048334944FFFF
FFFF}
TabOrder = 0
ViewStyle = vsReport
ExplicitLeft = 192
ExplicitTop = 128
ExplicitWidth = 250
end
Затем поместите две кнопки Button1
и Button2
в форму, чтобы элемент формы выглядел следующим образом:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;
type
TForm3 = class(TForm)
ListView1: TListView;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
ListView1.Column[2].AutoSize := True;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
ListView1.Width := ListView1.Width + 1;
end;
end.
Запустите приложение.Нажмите на Button1
, который устанавливает свойство AutoSize
третьего столбца на True
: это должно увеличить ширину третьего столбца до границы ListView.Однако это изменение становится видимым только при использовании следующих обходных путей:
Чтобы увеличить ширину формы, перетаскивая край формы с помощью мыши, или:
Нажмите вторую кнопку, которая делает то же самое программно.
Но как я могу программно обновить заголовки столбцов, не используя эти обходные пути?