Entwickler-Ecke
Programmierwerkzeuge - InnoSetup: 2 Komponennten ausgewählt,um datei zu kopieren
MrKnogge - Di 01.06.04 14:29
Titel: InnoSetup: 2 Komponennten ausgewählt,um datei zu kopieren
Moin !
hm, nochmal InnoSetup.
Durch:
Quelltext
1:
| Source: C:\MeinProgramm\MeinProgramm.exe; DestDir: {app}\; Components: main zusatz |
wird ja erreicht, dass die Datei (MeinProgramm.exe) kopiert wird, wenn die
Componennte main oder die Componennte zusatz ausgewählt wird. Gibt es eine Möglichkeit,
dass eine Dateinur kopiert wird wenn beide Compponennten ausgewählt werden.
Wozu das ganze ?
Ganz einfach, die Komponennten-Auswahl meiner Installation sieht folgender maßen aus:
- Hauptprogramm
--- Hilfe
--- Sprachen
----- deutsch
----- english
----- fran<00E7>ais
- Zusatzprogramm
--- Sprachen
----- deutsch
----- english
----- fran<00E7>ais
Dies ist allerdings bei mehreren Programmen ziemlich unübersichtlich
und umständlich, da ich mal davon ausgehe, wenn ein Benutzer eine zusätzliche
Sprache installieren möchte, er diese für alle Programme möchte.
Deswegen möchte ich dies liebe folgendermaßen gestalten:
- Hauptprogramm
--- Hilfe
- Zusatzprogramm
- Sprachen
--- deutsch
--- english
--- fran<00E7>ais
Nur möchte ich nun natürlich die nötigsten Sprach-Dateien installieren.
Oder habt ihr eine andere Idee dies zu bewerkstelligen ?
Delete - Di 01.06.04 15:20
Würden dir die Tasks (= allgemeine Aufgaben) weiterhelfen?
Quelltext
1: 2: 3: 4:
| [Tasks] Name: deutsch; Description: "Deutsch"; GroupDescription: "Verfügbare Sprachen"; Flags: unchecked; Name: englisch; Description: "Englisch"; GroupDescription: "Verfügbare Sprachen"; Flags: unchecked; Name: franz; Description: "Französisch"; GroupDescription: "Verfügbare Sprachen"; Flags: unchecked; |
Dann könntest du bspw. die Dateiangaben wie folgt ergänzen:
Quelltext
1: 2:
| [Files] Source: "deutsch.dll"; DestDir: "{app}\1031"; Tasks: deutsch |
usw.
Clever wäre, wenn du dein Setup auch gleich mehrsprachig gestaltest, so dass jeder auch beim Setup die ihm genehme Sprache wählen kann. Ich habe mich jetzt nicht explizit damit beschäftigt, aber ich denke über die [Code]-Sektion gäbe es dann sicher noch eine Möglichkeit, die beim Setup ausgewählte Sprache zu benutzen um den entsprechenden Task zu aktivieren. ;)
Als Beispiel: Ich hatte mal ein Testsetup, das als Task die PSDK-Integration anbot. Wenn das PSDK nicht installiert war, dann sollte der Task nach Möglichkeit auch deaktiviert werden. Das sah bei mir dann so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| [CustomMessages] PSDKPlugin=Hilfedokumente in Microsofts PSDK integrieren
[Tasks] Name: psdkplugin; Description: ""; Flags: unchecked;
[Code] const szPSDKPath = 'Software\Microsoft\MicrosoftSDK\Directories'; szPSDKVal = 'Install Dir';
procedure CurPageChanged(const iCurPage: integer); var res : boolean; psdk : string; i : integer; begin if(iCurPage = wpSelectTasks) then begin res := (RegQueryStringValue(HKEY_LOCAL_MACHINE,szPSDKPath,szPSDKVal,psdk)) and (psdk <> '') and (DirExists(psdk));
if(not res) then begin i := WizardForm.TasksList.Items.IndexOf(ExpandConstant('{cm:PSDKPlugin}'));
if(i <> -1) then WizardForm.TasksList.ItemEnabled[i] := false; end; end; end; |
Ich denke, nach dem Prinzip kann man den Haken für einen Task auch setzen. :)
MrKnogge - Di 01.06.04 15:55
Hi,
vorab mehrsprachig ist das Setup bereits (es fehlen nur noch wenige CustomMessages), wobei mir dein Tutorial ebenfalls eine kleine Hilfe war. An Tasks habe ich auch bereits gedacht, nur quirlt der Task-Abschnitt schon jetzt so über, dass ich kurz davor stehe eine eigene SetupSeite per Hand oder mit dem FormDesigner zur erstellen, um wieder Übersicht in meinen Wizard zu bekommen. (den Scrollbalken halte ich nicht für allzu elegant.)
Ich werde dann wohl anhand der Code-Sektion überprüfen, welche Komponennten augewählt wurden und dementsprechend die Sprachdateien selbst kopieren.
Delete - Di 01.06.04 16:32
Hm, in dem Fall würde ich auch eine eigene Seite nur für die Sprachauswahl entwerfen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!