全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2428
推到 Plurk!
推到 Facebook!

edit 的 mask 特殊用法

答題得分者是:aquarius
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-23 03:17:36 IP:61.66.xxx.xxx 未訂閱
請問各位! 我目前有一個需求, combobox1 maskedit1, 由combobox1選擇一個item後, 會帶下來一個值放在maskedit1中, 舉例 AA123為帶入值, 再加一個 "-" 此時我必須在maskedit1中填入 AA123-, 然後游標必須停留在 AA123-之後 而且, USER 無法往前移動對AA123-做刪除或修正, 請問這段功能 有沒有辦法使用 editmask來達成
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 09:56:29 IP:211.76.xxx.xxx 未訂閱
引言: 請問各位! 我目前有一個需求, combobox1 maskedit1, 由combobox1選擇一個item後, 會帶下來一個值放在maskedit1中, 舉例 AA123為帶入值, 再加一個 "-" 此時我必須在maskedit1中填入 AA123-, 然後游標必須停留在 AA123-之後 而且, USER 無法往前移動對AA123-做刪除或修正, 請問這段功能 有沒有辦法使用 editmask來達成
P.D. 兄: 您可以用類似以下程式控制, 不過一些像 BackSpace, →, ← 按鍵要再過濾
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Label1.Caption := IntToStr(TEdit(Sender).SelStart);
  if (TEdit(Sender).SelStart <= 5) then
  begin
    Key := 0;
  end;
end;
------
將問題盡快結案也是一種禮貌!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-23 14:22:18 IP:203.95.xxx.xxx 未訂閱
弟的一個簡單想法. 其實使用兩個 tedit 就可以了. Edit1 負責前半段(放combobox選定後設定的值), 設為 readonly, Edit2 讓使用者自行輸入, 看是要用 Edit 或是 MaskEdit 都可以. 輸入完成後, 要取該值就直接用 Edit1.Text Edit2.Text 就可以了. 不用去管是否可以編輯前段的問題.
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 17:19:38 IP:61.66.xxx.xxx 未訂閱
引言: 弟的一個簡單想法. 其實使用兩個 tedit 就可以了. Edit1 負責前半段(放combobox選定後設定的值), 設為 readonly, Edit2 讓使用者自行輸入, 看是要用 Edit 或是 MaskEdit 都可以. 輸入完成後, 要取該值就直接用 Edit1.Text Edit2.Text 就可以了. 不用去管是否可以編輯前段的問題.
我現在的做法是如此, 只是在輸入的安排上並不好看也不專業, 因為我希望的是在一個欄位上就可以達成, 這樣的功能以往在DOS的設計上可以 很輕易的做到, danny兄的做法我實測過, 問題頗多, 原本我也想用editmask來載入, 但問題也很多, 只好先放棄, 回歸自然, 用兩個欄位來做!
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 18:34:36 IP:211.23.xxx.xxx 未訂閱
引言: 請問各位! 我目前有一個需求, combobox1 maskedit1, 由combobox1選擇一個item後, 會帶下來一個值放在maskedit1中, 舉例 AA123為帶入值, 再加一個 "-" 此時我必須在maskedit1中填入 AA123-, 然後游標必須停留在 AA123-之後 而且, USER 無法往前移動對AA123-做刪除或修正, 請問這段功能 有沒有辦法使用 editmask來達成
看看這是不是你要的效果
 
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  s : string ;
  i : integer ;
begin
  s:=ComboBox1.Text '-' ;
  for i:=length(s) downto 1 do
    insert('\',s,i) ;      MaskEdit1.EditMask:=s '9999' ;
  MaskEdit1.SelLength:=0 ;
  MaskEdit1.SelStart:=length(ComboBox1.Text '-') ;    end;
...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-24 20:19:19 IP:61.66.xxx.xxx 未訂閱
引言: 看看這是不是你要的效果
 
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  s : string ;
  i : integer ;
begin
  s:=ComboBox1.Text+'-' ;
  for i:=length(s) downto 1 do
    insert('\',s,i) ;      MaskEdit1.EditMask:=s+'9999' ;
  MaskEdit1.SelLength:=0 ;
  MaskEdit1.SelStart:=length(ComboBox1.Text+'-') ;    end;
...Aquarius
謝謝! 這個方法我用過, 但有一個問題, editmask如何去辨別 AA123-中的AA是String, 而不是format mask, 因為 如果設定 maskedit1.editmask:= 'AA123-99999', 1.在edit中, AA仍可以被移動到及修正, 因為A代表MASK格式 目前我希望的功能是在 EDIT 欄位中可以顯示
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-24 22:43:48 IP:61.230.xxx.xxx 未訂閱
引言:
引言: 看看這是不是你要的效果
 
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  s : string ;
  i : integer ;
begin
  s:=ComboBox1.Text+'-' ;
  for i:=length(s) downto 1 do
    insert('\',s,i) ;      MaskEdit1.EditMask:=s+'9999' ;
  MaskEdit1.SelLength:=0 ;
  MaskEdit1.SelStart:=length(ComboBox1.Text+'-') ;    end;
...Aquarius
謝謝! 這個方法我用過, 但有一個問題, editmask如何去辨別 AA123-中的AA是String, 而不是format mask, 因為 如果設定 maskedit1.editmask:= 'AA123-99999', 1.在edit中, AA仍可以被移動到及修正, 因為A代表MASK格式 目前我希望的功能是在 EDIT 欄位中可以顯示
你有 RUN 我的範例嗎? 我的那種程式就有你要的效果呀!! 重點就在這個迴圈 for i:=length(s) downto 1 do insert('\',s,i) ; 你再試試!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-25 14:12:12 IP:61.66.xxx.xxx 未訂閱
引言: 重點就在這個迴圈 for i:=length(s) downto 1 do insert('\',s,i) ;
感謝, 我的確忽略了 '\' 的用法, 我把它改為\A\A\1\2\3\-999999 果然可以如我所願了!
系統時間:2024-05-18 17:30:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!