AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wohin mit den Nicht-Visuellen Komponenten?

Ein Thema von Jazzman_Marburg · begonnen am 11. Jun 2011 · letzter Beitrag vom 12. Jun 2011
Antwort Antwort
Seite 2 von 3     12 3      
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 11:32
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.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 11:34
Ein Menü ist ja auch irgendwie visuell
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 12:21
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#14

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 12:29
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 12:36
oder selbst im Quellcode erzeugen - das hat dann sogar den Vorteil, dass diese nicht als Komponenten installiert werden müssen; dadurch kann man die Libs dann leichter projektweise updaten.
What you can do at designtime, don't do at runtime. Daran halte ich mich auch in der Regel, weil überflüssiger Code dann nicht im Quelltext auftaucht. Und wer Eigenschaften in den Komponenten verstellen kann, kann dies auch im Quelltext. Das kann also keine Begründung sein. Aber gibt es denn so viele nicht-visuelle Komponenten, dass man sich sein ganzen Formular zu pflastern kann? Ich schiebe sie meist irgendwo in die Ecke, wo sie nicht stören.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#16

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 13:29
Diese lege ich im OnCreate der Form fest.
Dabei setzt man aber die Höhe des Client-Bereichs und nicht Form-Höhe.
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 14:15
What you can do at designtime, don't do at runtime.
Warum schreibst Du das nicht auf Deutsch ? So verstehts ja keiner.

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. 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 ?

P.S.: was heisst übrigens "gutes Dutzend" ? Von was ? Das kann man ja wirklich locker in die Ecke schieben.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#18

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 19:58
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.
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 20:08
Ein ganz klares: Kommt drauf an. Komponenten, die primär für GUI Funktionalitäten zuständig sind (dazu würde ich z.B. eine ActionList zählen) dann gehören sie für mich auf die Form.
Das sehe ich ein wenig anders.

Also gerade Actionlisten enthalten, zumindest meiner Meinung nach, doch grosse Teile des Business-Logik. Fügt man diese in ein Datenmodul ein so hat man die Logik in diesem Modul "gesammelt" und von der GUI, also dem Formular, getrennt.

(wobei z.B. OnUpdate-Methoden eventuell da eine "Grauzone" darstellen)
Ich sagte ActionList, und nicht die Events davon... Angenommen, du hast nen MenuItem im MainMenu, eins in nem PopupMenu und noch nen ToolButton. An alle 3 kommt die gleiche Action. Dann kommt das Event ins DataModule (oder sonstwo hin, aber nicht ins Form!) aber die ActionList kann locker aufm Form bleiben.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#20

AW: Wohin mit den Nicht-Visuellen Komponenten?

  Alt 11. Jun 2011, 22:24
Warum schreibst Du das nicht auf Deutsch ? So verstehts ja keiner.
[...]
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.
Also du bleibst wirklich besser beim Deutschen
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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