在BCB中如何动态改变组件的大小.doc_第1页
在BCB中如何动态改变组件的大小.doc_第2页
在BCB中如何动态改变组件的大小.doc_第3页
在BCB中如何动态改变组件的大小.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/-#include #pragma hdrstop#include Unit1.h/-#pragma package(smart_init)#pragma resource *.dfmTForm1 *Form1;/-_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner)/-void _fastcall TForm1:Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)TControl* vcl = (TControl*)Sender;if ( X5) if (YCursor = crSizeNWSE; else if (Yvcl-Height -5) vcl-Cursor = crSizeNESW; else vcl-Cursor = crSizeWE; else if (X vcl-Width -5) if (YCursor = crSizeNESW; else if (Yvcl-Height -5) vcl-Cursor = crSizeNWSE; else vcl-Cursor = crSizeWE; else if (Yvcl-Height-5) vcl-Cursor = crSizeNS;else vcl-Cursor = crSizeAll;if (SizeMode = smNone) return;if (SizeMode = smMove) vcl-Left=vcl-Left+X-ClickX; vcl-Top=vcl-Top+Y-ClickY; return; if (SizeMode & smLeft) vcl-Left = vcl-Left +(X-ClickX); vcl-Width =ClickWidth -(vcl-Left-ClickLeft); if (SizeMode & smRight) vcl-Width =ClickWidth +X-ClickX; if (SizeMode & smUp) vcl-Top = vcl-Top +(Y-ClickY); vcl-Height =ClickHeight -(vcl-Top-ClickTop); if (SizeMode & smDown) vcl-Height = ClickHeight +Y -ClickY; /-void _fastcall TForm1:Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) TControl *vcl = (TControl*)Sender; if ( Shift.Contains(ssLeft) ClickX = X; ClickY = Y; ClickLeft = vcl-Left; ClickTop = vcl-Top; ClickWidth = vcl-Width; ClickHeight = vcl-Height; switch(vcl-Cursor) case crSizeNS: if (Y5) SizeMode = smUp; else SizeMode = smDown; break; case crSizeWE: if (X5) SizeMode = smLeft; else SizeMode = smRight; break; case crSizeNWSE: if (X5) SizeMode = smLeft | smUp; else SizeMode = smRight | smDown; break; case crSizeNESW: if (X5) SizeMode = smLeft | smDown; else SizeMode = smRight | smUp; break; default: SizeMode = smMove; break; /-void _fastcall TForm1:Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) SizeMode = smNone;/-#ifndef Unit1H#define Unit1H/-#include #include #include #include #include #include #include /-#define smNone 0#define smMove 1#define smLeft 2#define smRight 4#define smUp 8#define smDown 16/-class TForm1 : public TForm_published:/ IDE-managed Components TPanel *Panel1; TImage *Image3; TLabel *Label1; TShape *Shape1; void _fastcall Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void _fastcall Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void _fastcall Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);private:/ User declarations int ClickX; int ClickY; int ClickLeft; int ClickTop; int ClickWidth;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论