Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Scrollbox kurzzeitig deaktivieren! (https://www.delphipraxis.net/181195-scrollbox-kurzzeitig-deaktivieren.html)

ZeroX1337 24. Jul 2014 07:40

Scrollbox kurzzeitig deaktivieren!
 
Hallo,

ich komme bei einem Problem einfach nicht weiter. Finde auch keine Infos dazu.
Ich arbeite mit FMX auf XE6.

Mein Problem: Ich habe meine ganzen Objekte in die TVertScrollBox gepackt, damit ich, wenn ich den Bildschirm vom iPad drehe, auch den Rest des Formulars sehen kann. Funktioniert alles wunderbar.

Allerdings habe ich auf der Form 2 Unterschriften Felder, und wenn ich dort jetzt was schreiben will bewegt sich das ganze Formular mit.

Jetzt möchte ich gerne, wenn ich in dem Unterschriftenfeld "MouseDown" und "MouseUp" Ereignis habe, dass die ScrollBox entsprechend in diesem Zeitraum "aussetzt".

Enable, Visible etc. funktioniert alles nicht, da die kompletten Objekte dort drin dann verschwinden.


Weiß jemand eine Lösung, bzw. kann mir sagen ob überhaupt alle Objekte in die Scrollbox müssen oder ob es auch eine andere Variante gibt?

Bjoerk 24. Jul 2014 08:13

AW: Scrollbox kurzzeitig deaktivieren!
 
Wie wärs bei Edit.OnEnter das Enabled der ScrollBox auf false zu setzen und das von dem Edit auf true. Bei Edit.OnExit dann das der ScrollBox wieder auf true ändern?

ZeroX1337 24. Jul 2014 08:17

AW: Scrollbox kurzzeitig deaktivieren!
 
Das Problem ist, dass ich alle Objekte der ScrollBox unterordnen musste.
Wenn ich jetzt die ScrollBox disable dann sind auch alle anderen Objekte disabled.

Das ist alles kompliziert zu erklären. Fakt ist, wenn ich die ScrollBox enable = false setze ist alles weg.

Ich kann das Unterschriftenfeld aber auch nicht aus der ScrollBox herausnehmen, sprich überordnen. Denn dann bewegt sich das Feld überhaupt nicht mehr mit.

himitsu 24. Jul 2014 08:35

AW: Scrollbox kurzzeitig deaktivieren!
 
Einfach alle Scroll-Messages für die ScrollBox abfangen und schon wird nicht mehr gescrollt.

ZeroX1337 24. Jul 2014 08:42

AW: Scrollbox kurzzeitig deaktivieren!
 
Könntest du mir vielleicht sagen wie ich das mache? Bin sehr neu was die Programmierung betrifft.

Der schöne Günther 24. Jul 2014 09:37

AW: Scrollbox kurzzeitig deaktivieren!
 
Zitat:

Zitat von himitsu (Beitrag 1266507)
Einfach alle Scroll-Messages für die ScrollBox abfangen und schon wird nicht mehr gescrollt.

Es geht hier um Firemonkey, nicht die VCL.

himitsu 24. Jul 2014 09:46

AW: Scrollbox kurzzeitig deaktivieren!
 
Auch da wird dennoch intern mit Messages gearbeitet, da man sich die Arbeit ersparen wolle, ein neues Message-System für's Delphi zu erfinden. :gruebel:

Das XE hier kennt den Affen noch nicht, also kann ich nicht mal eben nachsehn.
Ich würde dir ja empfehlen in den FMX-Quellcode zu schauen, aber die Starter hat sowas ja nicht.


Das überschreiben und nachsehn was alles ankommt:
Delphi-Quellcode:
procedure WndProc(var Msg: TMessage); override;

[add] In der ScrollBox, bzw. einer Ableitung davon. Oder mal schauen was TApplicationEvents für Ereignisse bietet.

Und danach kann man auch sowas nehmen:
Delphi-Quellcode:
procedure Xyz(var Message: TMessage); message XYZ;

ZeroX1337 24. Jul 2014 09:48

AW: Scrollbox kurzzeitig deaktivieren!
 
Danke, ich schau mal nach!

himitsu 24. Jul 2014 10:15

AW: Scrollbox kurzzeitig deaktivieren!
 
PS: Hatte meinen letzten Beitrag inzwischen nochmal etwas bearbeitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz