Registriert seit: 4. Sep 2004
1.465 Beiträge
Delphi 10.4 Sydney
|
AW: SelectionBox-Komponente?
1. Sep 2012, 19:40
So, jetzt ist viel Neues dazu gekommen, die Komponente hat ihre vorerst endgültige Form erhalten und es ist ein tolles Demo-Programm dabei! Hier ist die Beschreibung der Komponente:
PPBSelFrame 1.0
Auswahlrahmen zum Aufziehen mit der Maus zur Auswahl eines Bildbereiches
aus einem darunterliegenden [Timage], bei welchem die Eigenschaften Center
und Proportional auf True sowie Align auf alClient gesetzt sind.
Dabei wird der Auswahlrahmen beim Aufziehen, Vergrößern und Verschieben auf den
Bildbereich begrenzt, wenn der Parent-Container größer als der Bildbereich ist.
Die Linien des Auswahlrahmens sind sowohl vor hellem als auch vor dunklem
Bildhintergrund gut sichtbar.
ANWENDUNG
---------
1. TImage (oder einen Nachfahren davon) in einen Container (Formular, Panel, usw.)
legen.
2. Proportional und Center des Image auf True setzen, Align auf alClient setzen.
3. DARÜBER PPBSelection legen.
4. In PPBSelection.TheImage das darunterliegende Bild auswählen.
5. Beim Programmstart bzw. vor der ersten Verwendung einmal PPBSelection.Initialize
aufrufen.
FUNKTIONEN
----------
- AUFZIEHEN eines Auswahlrahmens mit der gedrückt gehaltenen linken Maustaste und
dann Loslassen der Maustaste.
- VERSCHIEBEN des Auswahlrahmens durch Ziehen mit der linken Maustaste im Anfassfeld
in der oberen linken Ecke des Auswahlrahmens.
- VERGRÖßERN des Auswahlrahmens:
- Ziehen mit der linken Maustaste im Anfassfeld in der unteren rechten Ecke des
Auswahlrahmens.
- Ziehen der Seitenlinien des Auswahlrahmens mit der linken Maustaste, wobei
in der oberen linken Ecke des Auswahlrahmens die jeweils veränderte Größe
(in Pixel) angezeigt wird.
- Durch Klicken mit der linken Maustaste auf einen Punkt außerhalb des Auswahlrahmens
wird der Auswahlrahmen AUSGEBLENDET.
Methoden:
=========
- Initialize:
Vor der ersten Verwendung muss einmal die Methode Initialize aufgerufen werden,
um wichtige interne Eigenschaften zu initialisieren.
Eigenschaften:
==============
- TheImage: TImage (Published):
Hier MUSS die Bildkomponente ausgewählt werden: TImage oder ein Nachfahre davon.
Ggf. PPBSelection mit Element -> nach vorne bringen.
- ShowSize: Boolean (Published):
Hiermit kann eingestellt werden, ob beim Verändern der Größe des Auswahlrahmens
durch Ziehen der Seitenlinien in der linken oberen Ecke des Auswahlrahmens die
jeweils veränderte Größe angezeigt wird.
- SelFrameRect: TRect (Public):
Hiermit kann die Größe des Auswahlrahmens ausgelesen werden, NACHDEM das Aufziehen
des Auswahlrahmens beendet wurde, also NACHDEM die linke Maustaste losgelassen wurde.
Wenn der Auswahlrahmen nicht sichtbar ist, sind die Werte (nach der Initialisieung):
Left: -100 Right: -100 Top: -100 Bottom: -100 Width: 0 Height: 0
- ImgReduced: Boolean (Public):
Hiermit kann jederzeit (also während oder nach der Größenveränderung des Container-
Elementes) ausgelesen werden, ob das Bild aktuell VERKLEINERT dargestellt wird (also
ob der dargestellte Bildbereich kleiner ist als das Originalbild). Wichtig, wenn man
etwa den Auswahlbereich in der Originalgröße in die Zwischenablage kopiert, indem
man die Größe des Auswahlrahmens mit dem Verkleinerungsfaktor multipliziert.
- HMargins: Boolean (Public):
-> Nur relevant, wenn der Bildbereich verkleinert dargestellt wird (s. ImgReduced).
Hiermit kann ausgelesen werden, ob HORIZONTALE RÄNDER (links und rechts) oder
VERTIKALE RÄNDER (oben und unten) angezeigt werden. Wichtig, wenn man den
Auswahlbereich dann mit dem jeweiligen Verkleinerungsfaktor multipliziert, um so die
Originalgröße des Auswahlbereiches zu erhalten.
- FactorV, FactorH: Extended (Public):
-> Nur relevant, wenn der Bildbereich verkleinert dargestellt wird (s. ImgReduced).
Hiermit kann der Verkleinerungsfaktor des Bildbereiches ausgelesen werden.
Wichtig, wenn man den Auswahlbereich dann mit dem jeweiligen Verkleinerungsfaktor
multipliziert, um so die Originalgröße des Auswahlbereiches zu erhalten.
Ereignisse:
===========
- OnPPBMouseUp:
Wenn die Maustaste losgelassen wird, ist das Aufziehen bzw. die Größenänderung
des Auswahlrahmens abgeschlossen. Hier kann man also ggf. automatisch Aktionen
ausführen, wenn die Definition des Auswahlrahmens abgeschlossen ist.
-------------------------------------------------------------------------------------------
Entstehung: Ich benötigte eine Komponente zum Aufziehen eines Auswahlrahmens. Thomas
Wassermann hat dafür freundlicherweise ein bereits funktionsfähiges Grundgerüst zur Verfügung
gestellt, das ich noch mit zusätzlichen Funktionen angereichert habe. Danke an Thomas für
seine freundliche Hilfe!
Ihr könnt das wenn ihr wollt gerne in die CodeLib geben!
|