Autor Beitrag
MrKnogge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 76

Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
BeitragVerfasst: Di 01.06.04 14:29 
Moin !

hm, nochmal InnoSetup.

Durch:

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

_________________
MfG MrKnogge
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 01.06.04 15:20 
Würden dir die Tasks (= allgemeine Aufgaben) weiterhelfen?
ausblenden 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:
ausblenden 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:
ausblenden volle Höhe 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: "{cm:PSDKPlugin}"; Flags: unchecked;

[Code]
//
// PSDK check
//
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 <> -1then
        WizardForm.TasksList.ItemEnabled[i] := false;
    end;
  end;
end;

Ich denke, nach dem Prinzip kann man den Haken für einen Task auch setzen. :)
MrKnogge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 76

Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
BeitragVerfasst: 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.

_________________
MfG MrKnogge
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 01.06.04 16:32 
Hm, in dem Fall würde ich auch eine eigene Seite nur für die Sprachauswahl entwerfen.