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

又一个关于导入的问题

答題得分者是:st33chen
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-25 15:51:13 IP:218.80.xxx.xxx 訂閱
每次导入数据,在时间方面,一定要先点击记录向前或者记录向后按钮,MASKEDIT上面才会正常显示,请问这个是什么原因啊?

[code delphi]
procedure TForm4.LoadData;
begin
LabeledEdit2.Text := form1.abstable1.fieldByName('提醒人').AsString;
MaskEdit1.Text := formatdatetime('HH:mm',Form1.ABSTable1.fieldbyname('提醒时间').asdatetime);
memo1.text:=form1.abstable1.fieldByName('提醒内容').AsString;
LabeledEdit1.Text := form1.abstable1.fieldByName('声音文件').AsString;
if form1.abstable1.FieldByName('键盘提示').AsBoolean then
ComboBox2.ItemIndex := 0
else
ComboBox2.ItemIndex := 1;
if Form1.ABSTable1.fieldbyname('提醒日期').asdatetime=0 then
dateTimePicker1.Format :=' '
else
datetimepicker1.date:=StrToDate(formatdatetime('yyyy-mm-dd',Form1.ABSTable1.fieldbyname('提醒日期').asdatetime))
end;

procedure TForm4.ToolButton1Click(Sender: TObject);
begin
Form1.ABSTable1.First ;
LoadData;
end;
[/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-25 16:56:51 IP:218.80.xxx.xxx 訂閱
上面的这个问题,自己解决了。犯了个低级错误。呵呵。现在的新问题是我怎么样判断MASKEDIT里面设定时间的完整性呢?我的代码如下,不好好像总是不会不会跳出我所指定的错误信息,而是系统自己默认的。不知道怎么搞,是我的代码有问题吗?
procedure TForm4.MaskEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var time: TDate;
begin
try
time:=(StrTodate(MaskEdit1.Text));
except
MessageBox(Handle, '请输入正确的时间格式!', 'ReminDer提醒', MB_OK
MB_ICONINFORMATION MB_TOPMOST);
MaskEdit1.SetFocus;
end;
end;
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-25 22:54:22 IP:116.230.xxx.xxx 訂閱
最后一个问题就是,我怎么样可以通过MASKEDIT保存时间呢?

[code delphi]
Form1.ABSTable1.fieldbyname('提醒时间').asdatetime:=StrToDatetime(formatdatetime('HH:mm',strtodate(MaskEdit1.Text)));
[/code]

上面这句总是提示错误。是哪里写错了呢?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-26 14:46:39 IP:122.116.xxx.xxx 未訂閱
您好,
我用 d6 測下式可以,

Form1.ABSTable1.fieldbyname('提醒时间').asdatetime:=StrToDatetime(MaskEdit1.Text); // 如果 maskedit1.text 為 'hh:nn' 型

// 如果 maskedit1.text 為 'hhnn' 型, 改用 maskedit1.edittext
Form1.ABSTable1.fieldbyname('提醒时间').asdatetime:=StrToDatetime(MaskEdit1.editText);

又 聽說 d7 以上 strtodatetime 可以加 formatsetting string, 則是
Form1.ABSTable1.fieldbyname('提醒时间').asdatetime:=StrToDatetime(MaskEdit1.Text, 'hh:nn');

又, 雖是小問題(compie, run 都不會有錯誤訊息, 但是資料是錯誤的), 但仍提醒您,
delphi 的 formatstring 是以 nn 代表 minute (以和 month 的 mm 區分)
d6 是如此, d7以後不知, 但是照判斷他應該不會改這點才是.

參考一下囉.


===================引 用 zhouying82 文 章===================
最后一个问题就是,我怎么样可以通过MASKEDIT保存时间呢?

[code delphi]
Form1.ABSTable1.fieldbyname('提醒时间').asdatetime:=StrToDatetime(formatdatetime('HH:mm',strtodate(MaskEdit1.Text)));
[/code]

上面这句总是提示错误。是哪里写错了呢?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-26 15:05:39 IP:218.80.xxx.xxx 訂閱
还是接上面的问题,

[code delphi]
procedure TForm4.MaskEdit1Exit(Sender: TObject);
var time: Ttime;
begin
try
time:=(StrTotime(MaskEdit1.Text));
except
MessageBox(Handle, '请输入正确的时间格式!', 'ReminDer提醒', MB_OK
MB_ICONINFORMATION MB_TOPMOST);
MaskEdit1.SetFocus;
end;
end;
[/code]
这么写判断的话,如果格式错误,为是么总不是弹出我所要的错误提示呢?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
系統時間:2024-04-20 14:30:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!