2016-04-14 20 views
3

Ich habe ein Problem mit dem Laden von VCL-Stilen für Inno-Setup. Das Installationsprogramm wird korrekt generiert, bleibt jedoch weiterhin ein alter Stil. Neue Stile werden nicht geladen.Wie Sie VCL-Stile auf DLL-basierte Formulare in Inno-Setup anwenden? Neue Stile werden nicht geladen

Ich verstehe nicht, warum das passiert. Bitte helfen Sie!

Hier mein iss Code:

[Files] 
... 
; add library to create new styles 
Source: "VclStylesinno.dll"; DestDir: {app}; Flags: dontcopy 
Source: "Styles/Pink.vsf"; DestDir: {app}; Flags: dontcopy 

[Code] 

// Import the LoadVCLStyle function from VclStylesInno.DLL 
procedure LoadVCLStyle(VClStyleFile: String); external '[email protected]:VclStylesInno.dll stdcall'; 
// Import the UnLoadVCLStyles function from VclStylesInno.DLL 
procedure UnLoadVCLStyles; external '[email protected]:VclStylesInno.dll stdcall'; 

function InitializeSetup(): Boolean; 
begin 
    ExtractTemporaryFile('Pink.vsf'); 
    LoadVCLStyle(ExpandConstant('Pink.vsf')); 
    Result := True; 
end; 

Antwort

1

Folgen Sie einfach dem VCL Styles sample script:

function InitializeSetup(): Boolean; 
begin 
    ExtractTemporaryFile('Amakrits.vsf'); 
    LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf')); 
    Result := True; 
end; 

Notiere die {tmp}\.

Sie geben keinen Pfad zu Ihrer Style-Datei, so dass die LoadVCLStyle fehlschlägt, da es die Datei nicht finden kann.

+0

Ich habe versucht, den Pfad einzugeben, den gleichen Effekt fortzusetzen "ExtractTemporaryFile ('Pink.vsf'); LoadVCLStyle (ExpandConstant ('Styles \ Pink.vsf')); Ergebnis: = True; ' – kisiel

+0

Verwenden Sie einfach die {tmp} \, wie das Beispiel zeigt. Die 'ExtractTemporaryFile' extrahiert die Datei in einen temporären Ordner. –

+0

OK. Problem gelöst. Danke für deine Hilfe und umgehe das Problem des Pfades. Ich habe eine Version von Inno Setup 5.5.6 Ansi verwendet. Dann sollte ich folgendes verwenden: 'Prozedur LoadVCLStyle (VClStyleFile: String); external 'LoadVCLStyleA @ files: VclStylesInno.dll stdcall'; ' – kisiel