Einzelnen Beitrag anzeigen

WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
135 Beiträge
 
Delphi 10.4 Sydney
 
#1

[Demo] Schwenkfenster (TCustomPanningWindow)

  Alt 8. Sep 2010, 11:54
Hallo alle zusammen,

einigen von Euch dürfte die Schwenk-Funktion, die durch klicken des Mausrads ausgelöst wird, aus Browsern bekannt sein. Ob sie nun sinnvoll ist oder nicht ist Geschmackssache, ich für meinen Teil finde sie bei langen Listen nützlich um sich einen Überblick zu verschaffen, ohne dabei das Rad zum glühen zu bringen.

Jedenfalls wollte ich soetwas selbst in meinem Programm einbauen und bin per Zufall auf die Eigenschaft TMouse.PanningWindow, TMouse.PanningWindowClass und die abstrakte Klasse TCustomPanningWindow der VCL (Delphi 2010) gestossen. Super, dachte ich mir und wollte ein paar Beispiele ansehen, die diese Klasse implementieren und verwenden. Doch Google hat nichts brauchbares finden können. "Learn by try and error" war also angesagt.

Nach einigen Stunden war das erste Erfolgserlebnis da und wenig später eine (für mich) brauchbare Lösung, die ich Euch hier als Demo präsentieren möchte.

TPannningWindow-Demo.7z


PanningWindow - Unit

PanningWindow.pas


Verwendung

Theoretisch können damit alle TControl-Objekte geschwenkt werden, die horizontale und/oder vertikale Standard-Scrollbalken verwenden. Dafür muss lediglich der gewünschten Instanz das Element [csPannable] an die Eigenschaft TControl.ControlStyle hinzugefügt werden. Der Eigenschaft Mouse.PanningWindowClass muss zuvor die spezifische Klasse zugewiesen werden.

Delphi-Quellcode:
implementation

uses
  PanningWindow;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Mouse.PanningWindowClass:=TPanningWindow;
  // Wenn es etwas zu scrollen gibt...
  Form1.ControlStyle:=Form1.ControlStyle + [csPannable];
  // hier weitere Komponenten, die scrollbar sind nach dem
  // Schema Control.ControlStyle:=Control.ControlStyle + [csPannable]
end;
Voraussetzungen

Funktionsfähig ab Delphi 2009 (wegen anonymen Methoden).

Die PanningWindow-Unit verwendet folgende Third-Party-Units, die alle OpenSource sind:
mfg
Miniaturansicht angehängter Grafiken
tpanningwindow-demo.png  
Waldemar Derr

Geändert von WladiD ( 8. Sep 2010 um 21:25 Uhr) Grund: Update der Demo und PanningWindow-Unit
  Mit Zitat antworten Zitat