⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 Delphi中一个可以进行内容编辑的Grid
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ValEdit, ComCtrls, RzListVw, RzButton, StdCtrls, Mask,
  RzEdit;

type
  TForm1 = class(TForm)
    sg: TStringGrid;
    RzButton1: TRzButton;
    RE1: TRzEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure RzButton1Click(Sender: TObject);
    procedure sgSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure RE1Exit(Sender: TObject);
    procedure sgEnter(Sender: TObject);
    procedure RE1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    m_iRow,m_iCol:integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RzButton1Click(Sender: TObject);
var
    i,j,iRC,iCC:integer;
begin
    iRC:=sg.RowCount;
    iCC:=sg.ColCount;
    for i:=0 to iRC-1 do
    begin
        for j:=0 to iCC-1 do
        begin
            sg.Cells[i,j]:=inttostr(i*iCC+j);

        end;

    end;

    
end;

procedure TForm1.sgSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
    RE1.Visible:=true;
    RE1.Top:=sg.Top+sg.CellRect(ACol,ARow).Top;
    RE1.Left:=sg.left+sg.CellRect(ACol,ARow).Left;
    RE1.Height:=sg.RowHeights[ARow]+3;
    RE1.Width:=sg.ColWidths[ACol]+3;

    RE1.Text:=sg.Cells[ACol,ARow];
    RE1.SetFocus;

    m_iCol:=ACol;
    m_iRow:=ARow;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    sg.ColWidths[0]:=50;
    sg.ColWidths[1]:=100;

    m_iCol:=0;
    m_iRow:=0;
end;

procedure TForm1.RE1Exit(Sender: TObject);
begin
    sg.Cells[m_iCol,m_iRow]:=RE1.Text;
    RE1.Visible:=false;
end;

procedure TForm1.sgEnter(Sender: TObject);
begin
    //RE1.Top:=sg.Top+sg.CellRect(m_iCol,m_iRow).Top;

end;

procedure TForm1.RE1KeyPress(Sender: TObject; var Key: Char);
var
    c:char;
begin
    //#48-#57 :0--9;  #46:小数点 ;#110:Delete ;#8:Backspace
    if ((Key<#48) or (Key>#57)) and (Key<>#46) and (Key <> #110) and (Key <> #8) then
        Key:=#0;
    if (length(RE1.Text)>=3) and  (Key <> #110) and (Key <> #8) then
        Key:=#0;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -