【发布时间】:2013-07-13 21:11:56
【问题描述】:
我是德尔福的新手。
我想创建一个应用程序,在其中创建多个按钮。声明一个 Tbuttons 数组并一个一个地创建按钮并不是很令人满意,因为它令人困惑并且需要很多时间。使用 Command For 也不令人满意,因为如果需要,我将无法更改某些按钮的属性,例如它们的位置。
所以我决定在 TForm1 类中声明一个过程,它根据我发送给该过程的属性创建按钮。但由于某种原因它不起作用(没有任何语法错误):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm) //Declaring the procedure
procedure CreateButton(Button: TButton; L: Integer; T: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
B1, B2: TForm1; //Declaring controls
implementation
{$R *.dfm}
procedure TForm1.CreateButton(Button: TButton; L: Integer; T: Integer);
begin
Button:= TButton.Create(Self);
Button.Parent:= Self;
Button.Width:= 100; Button.Height:= 50;
Button.Left:= L; Button.Top:= T;
end;
procedure TForm1.FormCreate(Sender: TObject);
Var
Button1, Button2: TButton;
begin
B1.CreateButton(Button1, 100, 50); //Sending properties
B2.CreateButton(Button2, 200, 40); //Sending properties
end;
end.
【问题讨论】:
-
“不工作”是什么意思???什么时候 ?其中有哪些错误?她没有人能跳进你的脑袋里,用你的眼睛看。请阅读catb.org/~esr/faqs/smart-questions.html
-
CreateButton 中有两个 Button.Height... 将第二个更改为 Button.Top := T;
-
对不起,我的意思是按钮 1,2 没有创建
-
您如何确定它们不是创建的,而不是创建在错误的位置、错误的所有者或创建的不可见?作为一名程序员,你应该对声明和事实非常敏锐和确定。否则,您的程序将做任何事情,而不是用户要求的事情。 “我看不到屏幕上的按钮”和“未创建按钮”之间有很多英里
-
你看到代码中的任何地方(Button.hide)了吗?不,因此它们的可见自动变为 TRUE,因此它们不是不可见的。另外,我以特定坐标发送按钮。 Button1.top = 100, Button1.Left = 50 and Button2.top = 200, Button2.Left = 40 即使参数没有传入 "CreateButton" 按钮也会自动创建在 (Top, Left = 0, 其中他们没有)
标签: delphi class properties controls delphi-7