請問一下關於MaskEdit的問題? |
尚未結案
|
kenny_yeh
一般會員 發表:8 回覆:8 積分:3 註冊:2008-03-05 發送簡訊給我 |
請問一下各位大大, 1.MaskEdit為何設定了EditMask時,且已經增加了Alignment屬性,為何不能像沒有設定EditMask時可以讓游標放在右邊然後使用者一直輸 入資料游標還是維持在同一個位置上且資料由右至左一直排下去? 2.MaskEdit使用EditMask時如設定!AAAAAAAAAAAAAAAAAAAA;1; 共20位數,但是否可以允許使用者只要輸入20位數以內都可以接受? 以下附上我自己修改的元件AlignMaskEdit的程式碼: [code delphi] unit AlignMaskEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls ,Mask; type TAlign = (eaLeft, eaCenter, eaRight); TAlignMaskEdit = class(TMaskEdit) private { Private-Deklarationen } FAlign: TAlign; procedure SetAlign(const Value: TAlign); protected { Protected-Deklarationen } procedure CreateParams(var Params: TCreateParams); override; public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; published { Published-Deklarationen } property Alignment: TAlign read FAlign write SetAlign default eaLeft; end; procedure Register; implementation constructor TAlignMaskEdit.Create(Aowner: TComponent); begin inherited Create(AOwner); FAlign := eaRight; end; procedure TAlignMaskEdit.SetAlign(const Value: TAlign); begin if FAlign <> Value then begin FAlign := Value; RecreateWnd; end; end; procedure TAlignMaskEdit.CreateParams(var Params: TCreateParams); begin inherited; case FAlign of eaLeft: Params.Style := Params.Style or ES_LEFT; eaCenter: Params.Style := Params.Style or ES_CENTER; eaRight: Params.Style := Params.Style or ES_RIGHT; end; end; procedure Register; begin RegisterComponents('System', [TAlignMaskEdit]); end; end. [/code] 煩請各位大大不吝賜教!! 謝謝!!
------
對權威愚忠就是真理最大的敵人!! |
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
你的問題很簡單, 看 Help 可以知道 EditMask 中的 A 是一定要輸入字, 但 a 是允許不輸入字
所以將 !AAAAAAAAAAAAAAAAAAAA;1; 改為 !aaaaaaaaaaaaaaaaaaaa;1; 即可 ===================引 用 kenny_yeh 文 章=================== 請問一下各位大大, 1.MaskEdit為何設定了EditMask時,且已經增加了Alignment屬性,為何不能像沒有設定EditMask時可以讓游標放在右邊然後使用者一直輸 入資料游標還是維持在同一個位置上且資料由右至左一直排下去? 2.MaskEdit使用EditMask時如設定!AAAAAAAAAAAAAAAAAAAA;1; 共20位數,但是否可以允許使用者只要輸入20位數以內都可以接受? 以下附上我自己修改的元件AlignMaskEdit的程式碼: [code delphi] unit AlignMaskEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls ,Mask; type TAlign = (eaLeft, eaCenter, eaRight); TAlignMaskEdit = class(TMaskEdit) private { Private-Deklarationen } FAlign: TAlign; procedure SetAlign(const Value: TAlign); protected { Protected-Deklarationen } procedure CreateParams(var Params: TCreateParams); override; public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; published { Published-Deklarationen } property Alignment: TAlign read FAlign write SetAlign default eaLeft; end; procedure Register; implementation constructor TAlignMaskEdit.Create(Aowner: TComponent); begin inherited Create(AOwner); FAlign := eaRight; end; procedure TAlignMaskEdit.SetAlign(const Value: TAlign); begin if FAlign <> Value then begin FAlign := Value; RecreateWnd; end; end; procedure TAlignMaskEdit.CreateParams(var Params: TCreateParams); begin inherited; case FAlign of eaLeft: Params.Style := Params.Style or ES_LEFT; eaCenter: Params.Style := Params.Style or ES_CENTER; eaRight: Params.Style := Params.Style or ES_RIGHT; end; end; procedure Register; begin RegisterComponents('System', [TAlignMaskEdit]); end; end. [/code] 煩請各位大大不吝賜教!! 謝謝!!
------
將問題盡快結案也是一種禮貌! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |