Hallo,
die folgende Funktion setzt eine Spalte "autosize".
Sie muss in FormActivate und im OnResize des Forms aufgerufen werden.
Heiko
Delphi-Quellcode:
{
name:
SetWithToFillClient
usage:
to set the width of the column
to fill the complete listview
parameter:
theListView - the listview
theColNo - the column number
return parameter:
return:
notes:
- column number starts with zero !
}
class procedure TListViewToolClass.SetWithToFillClient(
theListView: TListView; theColNo: Integer);
var
iWidth : Integer;
iCurCol : Integer;
begin
// verfügbar Breite
iWidth := theListView.ClientWidth;
// Breite aller Spalten (bis auf letzte Spalte) abziehen
for iCurCol:= 0 to theListView.Columns.Count-1 do
begin
if iCurCol<>theColNo then iWidth:= iWidth-theListView.Columns[iCurCol].Width;
end;
// falls ein Rest übrigblieben ist, die letzte Spalte anpassen
if iWidth > 0 then
begin
theListView.Columns.BeginUpdate;
theListView.Columns[theColNo].Width:= iWidth;
theListView.Columns.EndUpdate;
theListView.Invalidate;
end;
end; { TListViewToolClass.SetWithToFillClient }