GetScrollInfo a "Styl klasyczny Windows"

GetScrollInfo a "Styl klasyczny Windows"
P2
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 14 lat
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.

Kopiuj
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;

Misiekd
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 12 lat
  • Postów:7923
0

a co Ci zwraca GetLastError?


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
P2
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 14 lat
0
Misiekd napisał(a)

a co Ci zwraca GetLastError?

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.