ExpandPanels, Aufklappbare Panels & Automatische Anordnu

Zur Vorstellung von Komponenten und Units für Lazarus
alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

ExpandPanels, Aufklappbare Panels & Automatische Anordnu

Beitrag von alexander »

Hi,

also ich habe schon seit längerem an meinen ExpandPanels geschrieben.

Die ExpandPanels besteht aus 2 Komponenten. Einmal das MyRollOut und dann ExpandPanels.
MyRollOut sind Aus und einklappare Panels (eigentlich ScrollBoxen), die einen Button über/neben/unter/... dem Panel haben und mit einem Klick darauf kann man das RollOut einklappen/ausklappen.

Dann die nichtsichtbare Komponente Expandpanels kann mehrere MyRollOuts übereinander stapeln (das einzige was man tun muss, sind die RollOuts zur Laufzeit zu Expandpanels hinzuzufügen), und ordnet alle richtig an, falls ein RollOut geschlossen oder geöffnet wird.
Dabei hat es die 3 verschiedenen zustände: Mutlipanel, SinglePanel und HotMouse.
Beim Multipanel können mehrere RollOuts geöffnet sein, oder auch alle zu.
Beim SinglePanel ist immer ein offen und falls man auf ein anderes klickt, wird ausschließlich das neue angezeigt.
HotMouse ist das selbe wie SinglePanel, nur dass sobal die Maus über einem Button ist, das Panel aktiviert wird.

Sehr nützlich ist auch die Option UseClientHeight, dabei kann man die gesamte Höhe die auf dem Parent zur Verfügung steht ausnutzen. Falls man noch andere Kompos im Weg hat, kann man auch UseFixedHeight einstellen, was immer eine bestimmte Höhe ausnutzt.
Beides klappt mit allen 3 Modi.

Inzwischen wird standardmäßig (abschaltbar) alles sehr schön animiert gezeichnet, was doch sehr schön aussieht.

Ich hoffe ihr findet diese Komponente nützlich. Ich benutze sie inzwischen sehr häufig.

Verbesserungsvorschläge und ähnliches bitte direkt hier sagen.

Gruß Alexander

Hier gehts zum Download


PS: Die Komponenten werden in die Kategorie Misc eingeordnet.
Dateianhänge
Bildschirmfoto
Bildschirmfoto
Zuletzt geändert von alexander am Fr 13. Jun 2008, 10:09, insgesamt 1-mal geändert.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Das erste wirklich gut funktionierende Release! Version 1.0

Ich habe nun das gesamte Verhalten überarbeitet und nun ist alles animiert. Weiches Öffnen, Schließen und Größenveränderungen.
Und trotzdem, kann man immer noch in der Designtime die MyRollouts schließen und sie nehmen auch dann keinen Platz weg!

Ich würde mich freuen wenn ich Rückmeldung bekäme.

Hier Downloaden
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

haben die auch einen Titelleiste wie ein Form ? Weil ob und an währe das für meine Projekte vom Vorteil. Allerdings würde mich das animierte stören, ist das abschaltbar ?
(Ich habe die Komponenten noch nicht getestet).
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ja ist natürlich abschaltbar! (hmm dann muss ich schauen dass auch dann alles schön klappt, könnten noch ein paar fehler drin sein, ohne animation...)

hmm die Titelleiste ist ein Button

Probiere es doch mal aus. (kannst ja wieder deinstallieren)
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Version 1.02

jetzt funktioniert auch nicht animiertes.
Die Property heißt Animated.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Beitrag von baba »

vorab, sehr schöne Komponente. :!:

Folgendes ist mit aufgefallen:

Button befindet sich am Rechten Bildschirmrand (Wird über FormResize auch dort gehalten)

Das Panel öffnet sich nach Links.

Wird nun die Größe des Formulars gändert, steht der Button beim nächsten "Expand" mitten im Formular. (In etwa da, wo er stünde, wäre er links positioniert"

Baba.

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmm ja ich habe im Bezug daraufhin schon ein paar Veränderungen vorgenommen. Falls das Problem immer noch besteht bitte melden. Versuche bitte Anchors der Komponente zu setzen.
Hier kommt Version 1.05

Hier Downloaden
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Beitrag von baba »

Hallo,

leider hat sich nichts geändert. Ich habe mal ein Screencapture angehängt.

Baba.
Dateianhänge
lados.jpg
Baba.

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

baba hat geschrieben:Button befindet sich am Rechten Bildschirmrand (Wird über FormResize auch dort gehalten)

Das Panel öffnet sich nach Links.

Wird nun die Größe des Formulars gändert, steht der Button beim nächsten "Expand" mitten im Formular. (In etwa da, wo er stünde, wäre er links positioniert".
hmmm so ganz ist es mir nicht klar... könntest du deine situation schnell in einem projekt nachbauen und mir schicken? Dann kann ich selbst das Problem sehen und beheben.

PS: Schön dass du meine Kompo nützlich findest. ;-)
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Beitrag von baba »

alexander hat geschrieben:PS: Schön dass du meine Kompo nützlich findest. ;-)


... bislang habe ich diese Funktionalität mit einem einfachen Panel nachgebaut und dieses dann über den Formularrand nach rechts verschoben.

Zu dem Hauptmenü und einer Buttonbar schiebe ich bei Mausberührung noch ein Optionsmenü von Rechts ins Formular. (Siehe Demo)

Hierfür ist Deine Komponente ideal!

Anbei findest Du ein Beispiel mit Source und ausführbarer EXE.

HINWEISE:

Programm starten, Panel öffnet bei Mausberührung korrekt, Formular senkrecht vergrößern, Button springt bei nächster Berührung nach links.

Wird das Formular nur Horizontal vergrößert, ist alles OK.

Gruß
Baba.
Dateianhänge
Panel.zip
(407.92 KiB) 102-mal heruntergeladen
Baba.

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

grrr dummes problem... ich kümmere mich so schnell wie möglich drum...
Echt kann wenn der Fehler tiefer sitz vielleicht ein bisschen dauern, ich bin zurzeit am umzeihen in meine eigene Wohnung.
Sorry. Ich bemühe mich.

Gruß Alexander
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Ok hier die Lösung: Es liegt nicht (jedenfalls nicht ganz an meiner Kompo):
Stelle als Anchors für die Kompo und auch den Button bottom,top,right ein.
Und lasse onresize weg.
Dann klappts.

;-)

Wenn du den Button an der linken seite hättest und nach rechts klappen würdest. Könntest du auch align right setzen ;-)

PS: OnMouseMove zu nehmen ist sehr schlacht, weil man dann den Button kaum mehr einklappen kann. Lass doch die Leute klicken ;-)
PPS: anstatt

Code: Alles auswählen

MyRollOut1.AnimationSpeed := 0;

kannst du auch

Code: Alles auswählen

MyRollOut1.Animated:=false;

schreiben und nachher animated wieder aktivieren.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

alexander hat geschrieben:Ok hier die Lösung: Es liegt nicht (jedenfalls nicht ganz an meiner Kompo):
Stelle als Anchors für die Kompo und auch den Button bottom,top,right ein.
Und lasse onresize weg.
Dann klappts.


Ich habs mal nach gemacht

Anchors gesetzt, button ist rechts, gestartet, zur seite die größe verändern geht, den panel einklappen, nach unten die größe verändern und voila der panel haut ab ^^

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Bitte genau lesen, bevor die Lösung kritisieren!
alexander hat geschrieben:Und lasse onresize weg.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Sieht gut aus, was du da programmiert hast!

Im Source steht die Lizenz GPL2. Hast du vor, die Komponente eines Tages zusätzlich unter GPL3 zu stellen?

Antworten