1、源起:

源于一个安装包的广告定制。广告客服提供的图片太大,inno setup默认尺寸容不下它,需要扩充,拉宽安装界面尺寸。

以inno setup所附带例子说事,其默认尺寸如下:

2、ScaleX

核心函数为ScaleX,其原型如下:

  1. function ScaleX(X: Integer): Integer;

作用为适应DPI,给指定的X值在X方向上做缩放。同理有ScaleY,本例用不到。

3、实现代码

Inno Setup中,写自定义函数,横向缩放窗体及其所属控件,并分类调整控件位置及宽度,完成界面缩放。

  1. [Code]

  2. //横向拉伸长度const EXPAND_VALUE = ;
  3.  
  4. //遍历控件改其宽度
  5. procedure ExpandPageControl(AControl: TWinControl);
  6. var
  7. i: Integer;
  8. ctrl: TControl;
  9. wc: TWinControl;
  10. begin
  11. for i := to AControl.ControlCount - do
  12. begin
  13. ctrl := AControl.Controls[i];
  14. if (ctrl is TBitmapImage) and (ctrl <> WizardForm.WizardSmallBitmapImage) then Continue;
  15.  
  16. if (ctrl is TButton) or (ctrl is TBitmapImage)then
  17. ctrl.Left := ctrl.Left + ScaleX(EXPAND_VALUE)
  18. else
  19. ctrl.Width := ctrl.Width + ScaleX(EXPAND_VALUE);
  20.  
  21. if ctrl is TWinControl then
  22. begin
  23. wc := ctrl as TWinControl;
  24. if wc.ControlCount <> then
  25. ExpandPageControl(wc);
  26. end;
  27. end;
  28. end;
  29.  
  30. procedure InitializeWizard();
  31. begin
  32. with WizardForm do
  33. begin
  34. Width := Width + ScaleX(EXPAND_VALUE);
  35. end;
  36. ExpandPageControl(WizardForm);
  37. end;

如此就基于WizardForm对安装窗体做X轴上缩放。

4、效果

如图示:

Inno Setup界面拉伸的更多相关文章

  1. Inno setup定制安装界面

    Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我 ...

  2. 以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转)

    以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转) ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCU ...

  3. Inno Setup技巧[界面]添加和自定义左下角标签

    原文 http://blog.sina.com.cn/s/blog_5e3cc2f30100cc49.html 本文介绍添加和自定义“左下角标签”的方法. 界面预览: Setup技巧[界面]添加和自定 ...

  4. Inno Setup技巧[界面]自定义安装向导小图片宽度

    原文  blog.sina.com.cn/s/blog_5e3cc2f30100cj7e.html 英文版中安装向导右上角小图片的大小为55×55,汉化版中为55×51.如果图片超过规定的宽度将会被压 ...

  5. Inno Setup技巧[界面]欢迎页面上添加文字

    原文:Inno Setup技巧[界面]欢迎页面上添加文字 本文介绍在"欢迎页面添加文字"的两种方法. 界面预览: Setup技巧[界面]欢迎页面上添加文字" title= ...

  6. inno setup 安装个界面提示信息修改

    对于inno setup打包的安装文件,各界面中的提示信息可以在安装编译脚本 xxx.iss 中的 [Messages] 段设置,如果不知道要设置的信息的变量名,可以到 inno setup的安装目录 ...

  7. Inno Setup自定义安装界面脚本

    ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "RemoteCard&quo ...

  8. inno setup脚本,涵盖了自定义安装界面,调用dll等等应用

    ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETU ...

  9. Inno Setup 版本 5.5.3+ 简体中文语言包

    ; *** Inno Setup 版本 + 简体中文消息 *** [LangOptions] LanguageName=<7B80><4F53><> Languag ...

随机推荐

  1. ActiveMQ 学习

    链接:  http://www.cnblogs.com/zhuxiaojie/p/5564187.html#autoid-1-0-0

  2. dpkg卸载

    from:https://jingyan.baidu.com/article/f54ae2fc2724a71e92b849c4.html 选择 dpkg -l来查看软件的状态. 选择 dpkg -P来 ...

  3. C++复习:多态

    多态 问题引出(赋值兼容性原则遇上函数重写)     面向对象新需求     C++提供的多态解决方案     多态案例     多态工程意义         面向对象三大概念.三种境界(封装.继承. ...

  4. 转:探讨JS合并两个数组的方法

    我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况. 比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合并成一个.方法如下: ...

  5. Hibernate 再接触 树状结构设计以及学生课程成绩表的设计

    1 树状结构的设计 package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax. ...

  6. python 装饰器的缺点以及解决方法

    1.python装饰器的缺点 装饰器可以允许我们在不改变函数或犯方法的调用方式的情况下,添加额外的功能; 如下所示,我们要在中的方法之前增加装饰器check_is_admin,用来判断执行类的方法的用 ...

  7. 关于servlet转发和重新定向

    1:重新定向, 是sendRdix(记忆关键词R),firbug中的请求是两个 2:转发 是dispt,(记忆关键词是F),firbug中的请求时一个

  8. 吴裕雄 python 机器学习-KNN(2)

    import matplotlib import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import ...

  9. 吴裕雄 python神经网络 花朵图片识别(10)

    import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...

  10. Linux初学时的一些常用命令(1)

    查看帮助: man 命令   退出帮助目录:   q 切换目录:cd cd 目录 cd 目录/目录 cd ..  :上一级目录 cd /  :根目录cd ~ :回家  创建目录和删除目录   mkdi ...