Thema: Delphi Scrollen im TreeView

Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Scrollen im TreeView

  Alt 5. Dez 2003, 12:00
Hi Leute,

folgendes Problem:

Ich habe ein TreeView mit Node-Einträgen. Wenn ich ein Node in einen anderen Knoten verschieben möchte kann es sein, das der Zielknoten im nicht sichtbaren Bereich den TreeView liegt. Nun habe ich mir gedacht, dass wenn ich einen eintrag verschieben will und ich an den oberen und unteren Rand des TreeView stoße diesen automatisch scrollen lasse. Der Code lautet wie folgt:

Delphi-Quellcode:
procedure TKonfForm.TreeView1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
var D:TTreeNode;
Begin
  if StopDrag then begin TreeView1.EndDrag(False); Accept:=False; exit; end;
  d:=TreeView1.GetNodeAt(x,y);
  try
    Accept:=(Source is TTreeView) and (d<>Nil) and (d.Level>0) and
          (PNodeData(d.Data).Typ = Flotte) and
          (PNodeData(TreeView1.Selected.Data).Typ = Fahrzeug);
  except
    Accept := False;
  end;
  CanDragAccept:=Accept;
  // wenn oben dann hochscrollen
  IF (y < 2) then begin
    TreeView1.ScrollBy(0, 2);
    TreeView1.Realign;
  end;
  // unten auch scrollen
  IF (y > TreeView1.ClientHeight - 2) then begin
    TreeView1.ScrollBy(0, -2);
    TreeView1.Realign;
  end;
end;
Der Punkt ist, das so nichts passiert! Wo steckt mein Problem?

Gruß oki
  Mit Zitat antworten Zitat