比如 image 控件, 程序运行时,可随意拖动image大小。
解决方案 »
- 如何取消在DBGrid中的数据修改
- udl文件设定问题!
- 滚动ListBox的ScrollBox
- 求一个函数?
- 初学数据库,哪位能给我讲一下ado访问和odbc访问的区别呢,还有没有其他访问方式?
- 关于条形码的读取(分多多:100分)
- dbgrideh?
- 想问如何使dbgrid中的部分列的数据内容是可改写的,其它列是只读的
- 我安装的report machine5.5或6.5版本控件的RMGridReportDesigner1的events属性怎么没有?
- 拜托各位大侠,给个思路要提取图片...
- Intraweb 7写的StandAlone程序如何发布阿
- delphi8 中还有 IntraWeb 组件吗,还能用吗? .NET环境下还能够用吗?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
procedure ManipulateControl(WinControl: TWinControl; Shift: TShiftState; X, Y, Precision: integer);
//Precision:精度,该方法可以在onmousemove中调用
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.ManipulateControl(WinControl: TWinControl;
Shift: TShiftState; X, Y, Precision: integer);
var SC_MANIPULATE: Word;
begin
//光标在控件的最左侧
if (X <= Precision) and (Y > Precision) and (Y < WinControl.Height - Precision)then
begin
SC_MANIPULATE := $F001;
WinControl.Cursor := crSizeWE;
end
//光标在控件的最右侧
else if (X >= WinControl.Width - Precision) and (Y > Precision) and (Y < WinControl.Height - Precision) then
begin
SC_MANIPULATE := $F002;
WinControl.Cursor := crSizeWE;
end
//光标在控件的最上侧
else if (X > Precision) and (X < WinControl.Width - Precision) and (Y <= Precision) then
begin
SC_MANIPULATE := $F003;
WinControl.Cursor := crSizeNS;
end
//光标在控件的左上角
else if (X <= Precision) and (Y <= Precision) then
begin
SC_MANIPULATE := $F004;
WinControl.Cursor := crSizeNWSE;
end
//光标在控件的右上角
else if (X >= WinControl.Width-Precision) and (Y <= Precision) then
begin
SC_MANIPULATE := $F005;
WinControl.Cursor := crSizeNESW ;
end
//光标在控件的最下侧
else if (X > Precision) and (X < WinControl.Width - Precision) and (Y >= WinControl.Height - Precision) then
begin
SC_MANIPULATE := $F006;
WinControl.Cursor := crSizeNS;
end
//光标在控件的左下角
else if (X <= Precision) and (Y >= WinControl.Height - Precision) then
begin
SC_MANIPULATE := $F007;
WinControl.Cursor := crSizeNESW;
end
//光标在控件的右下角
else if (X >= WinControl.Width - Precision) and (Y >= WinControl.Height - Precision) then
begin
SC_MANIPULATE := $F008;
WinControl.Cursor := crSizeNWSE;
end
//光标在控件的客户区(移动整个控件)
else if (X > 5) and (Y > 5) and (X < WinControl.Width - 5) and (Y < WinControl.Height - 5)then
begin
SC_MANIPULATE := $F009;
WinControl.Cursor := crSizeAll;
end
else
begin
SC_MANIPULATE := $F000;
WinControl.Cursor := crDefault;
end; if Shift = [ssLeft] then
begin
ReleaseCapture;
WinControl.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
end;
end;procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Caption := IntToStr(X) + '/' + IntToStr(Y);
ManipulateControl((Sender as TWinControl), Shift, X, Y, 10);
end;end.
TGraphicControl,或者 Tcontrol 也不能托动我的image图象改变大小嘛。不知道怎么回事
你把IMAGE扔到一个PANEL里不就完了.设置IMAGE为CLIENTALIGN,这样IMAGE就自动随PANEL改变大小.