Autor Beitrag
ardani
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP
Delphi 6, C++ (VS Express)
BeitragVerfasst: Fr 15.01.10 12:12 
Ich habe zu dem Thema schon die Suche bemüht, aber nichts gefunden.

Es geht mir darum, ich habe ein Programm, in dem ich mehrere Formulare in mein "Hauptformular" lade (per TMainMenu), jetzt möchte ich diese aber beim Kompilieren nicht direkt in der exe haben, sondern als extra dateien, um leichter updates machen zu können, haben. Und die Menüpunkte dann aus einer ini oder einer anderen Datei auslesen. So das ich wenn sich was ändert, nicht das ganze Programm neu "ausgeben" muss, sondern nur noch die neuen Dateien mitliefer und ein Update der Datei mache, in dem die neuen Menüpunkte stehen.

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen

mfg

ardani
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 15.01.10 13:21 
das heißt du willst gewissen formulare in einer Datei haben und dein Programm soll die Formulare beim Starten des Programms aus diesen Dateien laden?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
ardani Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP
Delphi 6, C++ (VS Express)
BeitragVerfasst: Fr 15.01.10 13:26 
ja, so ungefähr, z.B. nen Ordner Formular1, wo dann das Formular drinne liegt, aber auch die Unit die dazu gehört, und diese sollen beim start, bzw nach Aufruf einer Prozedur geladen werden und somit im Programm verfügbar sein.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 15.01.10 13:47 
Das einzige, was mir im Moment dazu einfällt, wäre ein Plugin System, z.B. mit DLLs.
Aber wozu das Ganze? Nur um ein paar MB Datenmengen bei einem Update zu sparen?
Warum nicht einfach alle Formulare in die exe einkompilieren, und per Ini oder was auch immer nur die Menüpunkte ausblenden?

_________________
PROGRAMMER: A device for converting coffee into software.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 15.01.10 13:52 
weil ardani ja immer wieder neue formulare hinzufügen möchte vielleicht und auch diese einzeln updaten.

das einzige was mir einfallen würde ist ebenfalls DLL, oder du schickst einfach immer die ganze Exe als update. auf die paar MB kommts im 21. Jhdt auch nimma an.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
ardani Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP
Delphi 6, C++ (VS Express)
BeitragVerfasst: Fr 15.01.10 14:32 
mir ging es eher darum, das Programm sozusagen live, oder "on the fly" updaten zu können.
Da wäre das ja eine gute Möglichkeit gewesen.
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 15.01.10 16:03 
user profile iconardani hat folgendes geschrieben Zum zitierten Posting springen:
mir ging es eher darum, das Programm sozusagen live, oder "on the fly" updaten zu können.
Da wäre das ja eine gute Möglichkeit gewesen.


Ich habe früher mit Progress 4Gl gearbeitet. Da geht das, weil jedes Formular in einer eigenen (vorkompilierten) Datei liegt.
In der Regel haben wir die Dateien auf einem Fileserver abgelegt und die Clients haben die dann von dort ausgeführt. Ich weiß gar nicht wie viele tausend Male ein Kunde verärgert war, weil Funktionen nicht mehr gingen, weil vergessen wurde die eine oder andere Datei zu kopieren. Oder Formular A öffnet Formular B. Jetzt macht man eine Änderung, wofür man beide Formulare ersetzen muss. Währenddessen hat aber User Forumular A geöffnet (also die alte Version im Speicher) -> beim Aufruf vom Formular B schmiert das Programm ab, weil die Versionen nicht zusammenpassne -> Kunde sauer -> "die sche*ß Software ist Schuld"

Ich würde die Idee verwerfen. Das bringt Dir mehr Probleme als Vorteile. Mit einer einzelnen EXE hast Du immer einen definierten Zustand.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1336
Erhaltene Danke: 119

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Fr 15.01.10 16:14 
Du hast zum einen die Möglichkeit das ganze via Laufzeitpackages zu erledigen also ist dann jedes Fenster oder jedes Modul ein Package (Bpl).
Weiter wäre es möglich mit Dll's zu arbeiten. Dafür soltest du dir aber eine Schnittstelle schreiben, über die du die Kommunikation vernünftig hinbekommst.
Wenn es dir nur um Dateneingabemasken geht reicht es auch nur die Dfm's der neuen Dialoge zu übertragen und diese dynamisch zu laden.

Aber eigentlich regt sich Heute keiner mehr auf wenn er beim Update mal ein paar MB serviert bekommt. Im Gegenteil, viel MB = viel schönes Programm, auch wenn es nur neue Skins sind. (DevExpress derzeit 10MB)

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Fr 15.01.10 20:04 
Hi,

ich persönlich empfehle da ja gerne mal user profile iconHelgeLanges Modular Application Framework. Das ganze gibt es selbstverständlich als Personal Edition für lau. Alles weitere hierzu kann man dann seinem Post entnehmen.

Damit kannst du gänzlich dynamisch Formulare ergänzen, Funktionen austauschen, hinzufügen, Methoden anders implementieren, Komponenten erstellen und hassunichgesehn. Alles via DLLs.

Also: Merken!
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Fr 15.01.10 22:06 
user profile iconardani hat folgendes geschrieben Zum zitierten Posting springen:

Es geht mir darum, ich habe ein Programm, in dem ich mehrere Formulare in mein "Hauptformular" lade (per TMainMenu), jetzt möchte ich diese aber beim Kompilieren nicht direkt in der exe haben, sondern als extra dateien, um leichter updates machen zu können, haben. Und die Menüpunkte dann aus einer ini oder einer anderen Datei auslesen. So das ich wenn sich was ändert, nicht das ganze Programm neu "ausgeben" muss, sondern nur noch die neuen Dateien mitliefer und ein Update der Datei mache, in dem die neuen Menüpunkte stehen.

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen


Kein Problem, ein Plugin-System am einfachsten basierend auf Packages. Was Du brauchst, ist ein Basis-Package, welches eine Moeglichkeit bietet, Formulare (oder generell Objekte) zu registrieren. Dann diese Registrier-Funktion beim Laden eines Plugin-Packages automatisch aufrufen lassen. Danach stehen dann die Objekte/Formulare zum Aufruf zur Verfuegung.

OK, vielleicht ist es doch ein wenig komplizierter als das, aber so ist das generelle Prinzip ... ;-)

twm