Einzelnen Beitrag anzeigen

Bernd Höhner

Registriert seit: 29. Aug 2003
Ort: Darmstadt
4 Beiträge
 
Delphi 6 Enterprise
 
#1

Eigene Scrollbar bei Treeview / List usw. verwenden...

  Alt 29. Aug 2003, 12:33
Hallo Zusammen!
Anlass für diesen ganzen Leidweg war, das ich die Farben der Scrollbars verändern wollte. Bis auf IE und globale Farbeinstellungen kann das wohl keiner, weil ich schon ziemlich lange suche. Also: Eigene Scrollbar programmiert! Jetzt möchte ich die Kommunikation zwischen einer Control und meinem Scrollbar aufbauen. Über Messages. Den Control eigenen Scrollbar, der standardmässig auftaucht, zu unterdrücken, habe ich mit Hilfe von DP hingekriegt. Wie kann ich aber die Nachrichten, (SBM_SET_SCROLLINFO / SBM_SETRANGE / SBM_SETPOS usw...) in meiner Scrollbar wirken lassen ?

Am Beispiel von einem TreeView (ohne Scrollbars) bin ich soweit:

Delphi-Quellcode:
  TNoScrollTreeView = class( TTreeView )
  private
    :
    procedure SBMSetRange ( var msg: TMessage ); message SBM_SETRANGE;
    procedure SBMSetRangeRedraw ( var msg: TMessage ); message SBM_SETRANGEREDRAW;
    procedure SBMSetScrollInfo ( var msg: TMessage ); message SBM_SETSCROLLINFO;
    : usw...
  end;
Sagen wir, ich hätte SB : TMyScrollbar auf Form1...

Delphi-Quellcode:
procedure TNoScrollTreeView.SBMSetScrollInfo ( var msg: TMessage);
var
  si : PSCROLLINFO;
  rf : Boolean;
begin
  rf := (msg.wParam > 0);
  si := PSCROLLINFO(msg.lParam);
  if (si.fMask = SIF_PAGE) then Form1.SB.Page := si.nPage;
  if (si.fMask = SIF_POS ) then Form1.SB.Position := si.nPos;
  if (si.fMask = SIF_RANGE) then
  begin
    Form1.SB.Min := si.nMin;
    Form1.SB.Min := si.nMax;
  end;
  inherited;
end;
Das geht aber nix. Ich habe gedacht, der TreeView, wirft mit SBM_..messages um sich. Scheinbar ist die Richtung aber ne andere...

Kann jemand helfen ?

Danke & Schönen Tag
  Mit Zitat antworten Zitat