Inno Setup入門(十九)——Inno Setup類參考(5)
單選按鈕在安裝中也很常見,例如同一個程式可以選擇安裝不同的性質的功能,例如選擇32位或者64位等,兩者是排他性的,因此可以通過單選按鈕(RadioButton)來實現,在同一個容器中放置的單選按鈕是自動帶有排他性的,Pascal指令碼中單選按鈕的定義如下:
TRadioButton = class(TButtonControl)
property Alignment: TAlignment; read write;
property Caption: String; read write;
property Checked: Boolean; read write;
property Color: TColor; read write;
property Font: TFont; read write;
property OnClick: TNotifyEvent; read write;
property OnDblClick: TNotifyEvent; read write;
end;
其繼承關係如下圖:
可見和按鈕的層次模型是一樣的,事實上,RadioButton和Button並沒有太大的區別。唯一的區別是單選按鈕的排他性。
下面的程式碼將在自定義嚮導頁上新增一個文字框和兩個單選按鈕:
[setup] AppName=Test AppVerName=TEST DefaultDirName="E:\TEST" AppVersion=1.0 [files] Source: "F:\desktop\Inno\ipmsg.exe";Flags:dontcopy [code] var myPage:TwizardPage; radio1,radio2:TRadioButton; lbl:TLabel; font:TFont; {radio1的事件響應過程} procedure ClickRadio1(Sender: TObject); begin lbl.Font.Color:=clRed; end; {radio2的事件響應過程} procedure ClickRadio2(Sender: TObject); begin lbl.Font.Color:=clBlue; end; procedure InitializeWizard(); begin myPage:=CreateCustomPage(wpWelcome, '標題:自定義頁面', '描述:這是我的自定義頁面'); lbl:=TLabel.Create(myPage); lbl.Parent:=myPage.Surface; lbl.Caption:='改變單選按鈕的選項,我就會變色'; radio1:=TRadioButton.Create(myPage); radio1.Parent:=myPage.Surface; radio1.Caption:='紅色'; radio1.Top:=lbl.Top+20; font:=TFont.Create(); font.Color:=clRed; radio1.Font:=font; radio1.OnClick:[email protected]; radio2:=TRadioButton.Create(myPage); radio2.Parent:=myPage.Surface; radio2.Caption:='藍色'; radio2.Top:=radio1.Top+20; font.Color:=clBlue; radio2.Font:=font; radio2.OnClick:[email protected]; end; |
該段程式碼中重點是單選按鈕的OnClick事件,該屬性所指向的過程決定了單選按鈕被點選後的行為,安裝檔案執行到自定義頁面後效果如下:
或許有人會問,如何在有多組不同的選項中做出選擇呢?例如一邊選擇顏色,一邊選擇字型大小?對於這個問題,傳統上Delphi是通過新增控制元件類TGroupBox來實現的,但是這個類在Pascal指令碼是不支援的,所以Delphi中的方法行不通。雖然傳統方法不行,並不代表Inno就無能為力了,最簡單的方法就是建立兩個頁面,一個頁面處理一種選項,另一個頁面處理另一種選項(因此這裡用前面的例子並不太好,主要是用來闡述單選按鈕的使用),等使用者都選完了之後,再統一執行。另外一種方法是使用其他控制元件,例如列表框(ListBox)。
相關推薦
Inno Setup入門(十九)——Inno Setup類參考(5)
單選按鈕 單選按鈕在安裝中也很常見,例如同一個程式可以選擇安裝不同的性質的功能,例如選擇32位或者64位等,兩者是排他性的,因此可以通過單選按鈕(RadioButton)來實現,在同一個容器中放置的單選按鈕是自動帶有排他性的,Pascal指令碼中單選按鈕的定義如下: T
Inno Setup入門(二十)——Inno Setup類參考(6)
儲存框 儲存框也是典型的視窗視覺化元件,同編輯框類似,可以輸入、顯示文字,但是和編輯框不同的是,編輯框只能編輯、顯示單行文字,而儲存框則可以對多行文字進行操作。儲存框的類定義如下:< xmlnamespace prefix ="o" ns ="urn:schema
Inno Setup入門(十八)——Inno Setup類參考(4)
編輯框 編輯框也叫文字框,是典型的視窗視覺化元件,既可以用來輸入文字,也可以用來顯示文字,是程式設計中最常用的元件之一,可以獲取使用者輸入的許多資訊。Pascal中的編輯框由類Tedit實現,該類的定義如下: TEdit = class(TCustomEdit) pro
Inno Setup入門(二十三)——Inno Setup類參考(9)
bar per win rst gre mar posit osi code 今天就簡單說一下ProgressBar。 TNewProgressBar = class(TWinControl) property Min: Longint; read write;
C語言入門(十九)之結構體
太晚了(11點半了),明天繼續結構體 陣列: 是用於儲存一組相同型別的資料 結構體: 是用於儲存一組不同型別的資料 // 1.定義結構體型別 struct Person { // char name[20]; char *name;
python 入門之 – 集合型別(十九)
在 python 中,集合是一個無序的,不重複的資料組合,他的主要工作如下: 1、去重,把一個列表變成集合,就自動去重了 2、關係測試,測試兩組資料之間的交集、差集、並集等關係 我來舉個例子,前兩個月出了 iPhoneXS ,去年出了 iPhoneX,我現在想知道有多少人不僅去年買了 i
Golang從入門到精通(十九):Golang併發程式設計之Channel
Go語言併發模型 Go 語言中使用了CSP模型來進行執行緒通訊,準確說,是輕量級執行緒goroutine之間的通訊。CSP模型和Actor模型類似,也是由獨立的,併發執行的實體所構成,實體之間也是通過傳送訊息進行通訊的。 Actor模型和CSP模型區別 A
VS2013/MFC程式設計入門之十九(常用控制元件:靜態文字框)
從本節開始講解各種常用控制元件的用法。MFC中常用控制元件主要包括:靜態文字框、編輯框、單選按鈕、複選框、分組框、列表框、組合框、圖片控制元件、列表控制元件、樹形控制元件和進度條控制元件等等。本節先來講解靜態文字框的使用。 控制元件的通知訊息
ionic入門教程第十九課-ionic路由詳解(state、route、resolve)
今天好好的跟大家講講ionic的路由配置。 問到的朋友有點多,因為這個內容比較多,所以我一直想等我多瞭解一些再出關於路由的教程。 但是有些很簡單的也有朋友不理解,所以我就提前出了這篇教程。 希望能對大家有點幫助,關於我遺漏的部分,後面再發教程補充吧。 但是基本的內容,簡單的
Unity Shader入門精要筆記(十九):雙面渲染的透明效果
本系列文章由Aimar_Johnny編寫,歡迎轉載,轉載請標明出處,謝謝。 前面文章介紹了透明度測試和透明度混合,基本滿足了透明的效果需求,但嚴格來說,現實中透明除了能看到後面物體的樣子,也應該能看到透明物體內部的樣子,但前面的方法我們都看不到其內部結構,這是因為預
Java 從入門到進階之路(十九)
在之前的文章我們介紹了一下 Java 中的Object,本章我們來看一下 Java 中的包裝類。 在 Java 中有八個基本型別:byte,short,int,long,float,double,char,boolean,是以值的形式存在的,所以他們並沒有面向物件的特徵,自然也不繼承自 Object,所以不能
Spring Boot入門系列(十九)整合mybatis,使用註解實現動態Sql、引數傳遞等常用操作!
前面介紹了Spring Boot 整合mybatis 使用註解的方式實現資料庫操作,介紹瞭如何自動生成註解版的mapper 和pojo類。 接下來介紹使用mybatis 常用註解以及如何傳引數等資料庫操作中的常用操作。 其實,mybatis 註解方式 和 XML配置方式兩者的使用基本上相同,只有在構建 SQL
聊聊高並發(十九)理解並發編程的幾種"性" -- 可見性,有序性,原子性
sock clas 關註 條件 infoq zed 應該 單獨 ssa 這篇的主題本應該放在最初的幾篇。討論的是並發編程最基礎的幾個核心概念。可是這幾個概念又牽扯到非常多的實際技術。比方Java內存模型。各種鎖的實現,volatile的實現。原子變量等等,每個都可以展開
Scala入門到精通——第二十二節 高級類型 (一)
www 不同 out not cloneabl etag new 創建方式 技術分享 作者:搖擺少年夢 視頻地址:http://www.xuetuwuyou.com/course/12 本節主要內容 this.type使用 類型投影 結構類型
安裝命令(十九)
配置文件 軟件包 import 認證 安裝命令:yum,rpm19.1.rpm功能:rpm軟件包管理器常用選項:-ivh 安裝軟件包-Uvh 升級軟件包,如果原來軟件包不存在則安裝-Fvh 升級軟件包,如果原來的軟件包不存在則停止升級-e 卸載軟件包--nodeps 忽略依
Scala入門到精通——第二十四節 高級類型 (三)
func double tor 結構體 入門到精通 strac 命令 person 字節碼 作者:擺擺少年夢 視頻地址:http://blog.csdn.net/wsscy2004/article/details/38440247 本節主要內容
selenium測試(Java)--截圖(十九)
int tput apache [] catch take screens umt ott package com.test.screenshot; import java.io.File; import java.io.IOException; import org
Python學習筆記(十九)
插入 imp 集合類 屬性 counter 以及 雙向 ror 簡單的 一、collections介紹 collections是Python中內建的一個集合模塊,提供了許多有用的集合類 二、namedtuple namedtuple是一個函數,用來創建一個類似類的自
Linux系列教程(十九)——Linux文件系統管理之手工分區
image u盤 true 掛載 但是 常用 選項 光盤 幫助 上篇博客我們首先介紹了硬盤為什麽要分區,以及Linux系統的幾種分區類型,然後介紹了Linux系統幾個常用的文件系統命令,最後講解了掛載命令,並通過實例演示了如何掛載光盤和U盤。 本篇博客我們將介紹l
Linux命令(十九) 查看系統負載 uptime
time 長時間 連接 時間間隔 過大 post 依次 查看 local 一、命令介紹 Linux 系統中 uptime 命令主要用於獲取主機運行時長和查詢Linux系統負載等信息。 uptime 命令可以顯示系統已經運行了多長時間,信息顯示依次為:現在時間、系統已經運行時