Einzelnen Beitrag anzeigen

markusl

Registriert seit: 25. Apr 2006
Ort: Rotkreuz
21 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: inno setup. anfängerfrage

  Alt 4. Jul 2006, 08:11
Moin!

Innerhalb der [Files]-Section hast du beispielsweise:

Source: develop\exe\test.exe; DestDir: {app}\bin; Flags: overwritereadonly; Components: dbserver; Check: IsDBInstalled "IsDBInstalled" definierst du als Funktion mit Rückgabewert boolean.
Sofern die Funktion "true" zurückgibt, wird der Eintrag kopiert.

Delphi-Quellcode:
function IsDBInstalled() : Boolean;
var
   sFbVersion: String;
begin
   Result := false;

   // nun kommt der Test. Registry abfragen / Filesystem prüfen etc.
   // keine Ahnung welcher Registry-Eintrag bei Firebird zu nutzen ist, dient nur
   // als Beispiel, hab grad mal bei mir geschaut

   if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Firebird Project\Firebird Server\Instances',
     'DefaultInstance', sFbVersion) then
   begin
     if length( sFBVersion ) > 0 then
        Result := true
     else
        Result := false;
   end
   else
      Result := false; // kein Firebird?

   // Filesystem prüfen...
   
   // etc.


end;
Wie gesagt, Du solltest besser ein Flag in der Method "InitializeWizard" oder "InitializeSetup" setzen, um den Check nur 1x durchführen zu müssen. Ansonsten würde der für jedes File, dass Du kopierst durchgeführt. Du kannst das Flag natürlich auch innerhalb Deiner IsDBInstalled setzen und dann für fortwährende Aufrufe merken, aber das bleibt Dir überlassen

Schönen Tag,

Markus
  Mit Zitat antworten Zitat