delphi 和 动态image(100分)

  • 主题发起人 主题发起人 koala2000
  • 开始时间 开始时间
K

koala2000

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一幅大的画面上实现多个区域点击分别进入不同的字窗口,区域的个数随程序中的配置动态变化.这几个区域希望能够实现:鼠标移到该处,该处的画面发生变化.(不希望用按钮)
 
用Region来做。
在程序中用
CombineRgn
CreateEllipticRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn
等有关Region的API来建立Region(区域),然后在OnMouseMove事件中用
PtInRegion函数来判断鼠标处于哪个Region中,再做出相应的反应。
 
使用透明的 TShape

1. 在 Form1 中安排一个 TImage, 并指定一张图片
2. 在 Form1 中 Image1 的位置中, 重叠放置一个 TShape
3. with Shape1:
set Brush.Style = bsClear
set Pen.Style = psClear
set Cursor = crCross

4. 为 Shape1 写 OnMouseUp 事件
procedure TForm1.Shape1MouseUp(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
ShowMessage('Click');
end;

其实, 就是在 Image1 上放置一个 Shape, 由於 Shape的 pen 与 brush
都是 clear, 因此形成透明而可以看到叠在下面的图片, 事实上, 滑鼠指标的改
变与click 都是针对 Shape;
如果要再作变化, 在图片与Shape 之间再夹一个图
片, 不过暂时将它的 Visible 属性设为假值,等到鼠标按下时, 让这个夹心图形
显示出来, 可以让画面多很多有趣的变化
如要实现,当鼠标移到该处,该处的画面发生变化,则可以为TShape控件编
写 OnMouseMove 事件,在事件里实现画面发生变化。
 
听了对我很有帮助,谢了
 
对我好像也有用处........
Listen.....
 
接受答案了.
 
后退
顶部