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

📄 fromascii_mainform.pas

📁 source code for the Marco Cantu s book Delphi 2009 Handbook
💻 PAS
字号:
unit FromAscii_MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ComCtrls, ExtCtrls;

type
  TForm30 = class(TForm)
    StringGrid1: TStringGrid;
    btnAscii7: TButton;
    StatusBar1: TStatusBar;
    btnUnicode: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    btnEuro: TButton;
    btnAscii8: TButton;
    btnGrapheme: TButton;
    procedure btnAscii7Click(Sender: TObject);
    procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure btnUnicodeClick(Sender: TObject);
    procedure btnEuroClick(Sender: TObject);
    procedure btnAscii8Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnGraphemeClick(Sender: TObject);
  private
    procedure ClearGrid;
    { Private declarations }
  public

  end;

var
  Form30: TForm30;

implementation

{$R *.dfm}

function GetCharDescr (nChar: Integer): string;
begin
  Result := 'Char #' + IntToStr (nChar) + ' [' + Char (nChar) + ']';
end;

procedure TForm30.btnAscii7Click(Sender: TObject);
var
  I: Integer;
begin
  ClearGrid;
  for I := 32 to 127 do
    StringGrid1.Cells [I mod 16 + 1, I div 16 + 1]
      := AnsiChar (I);
end;

procedure TForm30.btnAscii8Click(Sender: TObject);
var
  I: Integer;
begin
  ClearGrid;
  for I := 32 to 255 do
  begin
    StringGrid1.Cells [I mod 16 + 1, I div 16 + 1] := AnsiChar (I);
  end;
end;

procedure TForm30.ClearGrid;
var
  I: Integer;
begin
  // clean content
  for I := 0 to 255 do
    StringGrid1.Cells[I mod 16 + 1, I div 16 + 1] := '';
end;

procedure TForm30.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  // refresh border
  for I := 0 to 16 do
  begin
    StringGrid1.Cells[I + 1, 0] := IntToStr (I);
    StringGrid1.Cells[0, I + 1] := IntToStr (I*16);
  end;
end;

procedure TForm30.btnUnicodeClick(Sender: TObject);
var
  I: Integer;
begin
  ClearGrid;
  for I := 32 to 255 do
  begin
    StringGrid1.Cells [I mod 16 + 1, I div 16 + 1] := Char (I);
  end;
end;

procedure TForm30.btnEuroClick(Sender: TObject);
var
  aChar: AnsiChar;
  uChar: Char;
begin
  aChar := '

⌨️ 快捷键说明

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