微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我是 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 举报,一经查实,本站将立刻删除。