Form的AutoSize属性(50分)

  • 主题发起人 主题发起人 Jao
  • 开始时间 开始时间
J

Jao

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个与WINDOWS的FIND程序有点象的窗体,就是当按一个按钮时,窗
体的Height加大一些,当再按一下时,窗体的Height再恢复到原来的值。
由于考虑到不同的分辨率下,如果写死Height的值会产生意想不到的结
果,所以我使用了两个Panel,其中一个的Visible属性为false,同时我将
FORM的Autosize属性设为true。程序起动时很正常,如我所料FORM的大小
正好包容了第一个Panel,可是当我把第二个Panel的Visible设为True时,
FORM的高度并没有改变,也无法看到第二个中的内容。按理说FORM应该自
动调节它的高度的。难道Autosize没有用吗?
 
有没Refresh呢?
 
有没有Hide第一个Panel?
 
你不改如此做:
你可以使用Screen.Height来得到所需要的屏幕高度,然后动态调整FORM高度
第二个PANEL只会把第一个挤掉//个人观点
比如:把FORM的POSSION改为FPSCREENCENTER(类似的东西)
self.height := screen.height / 2;
Self.width := screen.width / 2;
....
if ClickOnce then
Self.height := self.height + screen.height / 5
ELSE
Self.height := self.height - screen.height / 5;
 
To CJ
如果照这个方法来,事实上也是在计算FORM的高度,但是如果在WINDOWS的设置
中使用了不同的字体(如我在小字体下编程,而运行时却在大字体下),这样仍然
会使FORM变形。

我的意思就是做一个象windows start菜单中的Find..程序一样的东东,当一按
Find now钮时,FORM就加长,显示出下面的MEMO,把信息显示在其中。我想要么
就是我在哪个地方设得不对,要么就是我们误解了AutoSize的功能。
 
form下面的 panel(第二个panel)的Align:=alnone,OK!
 
fx的说法是正确的下面的panel的大小不能是变的,只能是none.不然会与form的
autosize属性冲突。
 
老大,这并不解决大、小字体的问题呀?
BC也没有很好解决这问题,就算你搞定
了大、小字体,那么自定义字体呢?
省点力气吧。

关于你的问题,我有个例程你要吗?

关于前两位的方法有所补充:
两个PANEL都要NONE

当ALIGN属性为非NONE时,当ONOWER RESIZE
时,它们都自动进行调整。既然它们调整了
还AUTO什么SIZE呢?

如果上面ALIGN设置为CLIENT后,你怎么让屏
幕改变呢?设置为TOP还凑合:-)
 
同意cj,我以前做过.
 
TO CJ,
请妹给我(Anytime@netease.com), 谢谢。

谢谢各位,总算解决眼前的问题了。
 
多人接受答案了。
 
后退
顶部