将所有按钮标题自动添加到字符串网格

问题描述

我是 Delphi 的新手。我想知道,有没有办法将用户在表单中插入/创建的任何 CaptionText 自动添加到 StringGrid?

例如,对于一个简单的翻译器 VCL,Form 检测到添加了一个 Button,这个新 Button 的 Caption 会自动出现在 StringGrid 中以进行翻译过程。

unit frmTranslation_u;

interface

uses
  Winapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Vcl.Buttons,Vcl.ExtCtrls,Vcl.Grids;

type
  TfrmTranslation = class(TForm)
    pnlPersonalInformation: TPanel;
    lblFirstName: TLabel;
    lblSureName: TLabel;
    edtFirstName: TEdit;
    edtSurName: TEdit;
    pnlAction: TPanel;
    btnEnglish: TButton;
    btnAfrikaans: TButton;
    btnDisplay: TButton;
    bmbReset: TBitBtn;
    bmbClose: TBitBtn;
    memResult: TMemo;
    sgdData: TStringGrid;
    procedure btnAfrikaansClick(Sender: TObject);
    procedure btnEnglishClick(Sender: TObject);
    procedure btnDisplayClick(Sender: TObject);
    procedure bmbResetClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sgdDataClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmTranslation: TfrmTranslation;

implementation

{$R *.dfm}

procedure TfrmTranslation.bmbResetClick(Sender: TObject);
begin
  // Clear the edit
  edtFirstName.Clear;
  edtSurName.Clear;
  // Clear The memo
  memResult.Clear;
  // Shift the focus to the first name edit
  edtFirstName.SetFocus;
end;

procedure TfrmTranslation.btnAfrikaansClick(Sender: TObject);
begin
  lblFirstName.Caption := 'Noemnaam';
  lblSureName.Caption := 'Van';
  frmTranslation.Caption := 'Vertaling';

  lblFirstName.Left := 32;
  lblSureName.Left := 80;

  btnAfrikaans.Enabled := False ;
  btnEnglish.Enabled := true;
end;

procedure TfrmTranslation.btnDisplayClick(Sender: TObject);
begin
  // show the full name in the memo
  memResult.Lines.Add('You Added '+edtFirstName.Text +' '+ edtSurName.Text);
end;

procedure TfrmTranslation.btnEnglishClick(Sender: TObject);
begin
  lblFirstName.Caption := 'First Name';
  lblSureName.Caption := 'Surname';
  frmTranslation.Caption := 'translation';

  lblFirstName.Left := 40 ;
  lblSureName.Left := 50 ;

  btnEnglish.Enabled := false ;
  btnAfrikaans.Enabled := true ;
end;

procedure TfrmTranslation.FormCreate(Sender: TObject);
var
  i,iCol,iRow : integer ;
begin
  sgdData.Cells[0,0] := 'NAME';
  sgdData.Cells[1,0] := 'TYPE';
  sgdData.Cells[2,0] := 'Id_LAN';
  sgdData.Cells[3,0] := 'VALUE';
end;

procedure TfrmTranslation.sgdDataClick(Sender: TObject);
begin
end;

end.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...