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

📄 a2.pas

📁 delphi的学习资料
💻 PAS
字号:
unit A2;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Grids;
type
  TfmA2 = class(TForm)
    LbStr: TLabel;
    edtStr: TEdit;
    edtNum: TEdit;
    LbNum: TLabel;
    btnSty: TBitBtn;
    sg: TStringGrid;
    procedure FormActivate(Sender: TObject);
    procedure edtStrKeyPress(Sender: TObject; var Key: Char);
    procedure edtNumKeyPress(Sender: TObject; var Key: Char);
    procedure btnStyClick(Sender: TObject);
  private    { Private declarations }
  public     { Public declarations }
  end;
var
  fmA2: TfmA2;
  sgColCount: byte;

//////////////////////////////////////////////////////////////////////////
implementation
{$R *.DFM}

procedure TfmA2.FormActivate(Sender: TObject);
begin
  LbNum.Caption:='Num';   edtNum.Text:='0';
  LbStr.Caption:='';
end;

// =========  edtNum 的 字符键 事件 =====================
procedure TfmA2.edtNumKeyPress(Sender: TObject; var Key: Char);
var
  s: string;  n: integer;
begin
  if key=#13 {Enter键} then //*1
    begin
      s:=edtNum.Text;       //*2
      n:=StrToInt(s);
      sg.Cells[sgColCount,0]:=s;
      sg.Cells[sgColCount,1]:=IntToStr(n*2);   // 整数 ==> 字符串
      sg.Cells[sgColCount,2]:=FloatToStr(n/3); // 实数 ==> 字符串
      sg.Cells[sgColCount,3]:=FormatFloat('#,#0.##',n/3);// 实数 ==>格式化字符串
      sg.Col:=sgColCount;   // 此句有何作用? 去掉后效果有什么变化?
                            // 实际上, 本段还含有bug,  如何修改程序?
      sgColCount:=sgColCount+1;
      if sgColCount>5 then
        sgColCount:=0;
    end;
  if not (Key in ['0'..'9']) then
    key:=#0;
end;

// =========  btnSty 的 单击事件 =====================
procedure TfmA2.btnStyClick(Sender: TObject);
Const  MyFontStyle=[fsBold, fsItalic, fsUnderline, fsStrikeOut];
var
  set0: set of Graphics.TFontStyle; //任何组件的字样式都是该类型
  s: string;  c: char;  i: byte;
begin
  s:=edtstr.Text;
  if s='' then
    Exit;   //退出本过程

  set0:=[];
  for i:=0 to Length(edtstr.Text)-1 do
  begin
    c:=s[i+1];
    case c of
      '0': set0:=set0+[fsBold];
      '1': set0:=set0+[fsItalic];
      '2': set0:=set0+[fsUnderline];
      '3': set0:=set0+[fsStrikeOut];
      else
        if c<>' ' then
          set0:=[];
    end;
  end;
  FmA2.Font.Style:=set0;
end;

// =========  edtStr 的 字符键 事件 =====================
procedure TfmA2.edtStrKeyPress(Sender: TObject; var Key: Char);
var
  s,s2: string;
  n: byte;
begin
  if key=#13 then
    begin
      s2:=Trim(edtStr.Text);
      if s2='del' then
        LbStr.Caption:=''
      else
        begin
          s:=LbStr.Caption;
          s:=s+'-'+edtStr.Text;
          n:=Length(LbStr.Caption);
          if n > 20 then
            s:=Copy(s,15,5);
          LbStr.Caption:=s;
        end;

      if s2='up' then
        edtStr.Top:=edtStr.Top-22;
      if s2='dn' then
        edtStr.Top:=edtStr.Top+22;
      if s2='large' then
        begin
          edtStr.width:=edtStr.width+11;
          edtStr.Height:=edtStr.Height+5;
        end;
    end;

  if (key=#27{Esc键}) or (key=#13) then
    edtStr.Text:='';
end;


end.

⌨️ 快捷键说明

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