我在一种分辨率下编的程序,改变分辨率后界面需要重新调整,否则就很不整齐,如何解决?
解决方案 »
- 关于TatukGIS,如何避免Marker和label重叠?请各位朋友赐教!!
- 想做一个POS系统,请大家给点提示,谢谢!
- byte(m_buf[i])
- 我用dbExpress连接Interbase数据库,打包时应将哪些文件或动态库打进去!(在线等)
- delphi中的清屏语句如何写?很急!!!
- listview让列自动适应字段宽度?
- 如果程序做到一半,发现数据表的结构有问题,改动时,在程序里应该注意什么地方?
- 关于SQL server 2000的问题,
- 找师傅,100分
- 简单:如何在两个过程之间传递一个控件名称。
- 急了一天了:如何释放临时表所占的内存?(快没分了,紧急求助!)
- 毕业设计 课题是分布式售票管理系统 请大家提供思路!非常谢谢大家!!
DWORD dwflags
);
X := GetSystemMetrics(SM_CXSCREEN);// 得到显示器的水平分辨率
Y := GetSystemMetrics(SM_CYSCREEN);// 得到显示器的垂直分辨率
if (X=800) and (Y=600) then // 800*600 分辨率时,将程序窗口显示在主程序的中间
begin
...
end
else
begin
...
end;
我一般是在800*600分辨率下规划界面(根据实际运用情况的),控制好800*600下的界面后,当用户的分辨率是1024*768的时候,将界面居中
form1.Position:=poScreenCenter;
我就是这么做的,仅供参考 :)
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;procedure Tyhzx.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;
首先把你要显示的窗口设置为最大化,然后把需要的控件用panel之类的容器包容起来,然后再把容器的Align属性设为需要的对 齐方法就可以了,不用代码实现,但是效果就差了一点点!取舍自己定吧!