各位老大:这样的问题可以解决吗?

kevinworkroom 2004-10-25 09:03:22
问题是这样的:
在TreeView中动态生成从2002-1-1到今天(2004-10-25),
要求在TV中分三级:第一级是年,第二级是月,然后是日,
如下:
--2001
| ---1
| | |-1
| | |-2
| | |..
| | |-30
| | |-31
| |
| +-2
| +-3
| ...
| +-11
| +-12
+-2002
+-2003
+-2004
...全文
63 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nirvanaxumm 2004-10-25
  • 打赏
  • 举报
回复
哦,想不到可以这样。
kevinworkroom 2004-10-25
  • 打赏
  • 举报
回复
jinjazz(人雅的标记--落寞刺客) 高手高手高手高手高手高手高手高手
俺是delphi初学者,立志向你学习。
kevinworkroom 2004-10-25
  • 打赏
  • 举报
回复
我要的不是和数据库相关的,改了也用不了,我要的是一种方面,可以解决问题的。

动态增加我到是实现了,但是没有办法控件第一天和最后一天,还有每个有多少天,我现在做出来的东西都是固定的。
jinjazz 2004-10-25
  • 打赏
  • 举报
回复
uses dateutils;
jinjazz 2004-10-25
  • 打赏
  • 举报
回复
>>没这么简单,还要考虑大小月和闰年2月的问题。

无语

var T0,T1:Ttreenode;
aDay:Tdatetime;
Y,M,D:word;
begin
Y:=0;M:=0;D:=0;
aDay:=strtodate('2002-01-01');
while aDay<=now do
begin
if yearof(aDay)<>Y then
begin
Y:=yearof(aDay);
T0:=treeview1.Items.Add(nil,inttostr(Y));
end;
if monthof(aDay)<>M then
begin
M:=monthof(aDay);
T1:=treeview1.Items.AddChild(T0,inttostr(M));
end;
D:=dayof(aDay);
treeview1.Items.AddChild(T1,inttostr(D));
aDay:=aDay+1;
end;
end;
ksaiy 2004-10-25
  • 打赏
  • 举报
回复
http://www.delphibox.com/article.asp?articleid=875

这里有个例子很详细的.你修改一下吧.
kevinworkroom 2004-10-25
  • 打赏
  • 举报
回复
Tn :=TreeView1.Items.AddChild(nil,'1');
Tn:=TreeView1.Items.AddChild(Tn,'11');
TreeView1.Items.AddChild(Tn,'111');

我用这个方面做,循环到月的时候它给我添加了12级,晕
kevinworkroom 2004-10-25
  • 打赏
  • 举报
回复
jinjazz(人雅的标记--落寞刺客)说清楚点可以吗?
我用了你这个方面不行,






还请各位回答问题的时候详细点 。
Nirvanaxumm 2004-10-25
  • 打赏
  • 举报
回复
没这么简单,还要考虑大小月和闰年2月的问题。
其余用循环创建就行了。
jinjazz 2004-10-25
  • 打赏
  • 举报
回复
sorry
---
treeview1.Items.Add()
treeview1.Items.Addchild()
jinjazz 2004-10-25
  • 打赏
  • 举报
回复
treeview1.add(..)
treeview1.addchild(..)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧