我在状态栏里运用了Statusbar1.Panels[2].Text:=TimeToStr(Time);来显示时间,不过它显示出来之后就有能再变化了,我想让它按秒来增加变化的效果,如何实现?
解决方案 »
- 如何判断memo
- 如何写这样一个查询?
- 请教用webBrowse做程序主界面的问题:类似于导航,内详
- 求教:用ADO从SQLSrv2000中Shape来的数据,在BatchUpdate模式下,为什么不能更新子表(Chapter/Nested RecordSet)?
- @@@@@SQL Server的连接问题?@@@@@
- 上午问了个问题,语句如下,运行出错
- 什么时候会有《Delphi6开发人员指南》啊?
- dephi6 中 dll是否不支持messagedlg函数?
- 请问各位有否看过类似于《C++编程思想》和《Java编程思想》“深入探讨”Pascal的书?
- 关于字符串一难题
- Thandle是干什么用的?
- sql语句问题(ado+sqlserver)
在ontimer事件中调用Statusbar1.Panels[2].Text:=TimeToStr(Time);
把你那句代码现在ontimer事件中不就是了
别忘了先把这个帖子的分给别人结了!
大家都是讲道理的吗!要遵纪守法!
不过这里我可以先提供代码:
×××××××××××××××××××××××××××××××××××××
分辨率的问题
不同的分辨率下原来的窗口界面可能变得面目全非,对于这种问题,我一般采取以下方式:
先取得分辨率方法有如下:
procedure TForm1.FormCreate(Sender: TObject);
var
sx,sy:Integer;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
end;
也可以用Screen.width/Screen.Height来取得
也可以用Var DevMode:TDeviceMode;
Begin
EnumDisplaySettings(nil,0,DevMode)
sx := DevMode.dmPelsWidth
sy := DevMode.dmPelsHeight 来取得
end
也可以用sx := GetDeviceCaps(GetDC(Form1.Handle), HORZRES)
sx :=GetDeviceCaps(GetDC(Form1.Handle), VERTRES) 来取得而后有以下几种方法:
1. 判断分辨率并选择相应的分辨率方案;
(对每种分辨率设计一套控件/字体的大小方案用于在不同分辨率下选择)
2. 固定窗口大小;
procedure TForm1.FormResize(Sender: TObject);
begin
width:=640; height:=480;
left:=0; top:=0;
end;
3. 使用procedure ScaleBy(M, D: Integer)这个过程来对可视控件进行大小调节(此过程不调节窗口大小,也不变动控件的left和top,对控件的大小按M/D比例来调节),具体如下:
procedure TForm1.FormCreate(Sender: TObject);
//假设原来的设计环境为800x600
var FWidth:integer;
begin
if(Screen.width<> 800)then
begin
FWidth:=Width;
Scaled:=TRUE;
Font.Size:=(Width DIV FWidth)*Font.Size;//字体大小调整
ScaleBy(Screen.Width,800); //控件大小调整
Height:=longint(Height)*longint(Screen.Height)DIV 600;
Width:=longint(Width)*longint(Screen.Width)DIV 800;//窗口大小调整
end;
end;
用此种方法比较实用,而且使用比较简单,基本能适应大多数环境。 4. 调节分辨率到所需的分辨率(即设计时的分辨率,此法对要求封闭的系统比较有用,如工控、触摸屏等等)
procedure TForm1.FormCreate(Sender: TObject);
var FWidth:integer;
DevMode:TDeviceMode;
begin
if(Screen.width<> 800)then
begin
Result:=EnumDisplaySettings(nil,0,DevMode); //取得旧的显示参数
if Result then
begin
DevMode.dmFields:=DM_PELSWIDTH Or DM_PELSHEIGHT;
DevMode.dmPelsWidth:=800;
DevMode.dmPelsHeight:=600;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
end;
end;
5. 设置控件的Align和Anchors属性
××××××××××××××××××××××××××××××××××××××××
procedure TMyClass.FormCreate(form: Tform);
var
x, y: LongInt;
begin
form.scaled := true; //Óдí
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
if (x <> ScreenHeight) or (y <> ScreenWidth) then
begin
form.height:=form.height*x DIV ScreenHeight; //Óдí
form.width:=form.width*y DIV ScreenWidth; //Óдí
form.ScaleBy(x,ScreenHeight);
end;
end;
××××××××××××××××××××××××××××××××××××××××