论坛风格切换切换到宽版
  • 1926阅读
  • 0回复

INNO 自定义页面创建圆角提示框问题 [复制链接]

上一主题 下一主题
离线子夜精灵
 

发帖
2
金钱
20
威望
2
只看楼主 倒序阅读 0 发表于: 2015-12-23
请问要在自定义安装页面显示圆角提示,找到了个事例代码,可是合并起来一直不成功,要怎么弄呢?合并代码有什么需要注意的吗?
需要的效果(此图是PS的):

原自定义页面代码:
  1. var
  2.   DataDirPage: TInputDirWizardPage;
  3. procedure InitializeWizard;
  4. begin
  5.   WizardForm.BORDERICONS := [biHelp, biSystemMenu, biMinimize];//去除关于安装程序
  6.   WizardForm.WizardSmallBitmapImage.width := 100;//右上角图片宽度
  7.   Wizardform.WizardSmallBitmapImage.left := WizardForm.width - 100;//右上角图片位置
  8.   Wizardform.PageNameLabel.width := 495 - 110 - 36;//这儿必须定义,数值根据图片宽度更改,显示软件名称的位置
  9.   Wizardform.PageDescriptionLabel.width := 495 - 110 - 42;//显示页面信息的位置
  10.   { 创建页面 }
  11.   DataDirPage := CreateInputDirPage(wpSelectDir,
  12.     '选择花样存放目录', '您要将花样设计文件存放在哪里?',//页面显示文字
  13.     '选择花样设计文件存放目录.然后单击“下一步”继续.',//页面显示文字
  14.     False, '');
  15.   DataDirPage.Add('');
  16.     { 设置默认值,如果可能则使用先前数值 (reg:HKLM\SOFTWARE\Wilcom\Wilcom ES\9.0S,Work)为获取先前安装数据目录 }
  17.   DataDirPage.Values[0] := ExpandConstant('{reg:HKCU\SOFTWARE\Wilcom\Wilcom EmbroideryStudio\2.0Q,Work}');
  18. end;
  19. //获取先前数据目录
  20. procedure RegisterPreviousData(PreviousDataKey: Integer);
  21. begin
  22.   { Store the settings so we can restore them next time }
  23.   SetPreviousData(PreviousDataKey, 'DataDir', DataDirPage.Values[0]);
  24. end;
  25. //设置默认数据目录
  26. function NextButtonClick(CurPageID: Integer): Boolean;
  27. begin
  28.   { Validate certain pages before allowing the user to proceed }
  29. begin
  30.       if DataDirPage.Values[0] = '' then
  31.         DataDirPage.Values[0] := 'C:\花版';//数据目录
  32.       Result := True;
  33.     end;
  34. end;
  35. function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo,
  36.   MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
  37. var
  38.   S: String;
  39. begin
  40.   S := S + MemoDirInfo + NewLine;//准备安装页面显示文字
  41.   S := S + Space + DataDirPage.Values[0] + '(花版存放目录)' + NewLine;//准备安装页面显示文字
  42.   S := S + MemoGroupInfo + NewLine;//准备安装页面显示文字
  43.   S := S + MemoTasksInfo + NewLine;
  44.   Result := S;
  45. end;
  46. function GetDataDir(Param: String): String;
  47. begin
  48.   { Return the selected DataDir }
  49.   Result := DataDirPage.Values[0];
  50. end;


页面圆角提示代码:
  1. type
  2.   TMoniDesc = record
  3.   Caption,Content:TNewStaticText;
  4. end;
  5. var
  6.   BtmImgObj:TBitmapImage;
  7.   Caption,Content:TNewStaticText;
  8.   MD,mMD:TMoniDesc;
  9. function CreateMoniDesc(Parent:TNewNotebookPage; iX:Integer; iY:Integer; iW:Integer; iH:Integer; iCaptionLeft:Integer; sCaption:String; sContent:String):TMoniDesc;
  10. begin
  11.   BtmImgObj:=TBitmapimage.Create(WizardForm);
  12.   BtmImgObj.Parent:=Parent;
  13.   BtmImgObj.SetBounds(iX,iY,iW,iH);
  14.   BtmImgObj.Bitmap.Canvas.Pen.Color:=$BFD0D0;  //外框颜色
  15.   BtmImgObj.Bitmap.Canvas.Brush.Color:=$D8E9EC;  //外框内缘填充颜色
  16.   BtmImgObj.Bitmap.Width:=iW;
  17.   BtmImgObj.Bitmap.Height:=iH;
  18.   BtmImgObj.Bitmap.Canvas.RoundRect(0,0,iW,iH,5,5);
  19.   BtmImgObj.BringToFront;
  20.   Caption:=TNewStaticText.Create(WizardForm);
  21.   Caption.Parent:=Parent;
  22.   Caption.SetBounds(iX+iCaptionLeft,iY-5,Caption.Width,Caption.Height);
  23.   Caption.Caption:=sCaption;
  24.   Caption.Font.Color:=$D54600;    //标题字体颜色
  25.   Content:=TNewStaticText.Create(WizardForm);
  26.   Content.Parent:=Parent;
  27.   Content.SetBounds(iX+10,iY+10,iW-20,iH-20);
  28.   Content.WordWrap:=true;
  29.   Content.Caption:=sContent;
  30.   MD.Caption:=Caption;
  31.   MD.Content:=Content;
  32.   Result:=MD;
  33. end;
  34. procedure InitializeWizard;
  35. begin
  36.   //创建SelectDirPage页的“程序安装目录”圆角边框
  37.   CreateMoniDesc(WizardForm.SelectDirPage, 0,70,410,40,10, '程序安装目录','');
  38.   WizardForm.DirEdit.SetBounds(10,WizardForm.DirEdit.Top+15,WizardForm.DirEdit.Width-20,WizardForm.DirEdit.Height);
  39.   WizardForm.DirBrowseButton.SetBounds(WizardForm.DirEdit.Width+10,WizardForm.DirEdit.Top,WizardForm.DirBrowseButton.Width,WizardForm.DirBrowseButton.Height);
  40.   WizardForm.DirEdit.BringToFront;
  41.   WizardForm.DirBrowseButton.BringToFront;
  42.   //创建带有内容的模拟描述控件
  43.   mMD:=CreateMoniDesc(WizardForm.SelectDirPage, 40,130,320,42,130, 'Caption','Hello');
  44.   mMD.Caption.Caption:='温馨提示';
  45.   mMD.Content.Caption:=ExpandConstant('{cm:ISL_CM_Content}');
  46. end;
请各位帮帮忙!

INNO 自定义页面创建圆角提示框.rar (6 K) 下载次数:7