请大家在浏览的时候进来看看,回答我这个问题,我很急!急!急!(50分)

  • 主题发起人 主题发起人 ※快乐点滴※
  • 开始时间 开始时间

※快乐点滴※

Unregistered / Unconfirmed
GUEST, unregistred user!
各位富翁,小的我是一个初学者,有好些富翁们看起来是非常小的问题,但对我来说好像是个大总是一样,现有一个小小的问题请问大家,
请给我改正一下,先谢谢了哈!

问题是这样的:我想做个在窗体是显示运行时间,代码如下:
unit main_;

interface

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

type
Tmain = class(TForm)
StatusBar1: TStatusBar;
runtime: TTimer;
procedure runtimeTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
main: Tmain;

implementation
type
week=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday)
//定义//开始写的代码的到结束哈
{$R *.dfm}
function mday(day:week):string;
begin
case day of
Monday:mday:='星期一';
Tuesday:mday:='星期二';
Wednesday:mday:='星期三';
Thursday:mday:='星期四';
Friday:mday:='星期五';
Saturday:mday:='星期六';
Sunday:mday:='星期日';
end;
end;
procedure Tmain.runtimeTimer(Sender: TObject);
var
runtime,TT:string;
day:week;
n:integer;
begin
n:=dayofweek(now);
case n of
1:day:=Monday;
2:day:=Tuesday;
3:day:=Wednesday;
4:day:=Thursday;
5:day:=Friday;
6:day:=Saturday;
7:day:=Sunday;
end;
TT:=mday(day);
runtime:='运行时间:'+datetostr(date)+' '+TT+' '+timetostr(time);

main.statusbar1.panels[1].text:=runtime;

end;
procedure Tmain.FormCreate(Sender: TObject);
begin
runtime.Enabled:=true;
end;

end.
窗体上只有一个timer和一个status
没什么大错,谅给了我一个警告:[Warning] main_.pas(56): Variable 'day' might not have been initialized
我不知道是怎么回事,请各位富翁给我解答一下,再次先谢谢了哈。
 
要这么复杂吗?,我做的:
procedure Tmain.runtimeTimer(Sender: TObject);
begin
main.statusbar1.panels[1].text:= := '星期'+InttoCweek(DayOfWeek(now-1));
end;

//转换星期值
Function InttoCweek(ITCint: integer): string;
begin
case ITCint of
1: result := '一';
2: result := '二';
3: result := '三';
4: result := '四';
5: result := '五';
6: result := '六';
7: result := '日';
else
result := '';
end;
end;
 
警告不要管它,运行没有问题就行。警告是要你给day赋初值。
 
你可以在OnTimer中写一句:
main.statusbar1.panels[1].text := FormatDateTime('yyyy-mm-dd, ddd, tt', Now);

请参考FormatDateTime函数,你用不着那么麻烦。
FormatDateTime 将日期时间依Format的格式转换给一字串.
--------------------------------------------------------
Unit SysUtils
函数原型 function FormatDateTime(const Format: string
DateTime:
TDateTime): string;
**** 类似DateTimeToString.
Format格式
c 内定值ShortDateFormat的格式.(1996/12/20 09:20:15 PM).
d 日期,前面不补0.(1-31)
dd 日期,前面补0.(01-31)
ddd 星期.(星期日).
Dddd 中文2.01版,同上.
ddddd 日期.(1996/12/20)
dddddd 日期.(1996年12月20日)
m 月份,前面不补0.(1-12)
mm 月份,前面补0.(01-12)
mmm 中文显示.(十二月)
mmmm 中文2.01版,同上.
Yy 年度.(00-99)
yyyy 年度.(0000-9999)
h 小时.(0-23)
hh 小时.(00-23)
n 分钟.(0-59)
nn 分钟.(00-59)
s 秒钟.(0-59)
ss 秒钟.(00-59)
t 时间.(09:20 PM)
tt 时间.(09:20:15 PM)
am/pm 单独显示am or pm.(若大写,则显示大写)
a/p 单独显示a or p.
范例
The following example assigns 'The meeting is on Wednesday,
February 15, 1995 at 10:30 AM' to the string variable S.
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy,
" at " hh:mm AM/PM',Now)
 
这样也可以,没有试过
//转换星期值
Function InttoCweek(ITCint: integer): string;
begin
result := copy('一二三四五六日',ITCint*2-1,2);
end;
 
Ccmake的方法简单可行!
 
LEEMA的方法最好了。不烦。
 
LEEMA的方法不需要考虑星期的第一天,推荐使用!
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
main.statusbar1.panels[1].text := FormatDateTime('dddddd ddd hh:nn:ss', Now);
end;
 
[Warning] main_.pas(56): Variable 'day' might not have been initialized
[警告]在main_.pas第56行:变量'day'可能没有被初始化.
 
谢谢各位了哈,我考回去看看,下次再来向大家请教哈,先谢谢了!88我没电脑,每次都是到同学或机房来看的,所以不知这个是否能行,看看再说哈!不过好像Format得到是时间好像是静态的哦,我要的是动态,试试再说哈!88
 
谢谢各位了哈!我这里想说的是,要特别谢谢的是LEEMA,因为他给我了那个多的知识!其实我都不知道该怎样说才好了,你们都是不愧于专家,真的是太强了哈,我们根本不能和你们比哈,因为根本不在一个等级上哈,好了不说了,再次谢谢各位了!
 
谢谢各位支持!
 
后退
顶部