我要做一个程序,在屏幕上有一个panel1、button1、button2,而在panel1上又放置了一个Edit1和Label1。
现在有两个问题:如何实现在程序运行以后,
1、点击button1可以令panel1和它上面的控件成比例放大(包括字体);如125%,150%,200%
2、点击button2可以令panel1和它上面的控件成比例缩小(包括字体)。如75%,50%,25%最好有具体的代码,谢谢!!!
现在有两个问题:如何实现在程序运行以后,
1、点击button1可以令panel1和它上面的控件成比例放大(包括字体);如125%,150%,200%
2、点击button2可以令panel1和它上面的控件成比例缩小(包括字体)。如75%,50%,25%最好有具体的代码,谢谢!!!
解决方案 »
- PAGECONTROL 各页面高度不一样如何设定
- 暴笑的两个活宝,程序员轻松一下吧
- 从DBGRID中提起数据
- 放分200恭喜 menggirl 做版主 -- boytomato
- 期末考试终于考完了,高兴啊(2)!!!为什么我只能给100分啊???
- 关于TTrayNotifyIcon(托盘图标)的问题?
- 高手来看吧!
- Delphi 7.0 开发的WebService 在 Win 2003 发布出现的问题
- 又有问题,大家来看看
- 我的问题大家看看
- 大哥帮忙 解决类问题 新手
- 求教!fastReport 3打印问题。query控件经过filter条件过滤后,用fastreport打印还是记录全部出来,有何解决办法啊??
Panel1.ScaleBy(125,100)
用Panel1.ScaleBy(125,100) 虽然可以将panel放大,但是好象只是将panel的长宽加长了,而不是达到放大的效果,如panel上控件的字体不会变大,且panel上各控件的Top、Left值也会随着panel的放大缩小面改变。
而我想达到的效果是当panel放大或缩小时,
1、它上面的各控件及其字体也要随之成比例的放大及缩小。
2、它上面的各控件的Top、Left值不会跟着改变。如panel上有一个button控件,它的top=20,left=30,在放大或缩小后它的top=20,left=30,保持不变。
请问各位高手们有没什么办法能达到这一效果?在此先谢谢了!!!
即
akLeft = True
akTop =True
akRight = True
akBottom = True
你的方法也不能达到我的要求。字体还是不变。
真的没人能知道吗???恳请大家帮帮忙吧!!!
实现了ChangeScale()方法,
可以对控件本身和控件上所有子控件包括字体进行缩放
你可以参照这个方法,自己实现一个
然后使用ChangeScale方法进行缩放
TFrame 没有ChangeScale方法,且如果将image控件放在panel上时它里面的图象并不会跟着panel放大或缩小。
然后再Panel1.ScaleBy就可以把panel1上的控件字体放大至于说图像把Image1.Stretch := True就可以随着Panel放大
按你上面的方法可以实现字体和image的放大,但是panel上各控件的Top和Left值却会不断变化。
例如:panel上有个edit1控件,它的top=20,left=30,我想在panel放大之后,edit1控件的top和left值不变,能实现吗,请再帮帮我吧,谢谢!!!
给你一个做参考procedure ControlScaleBy(AControl: TWinControl; M, D: Integer);
var
i : Integer;
begin
for i:=0 to AControl.ControlCount-1 do
begin
//将控件的位置先缩小
with AControl.Controls[i] do
SetBounds(MulDiv(Left, D, M),MulDiv(Top, D, M),Width,Height);
end;
AControl.ScaleBy(M,D);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ControlScaleBy(Panel1,300,100);
end;
你上面的方法是可以将panel上各控件的top与left值不变动,但是各控件间的距离不会成比例放大。
我是想实现将panel及它上面的所有控件成比例放大或缩小的效果。就象拿个放大镜看一样。
拜托了,十分感谢!!!
这本来就是矛盾的一般放大镜的实现都是先截取屏幕上的一小块图像
通过对图像进行缩放来实现的,不是像你这样改变控件大小
就是实现将panel缩放,同时缩放它上面的各控件。如题。
要想保持控件的间距按照比例缩放,
则Top,Left的值必然会发生变化
要想保持Top,Left的值不变,
则控件的间距必然保持会不变楼主要的那种控件的间距按照比例缩放,
每个控件的Top,Left的值又保持不变的效果
是没有办法实现的
现在的问题是scaleby完全能实现你说的功能,只是字体没有改变,你可以通过另写程序改变字号,
至于你说top left什么不变,又变的,我同意sdzeng(大头鸟) 的说法,你自己好好理清思路再说吧,要不回去睡一觉,清醒清醒,