日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Inno Setup入门(十八)——Inno Setup类参考(4)

發布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Inno Setup入门(十八)——Inno Setup类参考(4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分類: Install Setup 2013-02-02 11:29 406人閱讀 評論(0) 收藏 舉報

編輯框

編輯框也叫文本框,是典型的窗口可視化組件,既可以用來輸入文本,也可以用來顯示文本,是程序設計中最常用的組件之一,可以獲取用戶輸入的許多信息。Pascal中的編輯框由類Tedit實現,該類的定義如下:

TEdit = class(TCustomEdit)

property AutoSelect: Boolean; read write;

property AutoSize: Boolean; read write;

property BorderStyle: TBorderStyle; read write;

property CharCase: TEditCharCase; read write;

property Color: TColor; read write;

property Font: TFont; read write;

property HideSelection: Boolean; read write;

property MaxLength: Integer; read write;

property PasswordChar: Char; read write;

property ReadOnly: Boolean; read write;

property Text: String; read write;

property OnChange: TNotifyEvent; read write;

property OnClick: TNotifyEvent; read write;

property OnDblClick: TNotifyEvent; read write;

property OnKeyDown: TKeyEvent; read write;

property OnKeyPress: TKeyPressEvent; read write;

property OnKeyUp: TKeyEvent; read write;

end;

該類的層次模型如下:

下面的代碼將演示創建編輯框,以及編輯框的Text屬性:

[setup]

AppName=Test

AppVerName=TEST

DefaultDirName="E:\TEST"

AppVersion=1.0

[files]

Source: "F:\desktop\Inno\ipmsg.exe";Flags:dontcopy

[code]

var

myPage:TwizardPage;

myBtn:TButton;

ed1,ed2,ed3:TEdit;

procedure ClickmyBtn(Sender: TObject);

begin

ed3.Text:=ed1.Text+' '+ed2.Text;

end;

procedure InitializeWizard();

begin

myPage:=CreateCustomPage(wpWelcome, '標題:自定義頁面', '描述:這是我的自定義頁面');

myBtn:=TButton.Create(myPage);

myBtn.Parent:=myPage.Surface;

myBtn.Caption:='點我~';

myBtn.OnClick:=@ClickmyBtn;

ed1:=TEdit.Create(myPage);

ed1.Parent:=myPage.Surface;

ed1.Top:=myBtn.Top+30;

ed1.Width:=myBtn.Width;

ed2:=TEdit.Create(myPage);

ed2.Parent:=myPage.Surface;

ed2.Top:=ed1.Top+30;

ed2.Width:=myBtn.Width;

ed3:=TEdit.Create(myPage);

ed3.Parent:=myPage.Surface;

ed3.Top:=ed2.Top+30;

ed3.Width:=myBtn.Width;

end;

屬性Text用于設置或獲取文本框中的內容,注意不管是設置還是獲取,參數一定必須是String的類型,運行效果如下:

如果是想實現兩個數的代數運算,而不是字符串的拼接,則按鈕的OnClick過程應該做如下修改:

procedure ClickmyBtn(Sender: TObject);

var

a,b:Extended;

begin

a:=StrToFloat(ed1.Text);

b:=StrToFloat(ed2.Text);

ed3.Text:=FloatToStr(a+b);

end;

StrToFloat和FloatToStr分別實現字符串轉實數,實數轉字符串。在第一、第二個文本框中輸入數值后,點擊按鈕將第三個文本框中的內容設置為兩數的和。下面再說說其他的屬性。修改代碼段如下:

[code]

var

myPage:TwizardPage;

myBtn:TButton;

ed1,ed2,ed3:TEdit;

a,b,c:String;

procedure ClickmyBtn(Sender: TObject);

begin

a:=ed1.Text;

b:=ed2.Text;

c:=a+b;

ed3.Text:=c;

end;

procedure InitializeWizard();

begin

myPage:=CreateCustomPage(wpWelcome, '標題:自定義頁面', '描述:這是我的自定義頁面');

myBtn:=TButton.Create(myPage);

myBtn.Parent:=myPage.Surface;

myBtn.Caption:='點我~';

myBtn.OnClick:=@ClickmyBtn;

ed1:=TEdit.Create(myPage);

ed1.Parent:=myPage.Surface;

ed1.Top:=myBtn.Top+30;

ed1.Width:=myBtn.Width;

ed1.CharCase:=ecUpperCase;{大寫}

ed1.ShowHint:=True;

ed1.Hint:='字母將會變為大寫';

ed2:=TEdit.Create(myPage);

ed2.Parent:=myPage.Surface;

ed2.Top:=ed1.Top+30;

ed2.Width:=myBtn.Width;

ed2.PasswordChar:='#';{密碼樣式}

ed3:=TEdit.Create(myPage);

ed3.Parent:=myPage.Surface;

ed3.Top:=ed2.Top+30;

ed3.Width:=myBtn.Width*2;

ed3.ReadOnly:=true;{只讀}

end;

上面介紹了四個屬性:CharCase將設置文本顯示的格式,可以有三個值:(ecNormal, ecUpperCase, ecLowerCase,分別為正常方式,大寫方式,小寫方式;PasswordChar屬性將輸入的文本替換為制定的樣式;ReadOnly屬性將使得該文本框不接受用戶輸入;Hint和ShowHint屬性是用戶的鼠標停留在該文本框上時,給出相應的提示文本,注意只有在ShowHint設置為True的時候才會顯示。

另外,編輯框也能對一些事件做出相應,例如單擊、雙擊,文本內容發生變化等,實現起來和按鈕的差不錯,這里就不再啰嗦了。最后需要介紹的是三個處理按鍵的屬性: OnKeyDown、OnKeyPress和OnKeyUp

這三個屬性是當用戶光標停留在該文本框中時,當用戶按下了鍵盤上的某個鍵時,會調用該屬性指定的過程,測試代碼如下:

[code]

var

myPage:TwizardPage;

ed:TEdit;

procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if (key=67) and (Shift=[ssAlt]) then

Msgbox('你按下了Alt+c',MBInformation,MB_OK);

end;

procedure InitializeWizard();

begin

myPage:=CreateCustomPage(wpWelcome, '標題:自定義頁面', '描述:這是我的自定義頁面');

ed:=TEdit.Create(myPage);

ed.Parent:=myPage.Surface;

ed.OnKeyDown:=@EditKeyDown;

end;

在編輯框中輸入時,用戶按下Alt+C組合時,將會做出響應,彈出一個消息框,這樣可以對我們感興趣的按鍵組合做出相應的動作,例如我們想屏蔽粘貼這項功能,則修改代碼如下:

procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if (key=86) and (Shift=[ssCtrl]) then

Msgbox('粘貼無效,請手動輸入',MBInformation,MB_OK);

ed.text:='';

end;

不過這里要說明的是,這還不能屏蔽右鍵粘貼,只是屏蔽了Ctrl+V的方式。另外兩個按鍵屬性和這里介紹的KeyDown差不多,可對照測試一下。

轉載于:https://www.cnblogs.com/atuo/p/4777692.html

總結

以上是生活随笔為你收集整理的Inno Setup入门(十八)——Inno Setup类参考(4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。