AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[TListView] Spaltenbreitensumme immer X?

Ein Thema von xZise · begonnen am 3. Aug 2006 · letzter Beitrag vom 3. Aug 2006
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[TListView] Spaltenbreitensumme immer X?

  Alt 3. Aug 2006, 10:25
Wie kann ich in einem TListView (ViewStyle = vsReport) die Spaltenbreite dynamisch machen?
d.h. das die Summe aller Splaten immer die Breite des Listview ist? Gibts da eine einstellmöglichkeit?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#2

Re: [TListView] Spaltenbreitensumme immer X?

  Alt 3. Aug 2006, 10:51
Probier mal, die Breite der hintersten Spalte auf LVSCW_AUTOSIZE_USEHEADER bzw. ColumnHeaderWidth zu setzen.

HTH, Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
hoika

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

Re: [TListView] Spaltenbreitensumme immer X?

  Alt 3. Aug 2006, 10: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz