Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SetScrollInfo funktioniert bei mir nicht... (https://www.delphipraxis.net/85150-setscrollinfo-funktioniert-bei-mir-nicht.html)

Darkmorph 26. Jan 2007 16:01


SetScrollInfo funktioniert bei mir nicht...
 
Benutze folgenden Code in meiner Applikation,um nach einem Update der Listbox, die scrollbar an die originale Position zu schieben.

Delphi-Quellcode:
scrollbarinfo.fMask:=SIF_POS;
getScrollInfo(Listbox1.Handle, SB_VERT, ScrollbarInfo);
Listbox1.Items:=Strings;
scrollbarinfo.fMask:=SIF_POS;
SetScrollInfo(Listbox1.Handle, SB_VERT, ScrollBarInfo, true);
UpdateWindow(Listbox1.Handle);
Dieser Code bewegt zwar die Scrollbar, aber der Inhalt der Listbox verändert sich nicht, d. h. es ist so, als hätte man die scrollbar nicht verschoben... ich habs mit Listbox.repaint usw versucht... nix hilft, habt ihr eine idee?

mfg Benjamin

marabu 26. Jan 2007 16:32

Re: SetScrollInfo funktioniert bei mir nicht...
 
Hallo Benjamin,

warum mischst du VCL und non-VCL?

Delphi-Quellcode:
var
  iTop, iItem: Integer;
begin
  with ListBox do
  begin
    iTop := TopIndex;
    iItem := ItemIndex;
    Items.BeginUpdate;
    Items.Assign(Strings);
    if iItem < Items.Count then
    begin
      ItemIndex := iItem;
      TopIndex := iTop;
    end else { ... };
    Items.EndUpdate;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

Darkmorph 26. Jan 2007 16:53

Re: SetScrollInfo funktioniert bei mir nicht...
 
Hi Marabu,

vielen Dank für deine Hilfe :)
dein Code hat Wunder geholfen. Kannte die Eigenschaft TopIndex noch nicht und hatte sie daher auch garnicht in Betracht gezogen.

mfg
Benjamin


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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