![]() |
[Demo] Schwenkfenster (TCustomPanningWindow)
Liste der Anhänge anzeigen (Anzahl: 5)
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. Anhang 32053 PanningWindow - Unit Anhang 32057 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:
Voraussetzungen
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; Funktionsfähig ab Delphi 2009 (wegen anonymen Methoden). Die PanningWindow-Unit verwendet folgende Third-Party-Units, die alle OpenSource sind:
mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Stylisch! :thumb:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Hast du vor, die Komponente zu Veröffentlichen?
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
eine richtige Komponente ist es ja nicht, sondern nur eine Klasse, die an Mouse.PanningWindowClass zugewiesen wird. Um daraus eine Komponente zu machen müsste man einen Wrapper schreiben was an sich kein Problem wäre, wenn TControl.ControlStyles published wäre...man müsste so oder so per handgeschriebem Code den gewünschten Komponenten ControlStyle+[csPannable] hinzufügen, wodurch die TPanningWindow als put&play-Komponente obsolet wird. Oder der Wrapper müsste eine Liste verwalten mit Komponenten, die scrollbar sein sollen, was jedoch wiederrum ein unnötiger Verwaltungsaufwand wäre...hmmm...ich glaube, ich lasse es vorerst als eine Single-Class-Lösung. mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
mkinzler meinte auch mehr, hast du vor es so zu veröffentlich, daß es auch Andere in eigenen Programmen verwenden können?
Aktuell haben wir (anscheinend) nur die Demo (EXE) und Links zu nötigen Komponenten, aber nicht deine Klasse. |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
Zitat:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Echt cool :thumb:
Muss man sich mal merken, falls es mal an einer Stelle nützlich sein kann. |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Sorry Leute,
ich habe mkinzler wohl missverstanden. Der Eröffnungspost wurde soeben überarbeitet und enthält jetzt die Unit und Code-Schnipsel für dessen Verwendung. Ich galube hier irgendwo gelesen zu haben, dass große Quelltexte in Beiträgen unerwünscht sind, daher habe ich sie zuvor in die Demo-Exe eingefügt. mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Man kann auch die Quelldateien (Pas) direkt anhängen oder in ein Archiv verpacken
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
@WladiD: Es ist nur unpraktisch, wenn "große Quelltexte" mitten im Beitrag stehn.
Als Anhang machen sie sich besser. Also das Memo in der EXE ... "unten rechts" war nichts. Man muß in der Mitte suchen und dort war ich beim Testen wohl nicht vorbeigekommen. :stupid: |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Kannst du das ganze vielleicht auch in einem gängigen Format anhängen? Zum Beispiel zip, rar oder tar.gz?
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Du findest echt rar/tar.gz gängiger als .7z? :shock:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
Zur Unit: Sieht gut aus :thumb: |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
7z Pros
mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Mein Problem war das beim Klick auf den Downloadlink die Endung .zip gewählt wurde. Mit der richtigen Endung funktionierts jetzt auch, der Archivmanager hatte aus irgend einem Grund ein Problem mit der nicht korrekten Endung.
Wofür genau braucht man das? Ist es nicht praktischer auf das Drehen am Mausrad zu reagieren? Aber interessant ist das ganze auf jeden Fall, bisher kannte ich das nicht. |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Stylisch, finde ich sehr schön. :thumb:
Schade, dass die User meines Programmes sowas nicht bedienen können. Die bekommen nicht mal einen Rechtsklick hin. :wiejetzt: |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Meine Browser unterstützen es nicht (Opera + Iceweasel) :wink:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Dann drück das Mausrad in der Delphi-IDE, ist schon praktisch um auch seitwärts scrollen zu können. :)
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Super Sache, schade nur, dass es erst ab D2009 funktioniert :(
|
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Liste der Anhänge anzeigen (Anzahl: 1)
Firefox, der IE, MSOffice, der Acrobat Reader, selbst Notepad und mein D2010, sowie einiges Anderes auch können sowas.
Es gibt auch einige Maustreiber, bzw. die Programme dazu, welche sowas ebenfalls unterstützen. Bei meiner Logitech kann ich jedenfalls auch sowas als Funktion für die Mitteltaste auswählen. (wenn SetPoint installiert ist und die Funktion nennt sich AutoScroll oder Universal Scroll ... weiß nur grad nicht was was ist) Aber ich nutze hierfür einfach die 2 Zusatztasten über und unter meinem Scrollrad und hab die Mitteltaste eine Mitteltaste sein lassen :angel2: Nur den Mauszeiger/Pfeil sieht man auf dem Screenshot nicht, aber den Ausgangspunkt konnte ich fotografieren. :stupid: |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Hier mal der erste Verbesserungsvorschlag:
Wenn das Mausrad geklickt wird, soll der Doppelpfeil erscheinen und man soll scrollen können -> Funktioniert auch. Wenn das Mausrad gedrücktgehalten wird, soll - nur SOLANGE das Mausrad gedrückt ist - gescrollt werden. MfG |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Sehr nett. :thumb:
Zitat:
Ich habe auch erwartet, dass es dann anhält. Demnach: Ich bin auch dafür. ;) |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Zitat:
danke für den Verbesserungsvorschlag. Diesen habe ich sofort umgesetzt und sowohl die Demo als auch die Unit im 1. Post aktualisiert. mfg |
AW: [Demo] Schwenkfenster (TCustomPanningWindow)
Das ging aber flott!
Nun verhält sich deine Demo genau so, wie ich es von anderen Programmen her kenne. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz