ScrollBox zur Designzeit scrollen
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
ScrollBox zur Designzeit scrollen
Kann jemand einem DAU (also mir) sagen, wie ich zur Designzeit eine TScrollBox hoch/runter bzw. links/rechts scrolle?
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: ScrollBox zur Designzeit scrollen
Ganz einfach:
MFG
Komoluna
Code: Alles auswählen
Scrollbox1.HorzScrollBar.Position;
Scrollbox1.VertScrollBar.Position
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: ScrollBox zur Designzeit scrollen
Wenn ich "zur Laufzeit" gefragt hätte, dann wäre Deine Antwort richtig gewesen.Komoluna hat geschrieben:Ganz einfach:Code: Alles auswählen
Scrollbox1.HorzScrollBar.Position; Scrollbox1.VertScrollBar.Position
Aber ich fragte "zur Designzeit", also im Formulardesigner.
.
Re: ScrollBox zur Designzeit scrollen
Geht nicht zur Designzeit.
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: ScrollBox zur Designzeit scrollen
Bei mir geht das. Beispielprojekt anbei.
MFG
Komoluna
MFG
Komoluna
- Dateianhänge
-
scrollbox demo.rar
- (123.16 KiB) 123-mal heruntergeladen
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: ScrollBox zur Designzeit scrollen
Oh... Wieder etwas gelernt.
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: ScrollBox zur Designzeit scrollen
Soweit ich mich erinnern kann, geht das schon mindestens seit Laz 1.0...
MFG
Komoluna
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: ScrollBox zur Designzeit scrollen
So ein schönes Demo mit einer Scrollbox.Komoluna hat geschrieben:Soweit ich mich erinnern kann, geht das schon mindestens seit Laz 1.0...
Und jetzt nochmals die Frage:
Wie kann ich jetzt zur Designzeit, also im Formulardesigner, mit der Maus oder Tastatur in der Scrollbox scrollen, damit mir zum Beispiel jetzt der untere oder linke Teil der Scrollbox angezeigt wird, so dass ich den Button, welcher in der Scrollbox ist zu sehen bekomme?
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: ScrollBox zur Designzeit scrollen
Das geht leider nicht. Die Komponenten werden zur Designtime zwar so angezeit, wie im richtigen Programm, aber so weit ich weiß, werden sämtliche Inputs an den Formulareditor weitergegeben(Klick/doppelklick, etc.)
Wenn man selber eine Komponenten entwickelt, müsste man theoretisch trotzdem auf Input events reagieren können, aber die eingebauten Controls machen das glaube ich nicht.
MFG
Komoluna
Wenn man selber eine Komponenten entwickelt, müsste man theoretisch trotzdem auf Input events reagieren können, aber die eingebauten Controls machen das glaube ich nicht.
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: ScrollBox zur Designzeit scrollen
TBug hat geschrieben:wie ich zur Designzeit eine TScrollBox hoch/runter bzw. links/rechts scrolle?
Allerdings hat hier noch niemand gesagt, dass du das Ganze nicht im Quelltexteditor oder per Maus, sondern im Objektinspektor unter Eigenschaften von Scrollbox1 -> HorzScrollBar -> Position erreichst.Komoluna hat geschrieben:Ganz einfach:Code: Alles auswählen
Scrollbox1.HorzScrollBar.Position; Scrollbox1.VertScrollBar.Position
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: ScrollBox zur Designzeit scrollen
So mach ich das schon die ganze Zeit seit ich mich mit dieser Scrollbox herumärgere.Michl hat geschrieben:Allerdings hat hier noch niemand gesagt, dass du das Ganze nicht im Quelltexteditor oder per Maus, sondern im Objektinspektor unter Eigenschaften von Scrollbox1 -> HorzScrollBar -> Position erreichst.
Wie bequem ist dies doch in Delphi. Dort kann man schön mit der Maus einfach die Scrollbar anpacken und den sichtbaren Bereich verschieben.
Mittlerweile zweifle ich daran, ob es eine gute Idee war, meine Delphi-Anwendungen und Komponenten nach Lazarus zu portieren. Ständig nur Probleme und Einschränkungen und Verrenkungen um das zu erreichen was mit Delphi ein Einzeiler gewesen ist.
Re: ScrollBox zur Designzeit scrollen
Das ist nur eine Frage der Gewohnheit. Mittlerweile empfinde ich dasselbe, wenn ich mal wieder ein altes Projekt mit Delphi überarbeite. Wahnsinn, was mit Lazarus geht und mit Delphi nicht!TBug hat geschrieben:[Mittlerweile zweifle ich daran, ob es eine gute Idee war, meine Delphi-Anwendungen und Komponenten nach Lazarus zu portieren. Ständig nur Probleme und Einschränkungen und Verrenkungen um das zu erreichen was mit Delphi ein Einzeiler gewesen ist.
Zurück zu deinem Problem:
Erstmal: einen Button in einer Scrollbox zu verstecken, so dass er vom Programmierer und also auch vom Benutzer nicht gesehen wird - diese Idee könnte glatt von MS sein! Wirklich nicht sehr benutzerfreundlich.
Aber wie dem auch sei: Ich würde den Button und den anderen Content nicht direkt auf der Scrollbox platzieren, sondern auf einem separat entworfenen Formular, das zur Laufzeit in die Scrollbox eingefügt wird (Form.Parent := Scrollbox). Du musst nur darauf achten, dass dieses Formular schon existiert, bevor es für die Scrollbox benötigt wird.
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: ScrollBox zur Designzeit scrollen
Es geht ja nicht um einen Button, sondern hier um Einstellmöglichkeiten, wie im Objektinspektor, um in meiner Kompenenten-Test-Anwendung sämliche Einstellungen einer Komponete zur Laufzeit zu testen.wp_xyz hat geschrieben:Zurück zu deinem Problem:
Erstmal: einen Button in einer Scrollbox zu verstecken, so dass er vom Programmierer und also auch vom Benutzer nicht gesehen wird - diese Idee könnte glatt von MS sein! Wirklich nicht sehr benutzerfreundlich.
-
- Beiträge: 177
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: ScrollBox zur Designzeit scrollen
Ei, ei, ei und noch ein Hühnerei.
Die Scrollbox ist unter Windows ja zu überhaupt nichts zu gebrauchen.
Das Ding ist ja eine BugBox.
(siehe Projekt im Anhang)
Die Scrollbox ist unter Windows ja zu überhaupt nichts zu gebrauchen.
Das Ding ist ja eine BugBox.
(siehe Projekt im Anhang)
- Dateianhänge
-
BugScrollBox.zip
- (125.32 KiB) 86-mal heruntergeladen
Re: ScrollBox zur Designzeit scrollen
Gemach, gemach...
Hab dein Projekt gerade nach Delphi 7 übertragen, und da verhält sich die Scrollbox genauso. Also ist schon mal Lazarus nicht schuld...
Ich habe mal in deinem Scrollby-Code, die negativen Zahlen eingesetzt (also -100 statt 100, bzw 100 statt -100), und dann ist alles normal.
ScrollBy und Scrollbar haben nichts miteinander zu tun. Was sich also mit ScrollBy verändert, das ist die Eigenschaft "Top" der eingefügten Controls - diese werden genau um den "Scrollby"-Wert verändert. Diese Änderung wird nicht an den Scrollbar weitergegeben. Es gibt also zwei Möglichkeiten, in einer Scrollbox zu scrollen: mit Hilfe der ScrollBy-Methode (wie beschrieben: Veränderung der relativen Position der Controls auf der Scrollbox), und mit Hilfe des Scrollbars (Scrollbox.VertScrollbar.Position := Scrollbox.VertScrollbar.Position + 100; d.h. Veränderung des sichtbaren Ausschnitts der hinter der Scrollbox liegenden Fläche).
Es ist wie wenn du mit der Kamera ein Panorama aufnehmen willst: Du kannst entweder mit der Kamera über die Landschaft schwenken, oder die Kamera still halten und die Landschaft vorbeischieben (ok - ich geb's zu, das Beispiel ist etwas konstruiert...).
Hab dein Projekt gerade nach Delphi 7 übertragen, und da verhält sich die Scrollbox genauso. Also ist schon mal Lazarus nicht schuld...
Ich habe mal in deinem Scrollby-Code, die negativen Zahlen eingesetzt (also -100 statt 100, bzw 100 statt -100), und dann ist alles normal.
ScrollBy und Scrollbar haben nichts miteinander zu tun. Was sich also mit ScrollBy verändert, das ist die Eigenschaft "Top" der eingefügten Controls - diese werden genau um den "Scrollby"-Wert verändert. Diese Änderung wird nicht an den Scrollbar weitergegeben. Es gibt also zwei Möglichkeiten, in einer Scrollbox zu scrollen: mit Hilfe der ScrollBy-Methode (wie beschrieben: Veränderung der relativen Position der Controls auf der Scrollbox), und mit Hilfe des Scrollbars (Scrollbox.VertScrollbar.Position := Scrollbox.VertScrollbar.Position + 100; d.h. Veränderung des sichtbaren Ausschnitts der hinter der Scrollbox liegenden Fläche).
Es ist wie wenn du mit der Kamera ein Panorama aufnehmen willst: Du kannst entweder mit der Kamera über die Landschaft schwenken, oder die Kamera still halten und die Landschaft vorbeischieben (ok - ich geb's zu, das Beispiel ist etwas konstruiert...).