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

📄 rawtest_mainform.pas

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

interface

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

type
  TFormRawTest = class(TForm)
    btnRawLat: TButton;
    Memo1: TMemo;
    btnConvert: TButton;
    btnRawCyr: TButton;
    btnRawAnsi: TButton;
    btnRawUTF8: TButton;
    procedure btnRawLatClick(Sender: TObject);
    procedure btnConvertClick(Sender: TObject);
    procedure btnRawCyrClick(Sender: TObject);
    procedure btnRawAnsiClick(Sender: TObject);
    procedure btnRawUTF8Click(Sender: TObject);
  private
    procedure Log (const strMsg: string);
    procedure DisplayStringData (str: AnsiString);
    procedure DisplayRawData (str: RawByteString);
  public
    { Public declarations }
  end;

var
  FormRawTest: TFormRawTest;

implementation

uses
  Character;

{$R *.dfm}

type
  Latin1String = type AnsiString(28591);
  CyrillicString = type Ansistring(1251);

procedure TFormRawTest.btnRawAnsiClick(Sender: TObject);
var
  strAnsi: AnsiString;
begin
  Log ('Ansi string');
  strAnsi := 'Some text ';
  strAnsi := strAnsi + AnsiChar (210) + AnsiChar (128);

  Log ('String: ' + strAnsi);
  Log ('CodePage: ' + IntToStr (StringCodePage (strAnsi)));
  Log ('Address: ' + IntToStr (Integer (Pointer (strAnsi))));

  DisplayStringData (strAnsi);
  DisplayRawData (strAnsi);
  Log ('');
end;

procedure TFormRawTest.btnRawCyrClick(Sender: TObject);
var
  strCyr: CyrillicString;
  nChar: Integer;
begin
  Log ('Cyrillic string');
  strCyr := 'Some text ';
  nChar := 210;
  strCyr := strCyr + CyrillicString (AnsiChar (nChar));
  Inc (nChar, 2);
  strCyr := strCyr + CyrillicString (AnsiChar (nChar));

  Log ('String: ' + strCyr);
  Log ('CodePage: ' + IntToStr (StringCodePage (strCyr)));
  Log ('Address: ' + IntToStr (Integer (Pointer (strCyr))));

  DisplayStringData (strCyr);
  DisplayRawData (strCyr);
  Log ('');
end;

procedure TFormRawTest.btnRawLatClick(Sender: TObject);
var
  strLat: Latin1String;
  nChar: Integer;
begin
  Log ('Latin string');
  strLat := 'Some text ';
  nChar := 210;
  strLat := strLat + Latin1String (AnsiChar (nChar));
  nChar := 128;
  strLat := strLat + Latin1String (AnsiChar (nChar));

  Log ('String: ' + strLat);
  Log ('CodePage: ' + IntToStr (StringCodePage (strLat)));
  Log ('Address: ' + IntToStr (Integer (Pointer (strLat))));

  DisplayStringData (strLat);
  DisplayRawData (strLat);
  Log ('');
end;

procedure TFormRawTest.btnRawUTF8Click(Sender: TObject);
var
  strUtf8: UTF8String;
  nChar: Integer;
begin
  Log ('UTF-8 string');
  strUtf8 := 'Some text ';
  nChar := 210;
  strUtf8 := strUtf8 + UTF8String (AnsiChar (nChar));
  nChar := 128;
  strUtf8 := strUtf8 + UTF8String (AnsiChar (nChar));

  Log ('String: ' + strUtf8);
  Log ('CodePage: ' + IntToStr (StringCodePage (strUtf8)));
  Log ('Address: ' + IntToStr (Integer (Pointer (strUtf8))));

  DisplayStringData (strUtf8);
  DisplayRawData (strUtf8);
  Log ('');
end;

procedure TFormRawTest.btnConvertClick(Sender: TObject);
var
  str1: AnsiString;
  pRaw: PAnsiChar;
  strU: string;
begin
  str1 := 'Cant

⌨️ 快捷键说明

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