Adding all buttons captions automatically to string grid

274 Views Asked by At

I am new to Delphi. I would like to know, is there any way to add any Caption or Text inserted/created by the user in a Form to a StringGrid automatically?

For example, using for a simple translator VCL, the Form detects a Button added and the Caption of this new Button automatically appears in the StringGrid to go for the translating process.

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.
0

There are 0 best solutions below