![]() |
TListView: Permanenter vertikaler Scrollbar
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. |
Re: TListView: Permanenter vertikaler Scrollbar
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; |
Re: TListView: Permanenter vertikaler Scrollbar
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. |
Re: TListView: Permanenter vertikaler Scrollbar
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 |
Re: TListView: Permanenter vertikaler Scrollbar
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:
Mit dieser Prozedur landen die Einträge in der Liste:
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
Delphi-Quellcode:
Und was soll ich sagen: Sobald die Scrollerei losgeht, erscheinen beide Scrollbalken...
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; |
Re: TListView: Permanenter vertikaler Scrollbar
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sundance,
so funktioniert es bei mir:
Delphi-Quellcode:
Gute Nacht
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; marabu |
Re: TListView: Permanenter vertikaler Scrollbar
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz