delphi在一个会员信息列表中添加一个input控件,确认控件和取消控件,input控件中的值等于列表中的会员号时刷新页面,只显示包含这个会员号的那条信息,选中这条信息,在input控件中输入金额,通过T键可更改这个会员的消费金额,编辑完这条信息后点确定显示在另一个页面上,点取消退出当前页 应该怎么去写,请各位帮忙解答,感谢
参考如下demo,根据自己的业务进行修改
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
FSelectedRow: Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
// 添加input控件
StringGrid1.ColCount := 3;
StringGrid1.Cells[0, 0] := '会员号';
StringGrid1.Cells[1, 0] := '姓名';
StringGrid1.Cells[2, 0] := '消费金额';
for I := 1 to 10 do
begin
StringGrid1.RowCount := I + 1;
StringGrid1.Cells[0, I] := '100' + IntToStr(I);
StringGrid1.Cells[1, I] := '会员' + IntToStr(I);
StringGrid1.Cells[2, I] := '0';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// 确定操作
StringGrid1.Cells[2, FSelectedRow] := Edit1.Text;
ShowMessage('保存成功!');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// 取消操作
Edit1.Text := '';
StringGrid1.Row := FSelectedRow;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// 通过T键更改消费金额
if Key = 'T' then
begin
StringGrid1.Cells[2, FSelectedRow] := Edit1.Text;
ShowMessage('修改成功!');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// 初始化
FSelectedRow := 0;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
// 选中信息
FSelectedRow := ARow;
Edit1.Text := StringGrid1.Cells[2, ARow];
end;
end.