GetScrollInfo a "Styl klasyczny Windows"

0

Witam,
W swojej aplikacji potrzebuje poszerzyć paski przewijania dla komponentu TreeView. W tym celu na formie obok TreeView umieszczam TScrollbar którym chce sterowac jego przewijaniem. Poniższa funkcja pobiera stan oryginalnego paska i przypisuje do mojego. Wszystko to działa wyśmienicie na Windows XP z ustawionym wyglądem "Styl wyglądu Windows XP". Ale gdy przełącze wygląd na "Styl klasyczny Windows" to funkcja GetScrollInfo zawsze zwraca "false" i nie udaje się odczytać ustawień oryginalnego paska z TreeView. Czy ktoś z Formowiczów spotkał się może z taką sytuacją że funkcja GetScrollInfo działa lub nie w zależności od wyglądu ustawionego w systemie? Nie mam pojęcia jak temu zaradzić będe wdzięczny za każde sugestie.

procedure TfrmMain.DrzewoGrupExpanded(Sender: TObject; Node: TTreeNode);
var screlInfo: SCROLLINFO;
j:integer;
begin
    // VERTICAL SCROLLBAR
    screlInfo.fMask := SIF_ALL;
    Drzewo.visible := false;    //chowanie drzewa na czas operacji
    if  false = GetScrollInfo(Drzewo.Handle,SB_VERT,screlInfo) then 
        showmessage('get last error '+inttostr(getlasterror))
        else
        begin

        SetScrollInfo(sbrV.Handle,SB_CTL,screlInfo,true);
        sbrVGrupy.Visible := DrzewoGrup.PotrzebnyPasekVert;

        if sbrV.Visible and (screlInfo.nMax > screlInfo.nMin) then begin
            sbrV.Min := screlInfo.nMin;
            sbrV.Max := screlInfo.nMax + 1;

            end;



        end;

    Drzewo.visible := false;
    SendMessage(DrzewoGrup.Handle, WM_VSCROLL,integer(scTop), 0);
    if sbrV.Visible then begin

      for  j:= 0 to sbrVGrupy.Position -1 do
                 SendMessage(DrzewoGrup.Handle, WM_VSCROLL,integer(scLineDown), 0);
      end;
     Drzewo.visible := true;

0

a co Ci zwraca GetLastError?

0
Misiekd napisał(a)

a co Ci zwraca GetLastError?

faktycznie nie napisałem. GetLastError zwraca mi " 0 "

1 użytkowników online, w tym zalogowanych: 0, gości: 1