線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1130
推到 Plurk!
推到 Facebook!

請問edit問題

答題得分者是:sos_admin
chubby
一般會員


發表:43
回覆:65
積分:21
註冊:2003-05-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-31 10:53:06 IP:61.228.xxx.xxx 未訂閱
有一個Expense.ini [expense] a_money=600 b_money=1500 c_money=5000 Edit1.Text:=IniFile.readString('expense','a_money',''); Edit2.Text:=IniFile.readString('expense','b_money',''); Edit3.Text:=IniFile.readString('expense','c_money',''); 取出後如在edit show時 1,500 or 5,000 save時 1500 or 5000 使用edit可行嗎? 或有其它元件可行
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-31 11:30:49 IP:61.155.xxx.xxx 未訂閱
当然可以的 这儿有个 >
chubby
一般會員


發表:43
回覆:65
積分:21
註冊:2003-05-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-31 12:23:50 IP:61.228.xxx.xxx 未訂閱
參考http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31062並非我所要結果 可能我有表白不清楚 有一個Expense.ini [expense] a_money=600 b_money=1500 c_money=1365000 (存檔不存入 [,]符號 ) (讀出來後在Edit1.Text 能顯示 1,365,000 讀出來後在Edit1.Text 編輯 Get Picture '999,999,999' 格式可行嗎?)
kakene
一般會員


發表:22
回覆:52
積分:19
註冊:2003-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-31 14:35:48 IP:203.204.xxx.xxx 未訂閱
取出時用: Edit1.Text := FormatFloat('#,###,###',StrToInt(lt_Load.Values['a_money'])); 儲存時: var txt1 : String; txt1:= edit1.text; While pos(',',txt1)>1 do begin txt1 := copy(txt1,1,pos(',',txt1)-1) copy(txt1,pos(',',txt1) 1,length(txt1)); end; lt_Save.Add('a_money=' txt1); 土法煉鋼,參考一下... 發表人 - kakene 於 2003/07/31 15:06:01
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-31 15:40:27 IP:61.155.xxx.xxx 未訂閱
写个函数改你: TYPE FMODE=(SET_TEXT,GET_TEXT);    FUNCTION STR(STR:STRING;MODE:FMODE):STRING ; VAR I,STRLEN,STRLEN1,STRLEN2:INTEGER; TMP,TMP1,INSTR:STRING; BEGIN    INSTR:=','; TMP:=TRIM(STR); STRLEN:=LENGTH(TMP);    CASE MODE OF SET_TEXT:BEGIN STRLEN1:=Pos('.',TMP); IF (STRLEN1>0) THEN BEGIN TMP1:=COPY(TMP,STRLEN1,STRLEN-STRLEN1+1); TMP:=COPY(TMP,1,STRLEN1-1); STRLEN:=LENGTH(TMP); END;    I:=2; WHILE STRLEN>I  DO BEGIN IF STRLEN<>(I+1)  THEN Insert(INSTR,TMP,STRLEN-I); I:=I+3; END;    END; GET_TEXT:BEGIN STRLEN2:=Pos(',',TMP); WHILE STRLEN2>0 DO BEGIN Delete(TMP,STRLEN2,1); STRLEN2:=Pos(',',TMP); END; END; END; RESULT:=TMP+TMP1; END;    //使用 procedure TForm1.Button1Click(Sender: TObject); begin //添加"," EDIT1.Text:=STR('1950000000.00000',SET_TEXT); //去除"," EDIT1.Text:=STR('1,950,000,000.00000',GET_TEXT); end;    见图
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-31 15:51:09 IP:61.155.xxx.xxx 未訂閱
补充: 函数说明 FUNCTION STR(STR:STRING;MODE:FMODE):STRING ; STR: 任意长度的字符串,可以使用如:950000000.00000、950000000、1.012558、2555441114455.1等数字形式。 MODE: SET_TEXT 设置字符样式 GET_TEXT 获取原来的字符串形式
chubby
一般會員


發表:43
回覆:65
積分:21
註冊:2003-05-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-31 19:10:02 IP:61.228.xxx.xxx 未訂閱
引言: 补充: 函数说明 FUNCTION STR(STR:STRING;MODE:FMODE):STRING ; STR: 任意长度的字符串,可以使用如:950000000.00000、950000000、1.012558、2555441114455.1等数字形式。 MODE: SET_TEXT 设置字符样式 GET_TEXT 获取原来的字符串形式 謝謝,可是輸入編輯時即時顯示 854,584,.....可行嗎?
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-31 19:30:26 IP:61.155.xxx.xxx 未訂閱
可以这个只有当这个控件失去焦点的时候做最好的!!!! procedure TForm1.Edit4Exit(Sender: TObject); begin if Sender is tedit then begin (Sender as tedit).Text:=STR((Sender as tedit).Text ,get_TEXT); (Sender as tedit).Text:=STR((Sender as tedit).Text ,set_TEXT); end; end;
系統時間:2024-07-04 8:55:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!