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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Delphi控件之---UpDown以及其与TEdit的配合使用(比如限制TEdit只能输入数字,还有Object Inspector之组件属性的介绍)

發布時間:2023/12/31 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 Delphi控件之---UpDown以及其与TEdit的配合使用(比如限制TEdit只能输入数字,还有Object Inspector之组件属性的介绍) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  最近在開發中使用到了UpDown這個控件,但是因為之前沒有使用過,所以很不熟悉,于是就編寫了一個簡單的demo來學習UpDown以及其結合TEdit的用法。

初步的常用功能的簡介                

  目前(2015.08.07)只是涉及到其簡單的用法,因為目前我所需要使用的就只有這些內容,系統化的使用和知識將會在以后需要的時候再補充。

  目前涉及到的內容有UpDown組件與TEdit組件的配合使用UpDown的Position屬性

尋找UpDown:

  如下圖,Win32下,用紅色框框出來的

先看一下這個程序的運行效果圖:

圖1 程序啟動時候的界面

圖2 程序運行的效果

  簡單地對程序做一下說明:實現兩個加數的相加操作,既可以在兩個編輯框中直接輸入數字,也可以通過UpDown組件來步進(步進數是1)對編輯框中的數字進行增減,然后點擊按鈕就會在下面顯示相加的信息。

程序分析:

  本例涉及到的程序使極其簡單的,但是需要說明一下,因為這是一個小demo,所以我可能沒注意其中組件、變量的命名規范,這是很不好的習慣,在真正的項目中是絕對禁止的,其實也應該從平時小demo的編寫時候就要注意,所以再次以我的本段代碼為一個反面教材!

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    ud1: TUpDown;
    edt1: TEdit;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    edt2: TEdit;
    ud2: TUpDown;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    lbl7: TLabel;
    btn1: TButton;
    lbl8: TLabel;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ud1.Associate:= edt1;  //在窗體創建的時候,通過將ud1的Associate屬性設置為edt1,將兩個組件聯系在一起,就可以通過ud1對edt1中的數字進行增減了
  ud2.Associate:= edt2;    //作用同上
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  res: Integer;
  plus1: Integer;
  plus2: Integer;
begin
  plus1:= StrToInt(edt1.Text);   //可以使用該方式獲取編輯框中的值  //TEdit的Text屬性是string類型
  plus2:= ud2.Position;    //因為ud2.Associate:= edt2; 所以ud2與edt2聯系在一起,所以也可以使用這樣的方式獲取編輯框中的值    // UpDown的Position屬性是SmallInt類型

  res:= plus1 + plus2;

  lbl4.Caption:= IntToStr(plus1);
  lbl6.Caption:= IntToStr(plus2);
  lbl8.Caption:= IntToStr(res);
end;

end.

  代碼很簡單,需要說明的知識點也都在代碼中通過注釋說明了。

關于組件的Object Inspector的思考

  多說一句,我是通過在窗體創建的方法中顯式聲明了ud1.Associate:= edt1; 以及ud2與edt2的結合的,還有一種方式,以ud1和edt1為例,就是在圖形界面的設計界面上選中ud1,然后去到Object Inspector這個配置界面來配置ud1 的相關屬性,當然就可以配置ud1 的Associate 屬性,將其設置為edt1,這樣就不需要再在窗體的創建方法中通過代碼來聲明了。(此時既可以通過edt1的Text屬性獲取編輯框中的值,不過注意是string類型,也可以通過ud1的Position方法獲取編輯框中的值,Position是SmallInt類型

  這里介紹了Object Inspector是為了說明,可能有時候你在看一些代碼的時候,發現很多東西沒有在代碼中,但是運行時候好像又有效果,可能是因為其是在Object Inspector里面進行的配置,而不是在代碼中進行顯式的說明。

  關于Object Inspector還有另外一個例子,請參見《解決Delphi圖形化界面的TEdit、TLable等組件手動拖拽固定大小,但是編譯之后顯示有差別的情況》

限制TEdit中只能輸入數字              

  在TEdit和UpDown的配合使用中,往往需要限制只能在TEdit中輸入整數,為了防止用戶誤操作而輸入漢字或者字母,需要在代碼中實現這個限制。

  這里給出限制只能在編輯框中輸入數字(小數點、'-'號、數字)的方法,具體的比如限制只能輸入正整數、限制只能輸入整數……方法可以參考實現。

procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
 edt: TEdit;
 str, strL, strR: string;
 p: integer;
begin
   // 獲取當前文本內容, 注意要去掉選中部分(因為會被改寫).
 edt := TEdit(Sender);
 str := edt.text;
 if Length(edt.SelText) <> 0 then
 begin
   strL := LeftStr(edt.text, edt.SelStart);
   strR := RightStr(edt.text, Length(edt.text) - edt.SelStart - edt.SelLength);
   str := strL + strR;
 end;
   // 限制輸入數字/小數點/退格鍵
 if not (Key in [#8, #13, #127, '.', '-', '0'..'9']) then Key := #0;
   //限制只能輸入一個小數點
 if Key = '.' then
 begin
   p := Pos('.', edt.Text);
   if p > 0 then Key := #0;
 end;
   //限制只能在第一位輸入且只能輸入一個'-'號
 if Key = '-' then
 begin
   if edt.SelStart > 0 then Key := #0;
   p := Pos('-', edt.Text);
   if p > 0 then Key := #0;
 end;
end;

//要uses StrUtils單元
如果程序里有很多的TEdit要做此限制,當然不必給每個控件寫代碼,把事件指定到同一個過程就行了。

  注意其中的Tform1.Edit1KeyPress方法不是直接你在代碼編輯器中聲明就可以的,需要通過該編輯框組件的Object Inspector里面,找到Events->OnKeyPress這個事件,如下圖

  然后雙擊這個事件,就會在代碼編輯器中出現該方法的聲明,然后就可以進行編輯了,然后再看編輯框組件的Object Inspector里面的OnKeyPress事件,已經有方法了,如下圖:

  這也是很多其他組件在編寫組件的事件時使用的方法。

介紹UpDown的更多常用的屬性和方法        

總結

以上是生活随笔為你收集整理的Delphi控件之---UpDown以及其与TEdit的配合使用(比如限制TEdit只能输入数字,还有Object Inspector之组件属性的介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。

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