Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Panel - nur UNTEREN Teil anzeigen (https://www.delphipraxis.net/206729-panel-nur-unteren-teil-anzeigen.html)

NicoleWagner 23. Jan 2021 14:55

Delphi-Version: 5

Panel - nur UNTEREN Teil anzeigen
 
gegeben sei ein Panel mit viel Zeug drauf.
Sagen wir mal, es wäre 600 hoch.

Panel1.height:=300;
Panel1.Top:=240;

würde bewirken, dass es 240 von oben heruntergesetzt wird und nur den OBEREN Teil anzeigt.
Also auch nur das "Zeug", das im oberen Teil sichtbar ist.

Meine Frage: Gibt es auch einen Weg, dass nur der UNTERE Teil sichtbar ist?

Hintergrund: Bei einem bestimmten Aufruf sollten bestimmte Buttons nicht klickbar sein.
Sie via Panel "unsichtbar" zu halten, erscheint mir viel weniger Aufwand, als sie alle einzeln auszublenden.

Danke für Hinweise!

dummzeuch 23. Jan 2021 15:11

AW: Panel - nur UNTEREN Teil anzeigen
 
Würde ich beides nicht machen, denn die Buttons sind auch dann "klickbar", wenn sie außerhalb des sichtbaren Bereichs liegen. Einfach mit Tab den Button selektieren und dann mit Leertaste drücken. Ähnliches gilt auch für andere Controls, die den Eingabefokus bekommen können.

Wenn es sein muss, kann man die Controls in einer Schleife durchgehen und anhand ihrer Position (oder eines anderen Kriteriums z.B. dem Tag) ausblenden. Oder man legt sie auf zwei getrennte Panels und blendet das jeweilige Panel aus.

NicoleWagner 23. Jan 2021 15:28

AW: Panel - nur UNTEREN Teil anzeigen
 
Danke! Das habe ich nicht bedacht.
Das werde ich so machen mit den 2 Panels.

jobo 23. Jan 2021 17:37

AW: Panel - nur UNTEREN Teil anzeigen
 
2 Panels sind sicher die bessere Lösung.

Noch eine Idee:
Wenn der Datensatz, der angezeigt wird, in einem Zustand ist, der bestimmte Aktionen verbietet, dann definiere den Zustand.
Definiere eine Variable dafür. Das kann im einfachsten Fall ein Bool sein. Vielleicht gibt es auch mehrere Zustände, dann wäre es eher ein enum oder sowas.
Sowas könnte man "Lifecycle" nennen, z.B. "neu", "in Prüfung", "geprüft", "bewilligt", "abgelehnt", "erledigt".
Buttons und Felder können nun ihre Sichtbarkeit, ihre Klickbarkeit, die Editierbarkeit usw. von diesem Zustand abhängig machen.
Die Überlegung, welche Zustände sinnvoll oder minimal notwendig sind, ist auch ein guter Antrieb für eine klare Programmierung und Benutzerführung.

Das hätte den Vorteil, dass Du nicht Buttons zwischen Panels "rumschubsen" musst, wenn sich an der Mechanik was ändert. Es bietet die Möglichkeit, Objekte zu disablen und Hinweistexte für die Ursache des Disables zu liefern, z.B. "Nur bewilligte oder abgelehnte Vorgänge können als erledigt markiert werden."


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 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