AGB  ·  Datenschutz  ·  Impressum  







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

TListView: Permanenter vertikaler Scrollbar

Ein Thema von sundance · begonnen am 19. Jul 2006 · letzter Beitrag vom 24. Jul 2006
Antwort Antwort
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#1

TListView: Permanenter vertikaler Scrollbar

  Alt 19. Jul 2006, 09:22
Hallo DelphiFans,

(schon wieder ich...)
Wie kann ich es anstellen, dass bei einer ListView der vertikale Scrollbar permanent (und nicht nur bei Bedarf) angezeigt wird? Ich kann mich vage daran erinnern, dass man da mit SendMessage() was bewirken kann, aber ich kriege es nicht mehr hin...

.sundance.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 19. Jul 2006, 14:28
Hallo,

versuch es mal damit:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var AStyle: LongInt;
begin
  AStyle:=GetWindowLong(ListView1.Handle,GWL_STYLE);
  ShowScrollBar(ListView1.Handle,SB_VERT,True);
  SetWindowLong(ListView1.Handle,GWL_STYLE,AStyle);
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#3

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 20. Jul 2006, 08:27
Hallo Lannes,

danke für deinen Tip, leider erhalte ich nicht das gewünschte Ergebnis.
Es erscheint zwar am rechten Rand des Listviews ein Bereich, wo sonst der vertikale Scrollbar ist, doch der Scrollbar ist (so scheint es) irgendwie nicht fertig gezeichnet. Sieht merkwürdig aus... Außerdem ist mein eigentliches Problem immer noch vorhanden: Den Scrollbar wollte ich nur deshalb permanent haben, damit beim automatischen Auftauchen desselben (wenn die ListView zu scrollen anfängt) nicht auch noch ein horizontaler erscheint... Aber möglicherweise gehe ich das "Problem" auch falsch an und es gibt dafür eine viel einfachere Lösung...

.sundance.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 20. Jul 2006, 12:11
Hallo Sundance,

gut dass du deine eigentlichen Beweggründe noch aufgedeckt hast und ja, es gibt eine einfache Lösung: Setze bei einer Spalte in deiner ListView die Eigenschaft AutoSize auf True.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#5

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 20. Jul 2006, 14:29
Hallo marabu,

habe ich schon probiert; irgendwas mache ich wohl noch falsch:
Mein LogForm ist ganz simpel: Es enhält nur eine ImageListe und ein ListView (vsReport, ColumnHeader=false), und diese auch nur eine (hab's auch schon mit zweien probiert) TListColumn (AutoSize=true):

Auszug aus der dfm-Datei:
Delphi-Quellcode:
object LogForm: TLogForm
  Left = 209
  Top = 324
  Width = 450
  Height = 213
  BorderIcons = [biSystemMenu]
  Caption = 'LogForm'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Shell Dlg 2'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object LogListView: TListView
    Left = 0
    Top = 0
    Width = 442
    Height = 186
    Align = alClient
    Columns = <
      item
        AutoSize = True
      end>
    ShowColumnHeaders = False
    SmallImages = LogImageList
    TabOrder = 0
    ViewStyle = vsReport
  end
  object JvFormMagnet: TJvFormMagnet
    Active = True
    ScreenMagnet = False
    FormGlue = False
    MainFormMagnet = True
    Left = 296
    Top = 40
  end
  object LogImageList: TImageList
    Left = 264
    Top = 40
    Bitmap = {
    .....
    }

  end
end
Mit dieser Prozedur landen die Einträge in der Liste:
Delphi-Quellcode:
procedure TLogForm.WriteReportline(const S: String; ImgIndex: Integer);
begin
  with LogListView.Items.Add do begin
    ImageIndex := ImgIndex;
    Caption := TimeToStr(Now) + ': ' + S;
  end; { with }
  LogListView.Perform(WM_VSCROLL, SB_BOTTOM, 0);
end;
Und was soll ich sagen: Sobald die Scrollerei losgeht, erscheinen beide Scrollbalken...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 21. Jul 2006, 23:15
Hallo Sundance,

so funktioniert es bei mir:

Delphi-Quellcode:
procedure TDemoForm.CheckScrollBar;
var
  dwStyle: DWORD;
begin
  with ListView do
  begin
    dwStyle := GetWindowLong(Handle, GWL_STYLE);
    if dwStyle and WS_HSCROLL <> 0 then
      Columns[0].Width := ClientWidth;
  end;
end;

procedure TDemoForm.TimerTimer(Sender: TObject);
begin
  with ListView.Items.Add do
  begin
    Caption := RandomStr(50);
    Selected := True;
    MakeVisible(False);
    CheckScrollBar;
  end;
end;
Gute Nacht

marabu
Angehängte Dateien
Dateityp: zip lv-auto_295.zip (1,8 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#7

Re: TListView: Permanenter vertikaler Scrollbar

  Alt 24. Jul 2006, 10:11
Hallo marabu,

tausend Dank, jetzt funktionierts.
Schade daß man sowas triviales nicht einfach über Properties verfügbar gemacht hat.
Ich hoffe, du hast dir nicht meinetwegen die halbe Nacht um die Ohren geschlagen...

.sundance.
  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:10 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