Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: [TListView] Spaltenbreitensumme immer X?

  Alt 3. Aug 2006, 11:56
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 }
Heiko
  Mit Zitat antworten Zitat