Delphi-PRAXiS
Seite 8 von 18   « Erste     678 910     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Manifest-Creator (https://www.delphipraxis.net/139658-manifest-creator.html)

himitsu 28. Mai 2010 12:53

Re: Manifest-Creator
 
Zitat:

Zitat von taveuni
Danke. Ich hab aber D2007 nicht D7. Aber vermutlich egal.

Die 2007 hab ich halt nicht, aber ich denke mal, als Vergleich dürfte die 2006 (Turbo Delphi) ausreichen, denn dort sieht der Fehler auch so aus.

Ich mach rade einen anderen Thread dazu auf, denn es liegt eindeutig an Delphi
und vielleicht kennt ja jemand eine Lösung.

himitsu 29. Mai 2010 13:15

Re: Manifest-Creator
 
Wenn die IDE-Integration jetzt nicht läuft, dann weiß ich auch nicht mehr weiter. :?

Zitat:

aber aus gegebenem Anlaß geht ich nun erstmal über eine zweite Anwendung, welche die/den "einen" übergebenen Parameter analysiert, beim Fehlen der " die vielen Parameter wieder zu Einem zusammensetzt, alles um das Parameter-Prefix und den zweiten Parameter erweitert und das dann an meinen MC weiterleitet.
> http://www.delphipraxis.net/internal...156608#1156608

Nicht wuntern, die zweite Anwendung ist direkt in der EXE integriert und wird bei Bedarf ins Programmverzeichnis kopiert.
(witzig nur, daß diese EXE in D4 kompiliert größer ist, als mit D7 :shock: ... ok, danach wird es immerhin wieder größer)

taveuni 31. Mai 2010 06:44

Re: Manifest-Creator
 
Guten Morgen!

Erfreulich was Du übers Wochenende gemacht hast. Ich hab Deine letzte Version getestet.
Funktioniert bei mir perfekt!

Etwas vermutlich nebensächliches:
Im Programmverzeichnis des Creators wird eine .manifest erstellt
(vermutlich die letzte welche bearbeitet wurde?).

Wunsch: Eine Kleinigkeit würde ich mir noch wünschen:
Nämlich die Möglichkeit ein komplettes (Creator-)Projekt als default Template zu erstellen.
Die Abweichung zum Programmdefault könntest Du ja in der ManifestCreator.ini im Programmverzeichnis
speichern? Wenn dann der Creator aus der IDE aufgerufen wird und kein $Project.manifest.ini vorhanden
ist könnten einfach die Parameter aus dem default geladen werden.
Damit würde sich meiner Meinung nach auch erübrigen noch mehr Parameter via Kommandozeile zu integrieren.

Vielen Dank für Deine Arbeit für etwas was eigentlich schon lange in die IDE gehört hätte.

himitsu 31. Mai 2010 21:21

Re: Manifest-Creator
 
  • neue Parameterbehandlung
    wenn dieses noch ein bissl ausgefeilter ist, dann könnte die IDE-Integration vielleicht auch wieder ohne Hilfsprogramm laufen :-D
  • die IDE-Integragion scheint aber wenigstens erstmal zu laufen
  • ActiveX und die unterstützen OS werden nun unmissverständlicher in der Projektdatei gespeichert, so daß es zu weniger Ladeproblemen kommt, wenn sich die entsprechende Liste inzwischen geändert hatte
  • außerdem wird nun die ActiveX-Liste gespeichert, wenn sie von einem zu ladenden Projekt benötigt wird, und somit auch die Einträge richtig geladen werden
  • das Manifest in der Resource wird nicht mehr komprimiert ... Windows mochte es irgendwie nicht, wenn da zuviele Leerzeichen und Zeilenumbrüche fehlten (es meinte dann die Datei sei nicht Standardkonform)
  • man kann ein Standardprojekt abspeichern (siehe Optionen)
  • alternativ kann man via Parameter auch ein anderes Standardprojekt angeben
  • via Parameter lassen sich auch die Versionsinfos unter Idendity/Identität ändern
  • für diese Parameter einfach mal in den [info]-Teil des Programms schauen
  • eine über die IDE-Integration erstelle Projektdatei wird nicht mehr gleich zu Programmstart angelegt/gespeichert (war etwas blöd, wenn man das Programm beendete und "Nee, nicht speichern" sagte)
  • Zitat:

    Im Programmverzeichnis des Creators wird eine .manifest erstellt
    (vermutlich die letzte welche bearbeitet wurde?).
    Hier wurde nur etwas falsch verglichen und je eine "namenlose" Datei angelegt, wenn über den Parameter eine Projektdatei geladen wurde, aber darin kein .manifest oder .rc angegeben war.
  • aktuelle Dateien siehe Post #1
    und hier im Anhang liegt eine Debugversion, welche vor Dateizugriffen (lesen oder speichern) eine Messagebox mit dem Dateinamen anzeigt ... falls dennoch irgendwo verdächtige Dateien auftauchen (im Code siehe DEFINE ShowFileAccess)

[edit]
Anhang entfernt ... neue Version in Beitrag #80

himitsu 1. Jun 2010 08:00

Re: Manifest-Creator
 
Zitat:

Zitat von taveuni
In der neuesten Version ist bei mir "Unterstütztes BS" leer.

Ups, ist mir garnicht aufgefallen
(hatte aber auch garnicht danach geguckt, weil ich doch eigentlich nichts geändert hatte, außer die Lokalisierung für diese Liste abzuschalten :oops: ).

Delphi-Quellcode:
Function TForm1.LangCount(Typ, Name, Lang: String): Integer;
  Var Nodes: IXMLDOMNodeList;

  Begin
    ...
    If Result = 0 Then Result := LangCount(Typ, Name, '*');
  End;
Was eine kleine (mal absichtlich weggelassene) Zeile später für Auswirkungen haben kann. :wall:

Mal sehn, wie ich dieses dennoch besser lösen kann.
Denn falls man nun sprachabhänige und sprachunabhängige Texte hinterlegt, stimmt die Zählung nicht mehr, aber mir fällt ein, daß sie dann vorher auch nicht stimmte ... da hatte ich mir wohl was falsches gedacht ... und nein, Folgendes geht auch nicht.
If Lang <> '*' Then Inc(Result, LangCount(Typ, Name, '*'));

Aber da hier aktuell nix gemischt ist, geht es erstmal so. :roll:

taveuni 1. Jun 2010 08:48

Re: Manifest-Creator
 
Zitat:

Zitat von himitsu
[*] eine über die IDE-Integration erstelle Projektdatei wird nicht mehr gleich zu Programmstart angelegt/gespeichert (war etwas blöd, wenn man das Programm beendete und "Nee, nicht speichern" sagte)

Da versteh ich das Konzept nicht (mehr).
Das automatische anlegen und speichern war sehr praktisch.
So wie es nun aussieht werden die Änderungen welche gemacht werden auf die Speichern? abfrage beim schliessen des Creators
in der Ini welche im Creator Verzeichnis liegt gemacht? Sollte das nicht die default.ini sein?.

Muss ich nun jedes Mal für jedes Projekt den Namen des Mainifests und der *.rc angeben? (Und der Ini?)

:?

Edit:
Hab eben gesehen das der Parameter mit dem IniFile nicht mehr drin ist.
Wie muss ich den die Parameter setzen wenn ich will:
- Wennn keine $Project.manifest.ini vorhanden lade default.manifest.ini und speichere diese als $Project.manifest.ini
- Wenn eine da nimm diese.

himitsu 1. Jun 2010 09:26

Re: Manifest-Creator
 
[edit]
Es hatte sich ein Fehler beim Laden des Defaultprojekts ergeben ... hatte vergessen den Projektnamen danach zu entfernen :oops:
[/edit]

Beim Programmstart wurde "ausversehn" schon eine Projekt-Ini erstell/gespeichert, wenn diese noch nicht existierte.
Das bereitete soweit auch keine Probleme, solange man am Ende das Projekt speicherte.
Wenn man aber am Ende doch nicht speicherte, dann blieb ja dennoch diese Datei zurück (mit Standardeinstellungen).

Also diese Datei(en) werden dennoch angelegt, wenn man beim Programmende speichert (also einfach auf "JA" klickt) und nicht die Änderungen verwirft.

Zitat:

Muss ich nun jedes Mal für jedes Projekt den Namen des Mainifests und der *.rc angeben? (Und der Ini?)
Wenn man von der IDE aus den Creator startet und er noch kein Manifest-Projekt entdeckt, dann wird das Standardmanifest genommen, dazu wird über den Delphi-Projektnamen, durch änderung der Dateierweiterung, ein Manifest-Projektname generiert und standardmäßig erstmal die .RC zur Generierung eingerichtet.
Außerdem ist standardmäßig der Haken bei RES-erstellen gesetzt.
Klickt man am Ende auf "Ja, ich will die Änderungen speichern", dann würde somit die INI, die RC und die RES erstellt.

Zitat:

Hab eben gesehen das der Parameter mit dem IniFile nicht mehr drin ist.
Da es ja einige Probleme seitens der IDE gibt, wird von da nur noch der Projektname rausgerückt und die IDEForward.exe prüft dann diesen Namen, paßt ihn notfalls an und ergänzt den kompletten Parameter so, daß er dann für den Manifest-Creator dann wieder stimmt.

siehe
Zitat:

Nun, in meinem Fall wollte ich aber nicht die Parameterbehandlung im eigenem Programm verändern und hab mir somit ein Hilfsprogramm erstellt, welches den Parameter parst, anpaßt und an die eigentlich Anwendung weitergibt.
http://www.delphipraxis.net/internal...156755#1156755



Zu dem Default-Projekt:

Unter [Optionen] kannst du das aktuelle Projekt als Standardprojekt intern abspeichern.
(man könnte auch irgendwo ein anderes Projekt anlegen, welches man via Parameter als Standardprojekt festlegt, aber dieses geht aktuell nicht über die IDE-Integration)
Wenn nun der Creator gestartet und kein Projekt geladen/gefunden wird, so werden diese Daten geladen.

himitsu 1. Jun 2010 11:08

Re: Manifest-Creator
 
Zitat:

Zitat von taveuni
Vermutlich bin ich zu blöd.

- Ich habe den Creator ersetzt.
- Ich speichere ein Standartprojekt.
- Ich öffne in IDE ein Projekt ohne manifest.ini
Das Standardprojekt wird geladen :)
Aber keines erstellt (weder ini noch rc) :(
- Ich ändere die Parameter und schliesse den Creator
Es kommt keine Abfrage
:(

Tschuldschung.

Nach dem Laden des Projektes setze ich nun den internen "Änderungs"-Speicher zurück,
somit sollte die Abfrage nun erscheinen.

Oh man, es ist garnicht so einfach eine Abfrage zu gestalten, ob sich etwas im Projekt verändert hat.
(hier wird ja nur auf "richtige" Änderungen ragiert ... etwas ändern und rückgängig machen wird da mit beachtet, außerdem kann ich nicht einfach so z.B. auf "OnChange" irgendwelcher Controls reagieren und dementsprechend den Änderungsstatus setzen, da sich diese Ereignisse auch mit ungespeicherten Controls vermischen ... wird alles über's selbe Event behandelt)

Außerdem gab es einen winzigen Fehler in der IDEForward.exe, welcher ein "-" unterschlug.
Die IDE-Integration müßte also neu eingerichtet werden.
(falls es nochmal eine Änderung diesbezüglich gibt, wird die nächste Version des MF eine Warnung ausgeben, wenn die Integration geupdatet werden müßte)


Und wehe jemand finde jetzt noch 'nen Fehler ... dann heul ich :?
So, nun abwaschen (aufgegessen hab'sch schon :stupid: ) und dann zurück zu den RegExen.

taveuni 1. Jun 2010 12:22

Re: Manifest-Creator
 
Juppii - Es läuft :cheers:

Ich hab auf Anhieb keinen Fehler mehr gefunden und kann himitsu's Manifest-Creator nun
uneingeschränkt empfehlen. Mit diesem ist es nun endlich einfach möglich alle die Projektoptionen,
das Manifest und das Icon in einem Guss zu halten und auch zu pflegen (sogar in der IDE!).

(Meinen Arbeitskollegen hatte ich heute Morgen eine nicht-funktionierende Version angedreht.
Ich werd nun die neueste Version reinkopieren und bin sicher da wird die Begeisterung ebenfalls
grenzenlos sein.)

Danke

himitsu 2. Jun 2010 23:53

Re: Manifest-Creator
 
Liste der Anhänge anzeigen (Anzahl: 1)
Funktionsteschnich nicht viel
  • "kleine" Geschwindikeitssteigerung bei der Auswertung/Dateizusammenstellung
    (bei zeilenweiser Befüllung bremsen die Memos ja gewaltig)
  • Parameterbehandlung weiter verbessert (nun klappts auch wieder mit der IDE)
  • Code gewaltig aufgeräumt ... die Hauptunit ist nun knapp 1000 Zeilen schlanker :shock:
  • einiges an Code ausgelagert (für andere zugänglich)
    FileInfo (Dateiversion und andere Resourcen)
    Programmparameter auslesen
  • die IDE-Integration funktioniert dadurch endlich auch ohne Hilfsmittel :firejump:
    (siehe Parameter-Thread)
  • das Programm meldet sich nun, falls IDE-Integration sich beim Upgrad ändert ... also jetzt
  • die IDEForward.exe kann danach (manuell) gelöscht werden
  • man kann nun zwischen zwei Resourcen-Compilern auswählen
  • entsprechend wurde die .rc etwas optimiert

Das Icon-Problem nehm ich mir wohl übers Wochenende mal vor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 Uhr.
Seite 8 von 18   « Erste     678 910     Letzte »    

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