![]() |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Ich würde die nichtvisuellen Komonenten auch möglichst in Datamodule oder auch auf normale Forms, die nie angezeigt werden auslagern.
Wenn es nicht geht (z.B. Mainmenu hab ich noch nicht versucht) dann kann man GExperts installieren, mit dem man diese Komponenten bei Bedarf sichtbar/unsichtbar machen kann. |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Ein Menü ist ja auch irgendwie visuell
|
AW: Wohin mit den Nicht-Visuellen Komponenten?
Das MainMenu hatte ich früher in einem DataModule liegen. Angezeigt wurde es ganz normal im MainForm.
Ich fand aber praktisch, dass das Icon während der Designzeit nicht auf dem Formular rumlag. Diese Konstellation hat jedoch während der Entwicklung ständig die MainForm-Höhe verringert... Das Formular wurde immer beim Öffnen (oder war es Speichern?) des Projektes um 20 Pixel oder so verkleinert. |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Hmm bei einem Projekt habe ich eine feste Form Höhe von 200px. Diese lege ich im OnCreate der Form fest. Im Form Designer ist die Form höhe 400px und im Bereich 201-400px liegen solchen Dinge :)
Hatte auch das Problem das immer alles verdeckt wurde. Aber das mit dem Datamodule ist mit Sicherheit die bessere Variante :P |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Zitat:
|
AW: Wohin mit den Nicht-Visuellen Komponenten?
Zitat:
Da sich die Größe der Titelleiste und der Rahmen ändern kann. Außerdem beschränkt man so die Benutzer, welche die Form skalieren wollen. |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Zitat:
Ich muss das aber etwas erweitern bzw. relativieren : Don't do something at runtime, if you don't know, how much you need. Also, wenn man zur Designtime nicht genau weiss, wieviele Komponenten man braucht, dann werden die eben zur Laufzeit erzeugt. Dafür einen sinnvollen Einsatzzweck zu haben ist gar nicht so einfach. Allerdings habe ich ein Beispiel wo es kaum anders geht : Touchscreen zur Warenerfassung. Zuerst stehen da die Warengruppen auf der Form als Panele. Ist eine ausgewählt, dann sollen die Artikel angezeigt werden etc. Wieviele Panele es gibt, das hängt dann davon ab, wieviele Warengruppen/Artikel angelegt sind. Für das Ganze wird dann eine Form mit Panelen zugekleistert. Dabei muss alles codemässig gesetzt werden : die Koordinaten, der Name, Caption, OnClick usw., eben alles vom Programm. Da die Anzahl der Datensätze zur Designtime nicht bekannt ist, kann ich also auch nicht einfach zur Designtime eine gewisse Anzahl an Panelen auf die Form klatschen und sie in Position bringen. Zur Frage an sich : alles gehört dahin, wo die Programmlogik auch ist. Sollte dieser Touchscreen z.B. noch einen Timer brauchen für Uhrzeitanzeige oder so, dann kommt der auch auf die entsprechende Form und nicht etwa in ein Datamodul, nur weil er nichtvisuell ist. Ich habe sogar 4 Datamodule, weil nur eines überlaufen würde. :lol: Was jetzt wo drin ist, das hängt einzig und allein von der Programmlogik ab. Oder vom Typ. Stored Procedures sind z.B. überwiegend in einem Datamodule. D.h. die sind nicht zwingend da, meistens jedoch schon. Und es gibt noch anderes nichtvisuelles, nicht nur Komponenten. Irgendwelche Funktionen etc. Die kommen in eigene Unit. Das ist dann so was wie Netto, Brutto usw. Umgekehrt rum gibts auch Datasets direkt auf einer Form. Das wäre dann so etwas, was nur die eine Form betrifft. Warum soll ich auch noch damit das Datamodul belästigen ? :cyclops: P.S.: was heisst übrigens "gutes Dutzend" ? Von was ? Das kann man ja wirklich locker in die Ecke schieben. :mrgreen: |
AW: Wohin mit den Nicht-Visuellen Komponenten?
Allgemeines geht ins DataModul und sonst neige ich zu einem Panel am unteren Formularrand, was auf visible=false gestellt ist. Man kann dann sogar Bereiche unterteilen mit SubPanels. Aber das ist nur bei wenigen großen Projekten nötig.
|
AW: Wohin mit den Nicht-Visuellen Komponenten?
Zitat:
|
AW: Wohin mit den Nicht-Visuellen Komponenten?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz