給100分,圖形縮放問韙(100分)

  • 主题发起人 主题发起人 rrr
  • 开始时间 开始时间
R

rrr

Unregistered / Unconfirmed
GUEST, unregistred user!
在Panel上放多個PaintBox,PaintBox上有Rectangle和文字。
當Panel改變大小時,各個PaintBox上的東西也相應改變大小。(按比率)

假如PaintBox很多時,該怎樣處理!
 
用FindComponent逐个处理。
 
FindComponen 與FindControl是怎樣區分
 
// 将 panel1 及其上控件按比例缩小至原 3/4 大小
panel1.ScaleBy(3,4);
 
用procedure scaleby(M,D:integer);
最好用spinedit控件,
panel.scaleby(spinedit.position,100);
spinedit.min:=##;
spinedit.max:=##;
oncreate事件里
spinedit.position:=100;
 
PaintBox的宿放问题,涉及PaintBox特有的OnPaint事件。
 
这个问题好象很简单呀。 只要指定各个PaintBox的anchors或者在Panel1.OnResize里调整各个PaintBox的大小。 而各个PaintBox.OnPaint事件处理里根据各自的大小来画不就可以了?
 
最佳解决方法:大部分控件都有Anchors属性,它是akLeft,akTop,akRight,akBottom组成的
集合,分别设置控件各边和父控件的位置关系。不同的组合可以实现不同的界面调整效果。
例如:
Anchors = [akLeft,akTop,akRight,akBottom]; 控件各边到父窗体的距离保持不变,即自
动缩放。
Anchor = [];控件的位置按设计时的比率进行自动调整。
你多试几次就知道了。
 
后退
顶部