Delphi-PRAXiS

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/)
-   -   Delphi Form mit Kommandozeilenkompiler in Objektablage verschieben (https://www.delphipraxis.net/71338-form-mit-kommandozeilenkompiler-objektablage-verschieben.html)

pszopp 13. Jun 2006 14:09


Form mit Kommandozeilenkompiler in Objektablage verschieben
 
Hallo Zusammen,

Ich habe ein Formular erstellt, welches ich der Objektablage hinzufügen möchte.
Normalerweise mache ich das in der IDE über den Kontextmenü-Punkt "Der Objektablage hinzufügen...".

In diesem Fall würde ich das aber lieber mit einer Batch-Datei realisieren.
Im Forum habe schon nach ähnlichen Themen gesucht, aber nichts gefunden.

Hat jemand vielleicht ein Idee, wie man ein Formular per Kommandozeilen-Kompiler in die Objektablage einfügt?
Zur Not würde es auch reichen, wenn ein in der Objektablage befindliches Formular per Batch-Datei aktualisiert wird.


Viele Grüße,
pszopp

marabu 13. Jun 2006 16:40

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Hallo,

bevor du mit Antworten aus dem D2006-Lager zugeschmissen wirst: in D7 findest du im Verzeichnis $(DELPHI)\Bin die Datei DELPHI32.DRO, eine leicht verständliche INI-Datei, in der jedes repository object aus dem Verzeichnis $(DELPHI)\ObjRepos als Abschnitt registriert ist und die Angaben aus den Dialogen "Der Objektablage hinzufügen" die Schlüssel/Werte-Paare bilden. Ich weiß nicht, ob sich da soviel geändert hat.

Grüße vom marabu

Hansa 14. Jun 2006 11:25

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Zitat:

Zitat von marabu
...bevor du mit Antworten aus dem D2006-Lager zugeschmissen wirst...Ich weiß nicht, ob sich da soviel geändert hat.

Mich wundert eher, daß überhaupt eine Antwort kommt. Geändert hat sich allerdings schon grundsätzliches. Statt INI-Dateien haben sie ab D2005 XML-Dateien verwendet. Nun ja, wird schon seinen Grund haben. Gut ist, daß es sich nach wie vor lediglich um Textdateien handelt.

Allerdings sehe ich keinen Grund für die Frage. Was hat das abspeichern von Dateien mit DCC32 zu tun ? :shock:

pszopp 19. Jun 2006 16:01

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Danke für die schnellen Antworten.

@marabu:
Ich habe mir die Datei "Delphi32.dro" mal unter Delphi7 angeschaut und auch verstanden.
Unter D2006 habe ich diese Datei nicht mehr gefunden.
Auch unter den Xml-Dateien konnte ich nicht die passende finden.


@Hansa:
Ich will ein Formular-Template automatisiert aktualisieren.
Das muss nicht unbedigt mit DCC32 geschehen.


Viele Grüße,
pszopp

Hansa 19. Jun 2006 18:25

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Zitat:

Zitat von pszopp
...Ich will ein Formular-Template automatisiert aktualisieren...

das Problem sind hierbei hauptsächlich die DFM-Dateien. Folgende Möglichkeiten bestehen für OOP mit Delphi :

1. Klassen ableiten

So in etwa :

Delphi-Quellcode:
type TMyForm = class (TForm);
Das wäre Dein Weg. Alles auf den Forms selber erzeugen, Koordinaten und den ganzen Krempel zur Laufzeit festlegen usw. Vorgehensweise ähnlich wie ab TP 5.5. Programm schreiben, welches die PAS und DFMs modifiziert usw.

2. Objektablage benutzen

Du erzeugst eine Form mit Button. Schiebst den an die richtige Stelle. Änderst noch die Farbe, Schriftgröße, Tastatur/Mausereignisse und blabla (TMyForm). Diese kommt ins Repository. Alles innerhalb der IDE ! Die nächste Form kommt jetzt von da (Vererbung). Und siehe an : Der Button ist schon da und der vorher definierte Kram auch ! Der Button ist allerdings an ungünstiger Stelle -> an gute Stelle ziehen und fertig.

Kommandozeile hebelt das ganze allerdings fast schon aus. Mehr schreiben nützt wohl nichts, weil sowieso keiner das so benutzt. Das mit den XML kam übrigens direkt von Borland. Wegen .NET und der geringen Anwendung solcher Techniken hatte ich die Befürchtung, daß das Konzept so nicht weitergemacht wird. 8)

pszopp 20. Jun 2006 09:11

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
OK,

wie ich ein Formular manuell (in der IDE) aktualisiere weiß ich.

Der Knackpunkt ist, dass ich das Formular-Template aus dem
Repository mit verschiedenen Versionen lade.
Bei einem Update aus dem Repository muss ich Delphi also beibringen,
dass sich das Formular geändert hat.


Viele Grüße,
pszopp

Hansa 20. Jun 2006 10:44

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Zitat:

Zitat von pszopp
..Bei einem Update aus dem Repository muss ich Delphi also beibringen,
dass sich das Formular geändert hat.

Ich glaube das Thema hier gehört tatsächlich in eine meiner "Lieblingskategorien". 8) Denn : der Sinn des Vorhabens ist nicht zu erkennen. Der Weg zum Ziel ist schleierhaft. Die Werkzeuge, um das "Ziel" zu erreichen sind total verkehrt. So ist das. :mrgreen: Also nochmals : die Objektablage dient dazu, sich selber Forms usw. anzulegen und grundlegende Eigenschaften dort zu definieren. Und wenn es nur ein caFree im OnClose ist, damit das nicht vergessen wird. Und dann nicht einfach nur neu -> Form, sondern neu -> weitere -> MyForm zu benutzen. Somit sind die Eigenschaften der Form vorhanden und die Quelltexte werden dann automatisch richtig angelegt. Bei Kommandozeile muß man eben bloß manuell sämtliche Dateien so ändern, wie es die Objektablage sowieso automatisch macht.

pszopp 21. Jun 2006 08:50

Re: Form mit Kommandozeilenkompiler in Objektablage verschie
 
Dank marabu und ezekiel habe ich das Problem jetzt gelöst.
Bei Delphi 2006 befinden sich alle Formular-Templates in der Datei Objrepos\BorlandStudioRepository.xml.
Die Datei ist leicht verständlich und kann einfach editiert werden.

Viele Grüße,
pszopp


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