delphi:我用两个panel重叠做了个工具面板,要求能够像窗口一样点击移动,拖动上层的panel下层panel移动,据说是在OnDockDrop和OnDockOver事件中写代码,但是还是不会,有高人请指导!万分感谢!
解决方案 »
- 请问大家判断一个字符串是不是已存在用什么方法最优?
- 急!两张图片淡入淡出
- 简单的格式化数字问题
- 求教一个lisitview1响应treeview的节点。并显示数据表问题
- delphi里面怎么备份数据库里的数据??
- 怎么样临听端口!
- 请教各位大师,如何取到TTrackBar中在显示时候有数字?像个刻度尺一样的效果
- quickreport的QRpreview控件怎么用牙?谢谢!
- 改行做保险,想弄个特殊点的手机号,谁来教教我?
- 关于应用程序服务器的问题?
- function CountSubstrEx(text,sub:string):Integer; 这个函数中的text是什么类型呀,但可以运行呢? functi
- 怎样读取记事本的每一行信息到DELPHI中的memo1中
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
FOldX,FOldY,FNewX,FNewY:integer;
FMoveing:Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FOldX := X;
FOldY := Y;
FMoveing := True;
end;procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FMoveing then
begin
FNewX := X;
FNewY := Y;
Panel1.Left := Panel1.Left + FNewX - FOldX;
Panel1.Top := Panel1.Top + FNewY- FOldY;
end;
end;procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FMoveing := False;
end;end.