ExpandPanels, Aufklappbare Panels & Automatische Anordnu
-
- 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
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.
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.
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
www.alexanderroth.eu
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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
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
www.alexanderroth.eu
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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)
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
www.alexanderroth.eu
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.
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.
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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
Hier kommt Version 1.05
Hier Downloaden
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu
www.alexanderroth.eu
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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.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".
PS: Schön dass du meine Kompo nützlich findest.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu
www.alexanderroth.eu
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.
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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
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
www.alexanderroth.eu
-
- Beiträge: 423
- Registriert: Di 5. Feb 2008, 12:45
- OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
- CPU-Target: 64Bit
- Kontaktdaten:
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
kannst du auch
schreiben und nachher animated wieder aktivieren.
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
www.alexanderroth.eu
-
- 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:
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 ^^