inno setup - Inno सेटअप कस्टम पेज पर छवि/नियंत्रण रखने




inno-setup (2)

आप Botva2 लाइब्रेरी http://krinkels.org/threads/botva2.1931/ उपयोग कर सकते हैं, अगर आप rusian को समझ नहीं सकते हैं तो Google ट्रांसलेशन का उपयोग करें।

[code]
#include "botva2.iss"
var SomeImage : Longint;
procedure InitializeWizard();
begin 
{Your Custom page Code Goes Here}
SomeImage := ImgLoad(WizardForm.Handle,'Image.bmp',0,0,854,480,true,true)‌​; 
end;
 procedure CurPageChanged(CurPageID: Integer); 
begin 
ImgSetVisibility(SomeImage,false); 
if (CurPageID = CustomPage.ID) ImgSetVisibility(SomeImage,true);
end;

मैं एक कस्टम पेज पर एक छवि रखने की कोशिश कर रहा हूँ मैं कस्टम पृष्ठ दिखाने के लिए या पूर्वनिर्धारित पृष्ठ पर छवि प्राप्त कर सकता हूं लेकिन कस्टम पृष्ठ पर नहीं।

समस्या मुझे लगता है कि Parent := CustomPage.ID; साथ है Parent := CustomPage.ID;

Parent := WizardForm.SelectTasksPage; हालांकि काम करता है।

इसे ठीक से कैसे करें?

procedure ImageOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('', 'http://test.com', '', '', SW_SHOW, ewNoWait, ErrorCode);
end;

var
  CustomPage: TWizardPage;
  BtnImage: TBitmapImage;

procedure InitializeWizard;
begin
  CustomPage := CreateCustomPage(wpLicense, 'Heading', 'Sub heading.');

  ExtractTemporaryFile('image.bmp');

  BtnImage := TBitmapImage.Create(WizardForm);
  with BtnImage do
  begin
    Parent := CustomPage.ID;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\image.bmp');
    AutoSize := True;
    Left := 90;
    Top := WizardForm.SelectTasksPage.Top + WizardForm.SelectTasksPage.Height - Height - 8;
    Cursor := crHand;
    OnClick := @ImageOnClick;
  end;
end;

मार्टिन प्रिक्रील के उत्तर के समान। विभिन्न डीपीआई सेटिंग्स से निपटने और बिटमैप रखने के लिए:

  1. अपनी मशीन को 100% डीपीआई पर सेट करें
  2. अपने InnoSetup पृष्ठ / फ़ॉर्म पर फिट होने के लिए आकार (चौड़ाई / ऊँचाई) वाला एक बिटमैप बनाएं
  3. ये चौड़ाई और ऊँचाई प्राप्त करें (अपने bmp फ़ाइल पर राइट क्लिक / गुण)
  4. नीचे दिए गए कोड का उपयोग करें
  5. अपनी मशीन को 150% डीपीआई पर सेट करें और 150% डीपीआई के लिए फिट होने के लिए अपना बिटमैप बनाएं और पहले वाले के बजाय इसका उपयोग करें (जो 100% डीपीआई के लिए फिट बैठता है), इस तरह यह 100% और 200% के लिए अच्छा लगेगा

कोड:

WarningImage := TBitmapImage.Create(RisksForm);
WarningImage.Parent := RisksForm;
WarningImage.Bitmap.LoadFromFile(ExpandConstant('{app}')+'uninstall-warning-large.bmp');
WarningImage.Left := ScaleX(24);
WarningImage.Top := ScaleY(120);
WarningImage.Width := ScaleX(544);
WarningImage.Height := ScaleY(211);
WarningImage.Stretch := True;

अपने बिटमैप की चौड़ाई के साथ 544 और अपने बिटमैप की ऊंचाई के साथ 211 बदलें (चरण 3 से)

स्ट्रेच: = यह सच है कि बिटमैप विस्तार (यदि यह छोटा है) या हटना (यदि यह बड़ा है) चौड़ाई / ऊंचाई गुणों से अधिक है

पीएससीओआर आप कई फाइलों का उपयोग कर सकते हैं और उपयोगकर्ताओं के डीपीआई सेटिंग्स ( इनो सेटअप के साथ डीपीआई सेटिंग्स ) के आधार पर एक का उपयोग कर सकते हैं, लेकिन बिटमैप बिना कंप्रेशंस के होते हैं, इसलिए मुझे यह विचार पसंद नहीं है।