请问怎么利用按钮组件,对多个Edit分别进行赋值

时间:2022-05-30 03:02:52
按下按钮1 对Edit1赋值1  Edit2以后怎么办 怎么调用函数

2 个解决方案

#1


写个通用函数,根据输入参数,分别给不同的edit赋值
fun(type: intger)
begin
   if type = 1 then
      edit1.text := '1';
  if tyep = 2 then2
     edit2.text  := '2';
end

#2


利用控件的tag属性和动态绑定事件,可以写的很通用。
关键点:TEdit.tag 和 TButton.Tag设置成相同值,表示同一组。或者通过控件name取值,按某种规则也行。


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure OnSetValue(sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick := OnSetValue;
  Button2.OnClick := OnSetValue;
  //如果有更多控件,继续动态绑定事件
end;

procedure TForm1.OnSetValue(sender: TObject);
var
  i: integer;
begin
  for i:=0 to ControlCount-1 do
  begin
    if (Controls[i] is TEdit) and TEdit(Controls[i]).Tag=TButton(sender).Tag then
    begin
      TEdit(Controls[i]).Text := TButton(sender).Caption+' clicked'; //edit赋值
    end;
  end;
end;

end.

#1


写个通用函数,根据输入参数,分别给不同的edit赋值
fun(type: intger)
begin
   if type = 1 then
      edit1.text := '1';
  if tyep = 2 then2
     edit2.text  := '2';
end

#2


利用控件的tag属性和动态绑定事件,可以写的很通用。
关键点:TEdit.tag 和 TButton.Tag设置成相同值,表示同一组。或者通过控件name取值,按某种规则也行。


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure OnSetValue(sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick := OnSetValue;
  Button2.OnClick := OnSetValue;
  //如果有更多控件,继续动态绑定事件
end;

procedure TForm1.OnSetValue(sender: TObject);
var
  i: integer;
begin
  for i:=0 to ControlCount-1 do
  begin
    if (Controls[i] is TEdit) and TEdit(Controls[i]).Tag=TButton(sender).Tag then
    begin
      TEdit(Controls[i]).Text := TButton(sender).Caption+' clicked'; //edit赋值
    end;
  end;
end;

end.