procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
我使用的是OnMouseDown事件 程序要实现的是:在鼠标单击窗体的位置上建立按钮
并用标题表明确切的位置 可为什么要错啊 我是个菜鸟 什么都不懂 请大家多多指教 小妹不胜感激~~~~
Shift: TShiftState; X, Y: Integer);
var
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
我使用的是OnMouseDown事件 程序要实现的是:在鼠标单击窗体的位置上建立按钮
并用标题表明确切的位置 可为什么要错啊 我是个菜鸟 什么都不懂 请大家多多指教 小妹不胜感激~~~~
Shift: TShiftState; X, Y: Integer);
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
Shift: TShiftState; X, Y: Integer);
//var
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
Shift: TShiftState; X, Y: Integer);
//var 多了
var
Btn:TButton;
begin
// Btn:=TButton.Create(Form1); 这里面使用Form1不是好习惯
Btn:=TButton.Create(Self);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
Shift: TShiftState; X, Y: Integer);
Procedure CreateBtn;
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;
begin
CreateBtn;
end;
//来抢分的,嘻嘻
var Btn:Tbutton;
Btn:=Tbutton.create(self);
Btn.Parent:=Form1;
这样之后才能用。我以前也遇到过这样的问题呢.
Btn:=TButton.Create(Self);
//这也不是好习惯吧, pazee(耙子) ,如果返上边的那种写法的看,这种就会死QQ的,嘻嘻
看在什么情况下,对吗?
Uses StdCtrls;
嘻嘻,嘻嘻;一起学习了啦;
To jan2002(阿吉)
只要有一个Std控件,StdCtrls就自动的加上去了;
Button: TMouseButton; 这一句又是什么意思? 有什么用?
Shift: TShiftState; 这一句又是什么意思? 有什么用?
X, Y: Integer 这一句又是什么意思? 有什么用?
小妹现在是从"零"开始学习Delphi 才学几个星期 总是要遇到好多好多这样那样的问题 我一遇到问题 就不知道该怎么办 身边也没有老师可以指点指点我 只好请教大家了 希望GG多帮帮我这个入门菜鸟~_~
Button:TmouseButton://这个判断建值是什么..
你可以查一查:
TShiftState = set of (ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble);
TMouseButton = (mbLeft, mbRight, mbMiddle);这些就是了;
你真是气死我了 你~~~~~~~~~~~你~~~~~~~~~~~~~~~
你不知道我才学Delphi几个星期呀 请说国语好么???
你说得真是太精辟了!! 我一句都看不懂!!!!!!!!!!!!!!!!!!!
我是个菜鸟耶~~~~~
var
button : TButton;
i:integer;
begin
button:= TButton.Create (self);
button.Parent := form1;
button.name := 'buttonxx';
button.Left :=250;
button.Top:=130;
button.Width :=80;
button.Height :=30;
button.OnClick :=newbutton;
end;procedure tform1.newbutton(sender:tobject);
begin
showmessage('ok');
end;另外,别忘记了声明procedure newbutton(sender:tobject);
这句话一点错也没有!!你想:在类的方法里对对象进行操作,这本身就违背面向对象的原则!!可能这么说你不觉的那么换个方式,你看下面的代码VAR Form1,Form2:Tform1;
……procedure TForm1.FormCreate(Sender: TObject);
begin
self.caption:= '百合MM';
end;这样,所有的对象创建以后,caption都是‘ 百合MM ’
而如果
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.caption:= '百合MM';
end;结果是什么呢?只有Form1的caption是‘ 百合MM ’
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Btn:TButton;
begin
Btn:=TButton.Create(Form1);
Btn.Parent:=Form1;
Btn.Left:=X;
Btn.top:=Y;
Btn.Width:=Btn.Width + 50;
Btn.Caption:=Format('Button at %d,%d',[X,Y]);
end;end.