Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Verändern d. Grösse von Lists, DBGrid, Edit Fields v. User (https://www.delphipraxis.net/112967-veraendern-d-groesse-von-lists-dbgrid-edit-fields-v-user.html)

raena 30. Apr 2008 11:02


Verändern d. Grösse von Lists, DBGrid, Edit Fields v. User
 
Hallo,

ich denke ich habe eine einfach Frage, komme aber alleine nicht dahinter:

ich habe ein Form auf dem wie immer nicht genug Platz für alles ist.
Wie kann ich dem Benutzer die Möglichkeit geben, die Grösse des DBGrids, der Listen
und des Editfelds selbstständig zu ändern? Die Elemente können auch ruhig überlappen.
Ich möchte nicht alle Elemente in eigene Forms verschieben sondern alles in einem Form haben.

Gibt es da eine simple Möglichkeit?

Danke :shock:

mquadrat 30. Apr 2008 11:13

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Da gibt es zwei Möglichkeiten:

1) Du setzt bei den Steuerelemente während des Entwickelns die Attribute Align und Anchor so, dass sich die Steuerelemente von selber vergrößern / verkleinern, wenn die Fenstergröße geändert wird.

2) Du gibst deiner Anwendung einen Editor mit, mit dem der Benutzer zur Laufzeit des Programms das Fenster frei gestalten kann.

Wenn es nur darum geht, dass das Fenster "zu klein" ist würde ich die erste Möglichkeit wählen. So behälst du als Programmierer die Kontrolle darüber, was wie aussieht.

Am Besten spielst du mit den Werten einfach mal ein bisschen rum, ist recht intuitiv. Anchor sorgt dafür, dass der Abstand zu einer Kante immer gleich bleibt. Standardmäßig sind left und top aktiv, d.h. das Element hat immer den gleichen Abstand nach links und oben. Wenn du jetzt beispielsweise auch right setzt und das Fenster verbreiterst bleibt auch der Abstand nach rechts konstant -> das Element wird breiter.

shmia 30. Apr 2008 11:29

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Ja, eine einfache Möglichkeit ist es das TSplitter Control zu verwenden.
Man muss dabei aber beachten, dass das Property Align der Controls richtig zu setzen.
kleines Kochbuch:
* leeres Formular, Groupbox oder Panel bereithalten
* Panel drauf: Align = alTop
* Splitter drauf: Align = alTop, Color = alBlue (damit der Benutzer den Splitter auch sieht), Height = 4 (damit die Grobmotoriger keine Probleme haben)
* Irgend ein Grid, Treeview, Panel oder ähnliches darauf: Align = alClient

Das Prinzip ist immer so, das Control A entweder alLeft, alTop oder alBotton ist, der Splitter ebenso und Control B muss dann alClient sein.

raena 30. Apr 2008 12:21

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Hallo mquadrat,

danke für die ausführliche Antwort. Ich denke es triff aber nicht das was ich suche.
Ich brauche eine Mögliche, die Grösse der Elemente vom Bediener ändern zu lassen.
Es geht darum, dass der Bediener sich das Element, das im jeweiligen Moment für ihn
am wichtigsten ist, gross ziehen kann und ggf. auch andere Elemente damit verdeckt.
Deine Methode ändert die Grössen in Abhängigkeit der Fenstergrösse.

Raena.

shmia 30. Apr 2008 12:55

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Zitat:

Zitat von raena
Ich denke es triff aber nicht das was ich suche.
Ich brauche eine Mögliche, die Grösse der Elemente vom Bediener ändern zu lassen.
Es geht darum, dass der Bediener sich das Element, das im jeweiligen Moment für ihn
am wichtigsten ist, gross ziehen kann und ggf. auch andere Elemente damit verdeckt.
Deine Methode ändert die Grössen in Abhängigkeit der Fenstergrösse.

Das halte ich für normale User für ziemlichen Unsinn und nicht passend zum Windows Standard.
Für stark sehbehinderte Menschen könnte dies zwar sinnvoll sein, aber dann musst du das vorher sagen !!!
Ausserdem gibt es da ja die Bildschirmlupe.

raena 30. Apr 2008 13:12

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von shmia
Zitat:

Zitat von raena
Ich denke es triff aber nicht das was ich suche.
Ich brauche eine Mögliche, die Grösse der Elemente vom Bediener ändern zu lassen.
Es geht darum, dass der Bediener sich das Element, das im jeweiligen Moment für ihn
am wichtigsten ist, gross ziehen kann und ggf. auch andere Elemente damit verdeckt.
Deine Methode ändert die Grössen in Abhängigkeit der Fenstergrösse.

Das halte ich für normale User für ziemlichen Unsinn und nicht passend zum Windows Standard.
Für stark sehbehinderte Menschen könnte dies zwar sinnvoll sein, aber dann musst du das vorher sagen !!!
Ausserdem gibt es da ja die Bildschirmlupe.

also jetzt verstehe ich grad gar nix mehr. hier wird von bildschirmlupen gesprochen
sorry - soll das ein witz sein?
Schau dir mal die Delphi Entwicklungsumgebung an (siehe Anhang). Hier arbeitet man auch nicht mit Lupen
und der User kann sich auch das Fenster, das in zZt. am meisten interessiert, grösser ziehen


:?: :?: :?: :?:

raena 30. Apr 2008 13:29

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von shmia
Ja, eine einfache Möglichkeit ist es das TSplitter Control zu verwenden.
Man muss dabei aber beachten, dass das Property Align der Controls richtig zu setzen.
kleines Kochbuch:
* leeres Formular, Groupbox oder Panel bereithalten
* Panel drauf: Align = alTop
* Splitter drauf: Align = alTop, Color = alBlue (damit der Benutzer den Splitter auch sieht), Height = 4 (damit die Grobmotoriger keine Probleme haben)
* Irgend ein Grid, Treeview, Panel oder ähnliches darauf: Align = alClient

Das Prinzip ist immer so, das Control A entweder alLeft, alTop oder alBotton ist, der Splitter ebenso und Control B muss dann alClient sein.


Hi Shima,

ich habe nur das Problem, dass der Mousezeiger sich zwar ändert wenn man an die Kante vom Panel kommt,
sich das Panel in der Gösse aber nicht ändern lässt. Weisst Du warum? :roll:

raena 30. Apr 2008 13:49

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Liste der Anhänge anzeigen (Anzahl: 1)
schaut man sich die Borland Hilfe an, sieht man wie es ausssehen kann.
Hier kann der User auch die Grösse ändern. (siehe Anhang).
Aber vielleicht weiss ja auch niemand wie das geht.

shmia 30. Apr 2008 14:05

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von raena
Es geht darum, dass der Bediener sich das Element, das im jeweiligen Moment für ihn
am wichtigsten ist, gross ziehen kann.

Ich habe dich so verstanden, dass du die Controls skalieren möchtest.
Also z.B. ein Editfeld anklicken, grösser ziehen und dabei wird auch die Schriftgrösse angepasst.
(quasi für "Blinde")
Aber das war wohl ein Mißverständnis; du willst eigentlich nur TSplitter verwenden.
siehe Demo im Anhang

raena 30. Apr 2008 16:37

Re: Verändern d. Grösse von Lists, DBGrid, Edit Fields v. Us
 
Zitat:

Zitat von shmia
Zitat:

Zitat von raena
Es geht darum, dass der Bediener sich das Element, das im jeweiligen Moment für ihn
am wichtigsten ist, gross ziehen kann.

Ich habe dich so verstanden, dass du die Controls skalieren möchtest.
Also z.B. ein Editfeld anklicken, grösser ziehen und dabei wird auch die Schriftgrösse angepasst.
(quasi für "Blinde")
Aber das war wohl ein Mißverständnis; du willst eigentlich nur TSplitter verwenden.
siehe Demo im Anhang

Hi Shima,

yes thats it. Vielen Dank. Das ist genau das was ich gesucht habe. Mit dem tollen Beispiel kommt man sehr gut weiter. Ich muss mich entschuldigen. Ich denke meine Formulierung des Problems war nicht ganz
klar.

Vielen Dank. :angel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Seite 1 von 2  1 2      

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