OSDN Git Service

This commit was manufactured by cvs2svn to create tag 'YASAGURE1-10'. YASAGURE1-10
authornaru <bottle@mikage.to>
Fri, 26 Mar 2004 12:26:12 +0000 (12:26 +0000)
committernaru <bottle@mikage.to>
Fri, 26 Mar 2004 12:26:12 +0000 (12:26 +0000)
39 files changed:
sakurasuite/DirectSstp.dcr [deleted file]
sakurasuite/DirectSstp.pas [deleted file]
sakurasuite/IdSLPP20.dcr [deleted file]
sakurasuite/IdSLPP20.pas [deleted file]
sakurasuite/Sakura.pas [deleted file]
sakurasuite/SakuraAPI.pas [deleted file]
sakurasuite/SakuraScriptFountain.dcr [deleted file]
sakurasuite/SakuraScriptFountain.pas [deleted file]
sakurasuite/SakuraSeeker.dcr [deleted file]
sakurasuite/SakuraSeeker.pas [deleted file]
sakurasuite/SakuraSuite.dpk [deleted file]
sakurasuite/SakuraSuite.res [deleted file]
sakurasuite/SsParser.pas [deleted file]
sakurasuite/SsPlayTime.dcr [deleted file]
sakurasuite/SsPlayTime.pas [deleted file]
sakurasuite/manual/directsstp.html [deleted file]
sakurasuite/manual/index.html [deleted file]
sakurasuite/manual/sakuraprocess.html [deleted file]
sakurasuite/manual/sakurascriptfountain.html [deleted file]
sakurasuite/manual/sakuraseeker.html [deleted file]
sakurasuite/manual/sakurasuite.css [deleted file]
sakurasuite/manual/slpp20.html [deleted file]
sakurasuite/manual/ssparser.html [deleted file]
sakurasuite/manual/ssplaytime.html [deleted file]
sakurasuite/sample_editor/Project1.dpr [deleted file]
sakurasuite/sample_editor/Project1.res [deleted file]
sakurasuite/sample_editor/Unit1.dfm [deleted file]
sakurasuite/sample_editor/Unit1.pas [deleted file]
sakurasuite/sample_parser/Project1.dpr [deleted file]
sakurasuite/sample_parser/Project1.res [deleted file]
sakurasuite/sample_parser/Unit1.dfm [deleted file]
sakurasuite/sample_parser/Unit1.pas [deleted file]
sakurasuite/sample_parser/pattern.txt [deleted file]
sakurasuite/sample_seeker/Project1.dpr [deleted file]
sakurasuite/sample_seeker/Project1.res [deleted file]
sakurasuite/sample_seeker/Unit1.dfm [deleted file]
sakurasuite/sample_seeker/Unit1.pas [deleted file]
sakurasuite/ssparser.dcr [deleted file]
sakurasuite/ssparser.html [deleted file]

diff --git a/sakurasuite/DirectSstp.dcr b/sakurasuite/DirectSstp.dcr
deleted file mode 100644 (file)
index a55c4b9..0000000
Binary files a/sakurasuite/DirectSstp.dcr and /dev/null differ
diff --git a/sakurasuite/DirectSstp.pas b/sakurasuite/DirectSstp.pas
deleted file mode 100644 (file)
index 59f0229..0000000
+++ /dev/null
@@ -1,626 +0,0 @@
-{********************************************************}
-{ DirectSstp - SSTP Client using DirectSSTP method       }
-{                                                        }
-{       Copyright (c) 2001-2003 naruto/CANO-Lab          }
-{********************************************************}
-
-
-unit DirectSstp;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Dialogs, ExtCtrls, Forms;
-
-type
-  //\83G\83\89\81[\83R\81[\83h
-  TSstpResult = (
-    srOk,
-    srNoContent,
-    srBreak,
-    srBadRequest,
-    srRequestTimeout,
-    srConflict,
-    srRefuse,
-    srNotImplemented,
-    srServiceUnavailable,
-    srNotLocalIP,
-    srInBlackList,
-    srUnknownError
-  );
-
-  TGiveType = (gtDocument, gtSongname);
-
-  TSstpSendOption = (soNoTranslate, soNoDescript);
-  TSstpSendOptions = set of TSstpSendOption;
-
-  //\8dÄ\91\97\83L\83\85\81[\97p
-  TSendScript = class(TObject)
-  private
-    FScript: String;
-    FOption: TSstpSendOptions;
-    FID: integer;
-    FGhost: String;
-    procedure SetOption(const Value: TSstpSendOptions);
-    procedure SetScript(const Value: String);
-    procedure SetGhost(const Value: String);
-  public
-    constructor Create(const AScript: String; const AOption: TSstpSendOptions;
-      const AGhost: String; const ID: integer);
-    property Script: String read FScript write SetScript;
-    property Option: TSstpSendOptions read FOption write SetOption;
-    property Ghost: String read FGhost write SetGhost;
-    property ID: integer read FID;
-  end;
-
-  TSstpResendEvent = procedure (Sender: TObject; ID: integer;
-    const Script: String) of Object;
-
-  TDirectSstp = class(TComponent)
-  private
-    FStatusCode: Integer;
-    FSstpSender: String;
-    FSentLog: TStringList;
-    FRecvLog: TStringList;
-    FRecvLogString: String;
-    FNextCueID: integer;
-    FSendCue: TList;
-    FTimer: TTimer;
-    FInterval: integer;
-    FOnResendResend: TSstpResendEvent;
-    FOnResendTrying: TSstpResendEvent;
-    FOnResendEnd: TSstpResendEvent;
-    FOnResendCountChange: TNotifyEvent;
-    FSleep: boolean;
-    FOnAfterConnection: TNotifyEvent;
-    FWindowHandle: THandle;
-    FDirectSstpResult: String;
-    FTargetHWnd: THandle;//DirectSSTP
-    FBusy: boolean;
-    FTimeOut: integer; //\90Ú\91±\92\86\82Í\95Ê\82Ì\90Ú\91±\97v\8b\81\82ð\8eó\82¯\95t\82¯\82È\82¢
-    procedure SetSStpSender(const Value: String);
-    function GetRecvLog: String;
-    function GetSentLog: String;
-    procedure SetInterval(const Value: integer);
-    procedure SetOnResendResend(const Value: TSstpResendEvent);
-    procedure SetOnResendEnd(const Value: TSstpResendEvent);
-    procedure SetOnResendTrying(const Value: TSstpResendEvent);
-    function GetCueCount: integer;
-    procedure SetOnResendCountChange(const Value: TNotifyEvent);
-    procedure SetSleep(const Value: boolean);
-    procedure SetOnAfterConnection(const Value: TNotifyEvent);
-    procedure WndProc(var Msg: TMessage);
-    procedure SetTargetHWnd(const Value: THandle);
-    procedure SetTimeOut(const Value: integer); //DirectSSTP\97p
-  protected
-    function ExtractCode(const CodeStr: String): integer;
-    function CodeToStatus(const Code: integer): TSstpResult;
-    function GetLastStatus: TSstpResult;
-    procedure FlushLog;
-    procedure ResendTimerEvent(Sender: TObject);
-    procedure Loaded; override;
-  public
-    function ConnectSstp(Source: TStrings): TSstpResult;
-    property StatusCode: Integer read FStatusCode;
-    property LastStatus: TSstpResult read GetLastStatus;
-    property SentLog: String read GetSentLog;
-    property RecvLog: String read GetRecvLog;
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    function SstpGIVE(const Document: String): TSstpResult;
-    function SstpGIVE1_1(const Data: String;
-      const DataType: TGiveType = gtDocument): TSstpResult;
-    function SstpCOMMUNICATE(const Sentence: String;
-      const Port: integer = 0): TSstpResult;
-    function SstpSEND(const Script: String;
-                      const Option: TSstpSendOptions = [];
-                      const Ghost: String = ''): TSstpResult; overload;
-    function SstpSEND(const Script: TStrings;
-                      const Option: TSstpSendOptions = [];
-                      const Handle: HWND = 0;
-                      const Ghost: String = ''): TSstpResult; overload;
-    function SstpEXECUTE(const Command: String): String;
-    function SstpExGetName: String;
-    function SstpExSetCookie(const Key, Value: String): TSstpResult;
-    function SstpExGetCookie(const Key: String): String;
-    function SstpExGetVersion: String;
-    function SstpExQuiet(const Quiet: boolean): TSstpResult;
-    function SstpSENDCue(const Script: String;
-                         const HighPriority: boolean = false;
-                         const Option: TSstpSendOptions = [];
-                         const Ghost: String = ''): integer;
-    property CueCount: integer read GetCueCount;
-    property Handle: THandle read FWindowHandle;
-    procedure ClearCue;
-  published
-    property TimeOut: integer read FTimeOut write SetTimeOut default 2000; 
-    property SstpSender: String read FSStpSender write SetSStpSender;
-    property Interval: integer read FInterval write SetInterval default 5000;
-    property Sleep: boolean read FSleep write SetSleep;
-    property TargetHWnd: THandle read FTargetHWnd write SetTargetHWnd;
-    property OnResendTrying: TSstpResendEvent read FOnResendTrying write SetOnResendTrying;
-    property OnResendEnd: TSstpResendEvent read FOnResendEnd write SetOnResendEnd;
-    property OnResendResend: TSstpResendEvent read FOnResendResend write SetOnResendResend;
-    property OnResendCountChange: TNotifyEvent read FOnResendCountChange write SetOnResendCountChange;
-    property OnAfterConnection: TNotifyEvent read FOnAfterConnection write SetOnAfterConnection;
-  end;
-
-const
-  //\82±\82Ì\83G\83\89\81[\82Í\81ASSTP\83T\81[\83o\82ª\83X\83e\81[\83^\83X\82ð\95Ô\82³\82¸\82É\90Ø\92f\82µ\82½\82Æ\82«\82È\82Ç\82É\95Ô\82é
-  UnknownError = -1000;
-
-  //\83\8a\83g\83\89\83C\82ð\8ds\82í\82È\82¢\83X\83e\81[\83^\83X\83R\81[\83h
-  NotResendList: set of TSstpResult = [
-    srOk,
-    srNoContent,
-    srBreak,
-    srBadRequest,
-    srRequestTimeout,
-    srRefuse,
-    srNotImplemented,
-    srServiceUnavailable,
-    srNotLocalIP,
-    srInBlackList
-  ];
-
-procedure Register;
-
-implementation
-
-{ TDirectSstp }
-
-function TDirectSstp.CodeToStatus(const Code: integer): TSstpResult;
-begin
-  case Code of
-    200: Result := srOk;
-    204: Result := srNoContent;
-    210: Result := srBreak;
-    400: Result := srBadRequest;
-    408: Result := srRequestTimeout;
-    409: Result := srConflict;
-    420: Result := srRefuse;
-    501: Result := srNotImplemented;
-    503: Result := srServiceUnavailable;
-    504: Result := srNotLocalIP;
-    541: Result := srInBlackList;
-  else
-    Result := srUnknownError;
-  end;
-end;
-
-function TDirectSstp.ConnectSstp(Source: TStrings): TSstpResult;
-var Mes: TCopyDataStruct;
-    MesStr: String;
-    Dummy: DWORD; //SendMessageTimeout\97p
-begin
-  FlushLog;
-  Result := srUnknownError;
-  if FBusy then Exit;
-  FBusy := true;
-  FTimer.Enabled := false;
-
-  if TargetHWnd <> 0 then begin
-    MesStr := Source.Text;
-    Mes.dwData := 9801;
-    Mes.cbData := Length(MesStr);
-    Mes.lpData := PChar(MesStr);
-    FDirectSstpResult := '';
-    FSentLog.Text := MesStr;
-    //SendMessage(TargetHWnd, WM_COPYDATA, FWindowHandle, LPARAM(@Mes));
-    SendMessageTimeout(TargetHWnd, WM_COPYDATA, FWindowHandle, LPARAM(@Mes),
-                       SMTO_ABORTIFHUNG or SMTO_NORMAL, TimeOut, Dummy);
-    FRecvLog.Text := FDirectSstpResult;
-    if FRecvLog.Count > 0 then
-      FStatusCode := ExtractCode(FRecvLog[0])
-    else
-      FStatusCode := UnknownError;
-    Result := CodeToStatus(FStatusCode);
-  end;
-
-  FTimer.Enabled := not FSleep;
-  if Assigned(FOnAfterConnection) then FOnAfterConnection(Self);
-  FBusy := false;
-end;
-
-constructor TDirectSstp.Create;
-begin
-  inherited;
-  TimeOut := 2000;
-  FInterval := 5000;
-  SstpSender := 'My Program';
-  FSentLog := TStringList.Create;
-  FRecvLog := TStringList.Create;
-  FSendCue := TList.Create;
-  FTimer := TTimer.Create(Self);
-  FTimer.OnTimer := ResendTimerEvent;
-  FWindowHandle := AllocateHWnd(WndProc);
-end;
-
-destructor TDirectSstp.Destroy;
-var i: integer;
-begin
-  inherited;
-  FSentLog.Free;
-  FRecvLog.Free;
-  for i := FSendCue.Count-1 downto 0 do
-    TSendScript(FSendCue[i]).Free;
-  FSendCue.Free;
-  DeallocateHWnd(FWindowHandle);
-end;
-
-function TDirectSstp.ExtractCode(const CodeStr: String): integer;
-var i, l: integer;
-    s, p: String;
-begin
-  if CodeStr = '' then begin
-    Result := UnknownError;
-    Exit;
-  end;
-  i := 1;
-  l := length(CodeStr);
-  while (CodeStr[i] <> ' ') and (i<=l) do begin
-    p := p + CodeStr[i];
-    Inc(i);
-  end;
-  Inc(i);
-  while (CodeStr[i] in ['0'..'9']) and (i<=l) do begin
-    s := s + CodeStr[i];
-    Inc(i);
-  end;
-  try
-    Result := StrToInt(s);
-  except
-    on EConvertError do Result := UnknownError;
-  end;
-end;
-
-procedure TDirectSstp.FlushLog;
-begin
-  if FSentLog <> nil then FSentLog.Clear;
-  if FRecvLog <> nil then FRecvLog.Clear;
-  FRecvLogString := '';
-end;
-
-function TDirectSstp.GetLastStatus: TSstpResult;
-begin
-  Result := CodeToStatus(FStatusCode);
-end;
-
-
-function TDirectSstp.GetRecvLog: String;
-begin
-  Result := FRecvLog.Text;
-end;
-
-function TDirectSstp.GetSentLog: String;
-begin
-  Result := FSentLog.Text;
-end;
-
-procedure TDirectSstp.Loaded;
-begin
-  inherited;
-  FTimer.Interval := FInterval;
-  FTimer.Enabled := not FSleep;
-  if Assigned(FOnResendCountChange) then FOnResendCountChange(Self);
-end;
-
-procedure TDirectSstp.ResendTimerEvent(Sender: TObject);
-var Scr: TSendScript;
-    Res: TSstpResult;
-begin
-  if FSendCue.Count = 0 then Exit;
-  Scr := TSendScript(FSendCue[0]);
-  if Assigned(FOnResendTrying) then FOnResendTrying(Self, Scr.ID, Scr.Script);
-  Res := SstpSEND(Scr.Script, Scr.Option, Scr.Ghost);
-  if Res in NotResendList then begin
-    if Assigned(FOnResendEnd) then FOnResendEnd(Self, Scr.ID, Scr.Script);
-    FSendCue.Delete(0);
-    if Assigned(FOnResendCountChange) then FOnResendCountChange(Self);
-    Scr.Free;
-  end else begin
-    if Assigned(FOnResendResend) then FOnResendResend(Self, Scr.ID, Scr.Script);
-  end;
-end;
-
-procedure TDirectSstp.SetInterval(const Value: integer);
-begin
-  FInterval := Value;
-  FTimer.Interval := Value;
-end;
-
-procedure TDirectSstp.SetOnResendResend(const Value: TSstpResendEvent);
-begin
-  FOnResendResend := Value;
-end;
-
-procedure TDirectSstp.SetOnResendEnd(const Value: TSstpResendEvent);
-begin
-  FOnResendEnd := Value;
-end;
-
-procedure TDirectSstp.SetOnResendTrying(const Value: TSstpResendEvent);
-begin
-  FOnResendTrying := Value;
-end;
-
-procedure TDirectSstp.SetSstpSender(const Value: String);
-begin
-  FSStpSender := Value;
-end;
-
-function TDirectSstp.SstpCOMMUNICATE(const Sentence: String;
-  const Port: integer): TSstpResult;
-var Source: TStringList;
-begin
-  Source := nil;
-  try
-    Source := TStringList.Create;
-    Source.Add('COMMUNICATE SSTP/1.2');
-    Source.Add('Sender: ' + FSstpSender);
-    if Port <> 0 then Source.Add('Port: ' + IntToStr(Port));
-    Source.Add('Sentence: ' + Sentence);
-    Source.Add('CharSet: Shift_JIS');
-    Source.Add('HWnd: ' + IntToStr(FWindowHandle));
-    ConnectSstp(Source);
-  finally
-    Source.Free;
-  end;
-  Result := LastStatus;
-end;
-
-function TDirectSstp.SstpEXECUTE(const Command: String): String;
-var S: String;
-    Source: TStringList;
-begin
-  Source := nil;
-  try
-    Source := TStringList.Create;
-    Source.Add('EXECUTE SSTP/1.1');
-    Source.Add('Sender: ' + FSstpSender);
-    Source.Add('Command: ' + Command);
-    Source.Add('CharSet: Shift_JIS');
-    Source.Add('HWnd: ' + IntToStr(FWindowHandle));
-    ConnectSstp(Source);
-  finally
-    Source.Free;
-  end;
-  if FRecvLog.Count > 1 then begin
-    s := FRecvLog[0];
-    FRecvLog.Delete(0);
-    Result := FRecvLog.Text;
-    FRecvLog.Insert(0, s);
-  end else Result := '';
-end;
-
-function TDirectSstp.SstpExGetName: String;
-begin
-  Result := SstpEXECUTE('getname');
-  Result := StringReplace(Result, #13#10, '', [rfReplaceAll]);
-end;
-
-function TDirectSstp.SstpGIVE(const Document: String): TSstpResult;
-begin
-  Result := SstpGIVE1_1(Document, gtDocument);
-end;
-
-function TDirectSstp.SstpGIVE1_1(const Data: String;
-  const DataType: TGiveType): TSstpResult;
-var Source: TStringList;
-begin
-  Source := nil;
-  try
-    Source := TStringList.Create;
-    Source.Add('GIVE SSTP/1.1');
-    Source.Add('Sender: ' + FSstpSender);
-    Source.Add('CharSet: Shift_JIS');
-    case DataType of
-      gtSongname:
-        Source.Add('Songname: ' + Data);
-      else
-        Source.Add('Document: ' + Data);
-    end;
-    Source.Add('HWnd: ' + IntToStr(FWindowHandle));
-    ConnectSstp(Source);
-  finally
-    Source.Free;
-  end;
-  Result := LastStatus;
-end;
-
-function TDirectSstp.SstpSEND(const Script: String;
-                            const Option: TSstpSendOptions = [];
-                            const Ghost: String = ''): TSstpResult;
-var Source: TStringList;
-begin
-  Source := nil;
-  try
-    Source := TStringList.Create;
-    Source.Text := Script;
-    Result := SstpSEND(Source, Option, 0, Ghost);
-  finally
-    Source.Free;
-  end;
-end;
-
-function TDirectSstp.SstpSEND(const Script: TStrings;
-  const Option: TSstpSendOptions;
-  const Handle: HWND;
-  const Ghost: String): TSstpResult;
-var Opt: String;
-    i: integer;
-    Source: TStringList;
-begin
-  if soNoTranslate in Option then begin
-    Opt := 'notranslate';
-  end;
-  if soNoDescript in Option then begin
-    if Opt <> '' then Opt := Opt + ',';
-    Opt := Opt + 'nodescript';
-  end;
-  Source := nil;
-  try
-    Source := TStringList.Create;
-    Source.Add('SEND SSTP/1.4');
-    Source.Add('Sender: ' + FSstpSender);
-    Source.Add('Charset: Shift_JIS');
-    if Ghost <> '' then Source.Add('IfGhost: '+Ghost);
-    for i := 0 to Script.Count -1 do begin
-      if i = 0 then begin
-        Source.Add('Script: ' + Script[i]);
-      end else begin
-        Source.Add('Entry: ' + Script[i]);
-      end;
-    end;
-    Source.Add('Option: ' + Opt);
-    if Handle <> 0 then
-      Source.Add('HWnd: ' + IntToStr(Handle))
-    else
-      Source.Add('HWnd: ' + IntToStr(FWindowHandle));
-    Source.Add(''); //\8bó\8ds\82ª\8fI\97¹\82ð\8e¦\82·
-    ConnectSstp(Source);
-  finally
-    Source.Free;
-  end;
-  Result := LastStatus;
-end;
-
-function TDirectSstp.SstpSENDCue(const Script: String;
-  const HighPriority: boolean; const Option: TSstpSendOptions;
-  const Ghost: String): integer;
-var NewScript: TSendScript;
-begin
-  Inc(FNextCueID);
-  NewScript := TSendScript.Create(Script, Option, Ghost, FNextCueID);
-  if HighPriority then begin
-    FSendCue.Insert(0, NewScript);
-    ResendTimerEvent(Self);
-  end else FSendCue.Add(NewScript);
-  if Assigned(FOnResendCountChange) then FOnResendCountChange(Self);
-  Result := FNextCueID;
-end;
-
-function TDirectSstp.GetCueCount: integer;
-begin
-  Result := FSendCue.Count;
-end;
-
-procedure TDirectSstp.SetOnResendCountChange(const Value: TNotifyEvent);
-begin
-  FOnResendCountChange := Value;
-end;
-
-procedure TDirectSstp.SetSleep(const Value: boolean);
-begin
-  FSleep := Value;
-  FTimer.Enabled := false; //\82¢\82Á\82½\82ñ\83^\83C\83}\81[\82ð\94j\8aü\82·\82é
-  FTimer.Enabled := not Value;
-end;
-
-procedure TDirectSstp.SetOnAfterConnection(const Value: TNotifyEvent);
-begin
-  FOnAfterConnection := Value;
-end;
-
-procedure TDirectSstp.ClearCue;
-var i: integer;
-begin
-  for i := FSendCue.Count-1 downto 0 do
-    TSendScript(FSendCue[i]).Free;
-  FSendCue.Clear;
-  if Assigned(FOnResendCountChange) then FOnResendCountChange(Self);
-end;
-
-function TDirectSstp.SstpExGetCookie(const Key: String): String;
-begin
-  Result := SstpEXECUTE('GetCookie[' + Key + ']');
-  Result := StringReplace(Result, #13#10, '', [rfReplaceAll]);
-end;
-
-function TDirectSstp.SstpExSetCookie(const Key, Value: String): TSstpResult;
-begin
-  SstpEXECUTE('SetCookie[' +
-              StringReplace(Key, #13#10, '', [rfReplaceAll]) +
-              ',' +
-              StringReplace(Value, #13#10, '', [rfReplaceAll])
-              + ']');
-  Result := GetLastStatus;
-end;
-
-function TDirectSstp.SstpExGetVersion: String;
-begin
-  Result := SstpEXECUTE('getversion');
-  Result := StringReplace(Result, #13#10, '', [rfReplaceAll]);
-end;
-
-function TDirectSstp.SstpExQuiet(const Quiet: boolean): TSstpResult;
-begin
-  if Quiet then
-    SstpEXECUTE('Quiet')
-  else
-    SstpEXECUTE('Restore');
-  Result := GetLastStatus;
-end;
-
-procedure TDirectSstp.WndProc(var Msg: TMessage);
-var Dat: TWMCopyData;
-begin
-  if Msg.Msg = WM_COPYDATA then begin
-    Dat := TWMCopyData(Msg);
-    FDirectSstpResult := PChar(Dat.CopyDataStruct^.lpData);
-  end else begin
-    Msg.Result := DefWindowProc(FWindowHandle, Msg.Msg, Msg.wParam, Msg.lParam);
-  end;
-end;
-
-procedure TDirectSstp.SetTargetHWnd(const Value: THandle);
-begin
-  FTargetHWnd := Value;
-end;
-
-procedure TDirectSstp.SetTimeOut(const Value: integer);
-begin
-  FTimeOut := Value;
-end;
-
-{ TSendScript }
-
-constructor TSendScript.Create(const AScript: String;
-  const AOption: TSstpSendOptions; const AGhost: String; const ID: integer);
-begin
-  FScript := AScript;
-  FOption := AOption;
-  FGhost  := AGhost;
-  FID := ID;
-end;
-
-procedure TSendScript.SetGhost(const Value: String);
-begin
-  FGhost := Value;
-end;
-
-procedure TSendScript.SetOption(const Value: TSstpSendOptions);
-begin
-  FOption := Value;
-end;
-
-procedure TSendScript.SetScript(const Value: String);
-begin
-  FScript := Value;
-end;
-
-//-------------------------------------
-
-procedure Register;
-begin
-  RegisterComponents('Miscellaneous', [TDirectSstp]);
-end;
-
-end.
-
-
-
-
-
-
-
diff --git a/sakurasuite/IdSLPP20.dcr b/sakurasuite/IdSLPP20.dcr
deleted file mode 100644 (file)
index 6d15d2a..0000000
Binary files a/sakurasuite/IdSLPP20.dcr and /dev/null differ
diff --git a/sakurasuite/IdSLPP20.pas b/sakurasuite/IdSLPP20.pas
deleted file mode 100644 (file)
index 869a0b6..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-{*******************************************************}
-{       IdSLPP20 - Indy Client for SLPP Connection      }
-{                                                       }
-{       Copyright (c) 2002-2003 naruto/CANO-Lab         }
-{*******************************************************}
-
-unit IdSLPP20;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  IdTCPClient, IdGlobal, IdException;
-
-const
-  SLPP_PORT = 9871;
-  SLPP_HOST = 'bottle.mikage.to';
-
-type
-  TIdSLPPEventType = (etConnectOk, etScript, etMemberCount, etChannelCount,
-                    etChannelList, etUnicast, etForceBroadcast, etCloseChannel,
-                    etForceBroadcastInformation, etBroadcastInformation);
-  TIdSLPPEvent = procedure (Sender: TObject;
-    EventType: TIdSlppEventType; const Param: String) of Object;
-
-  TIdSLPP20 = class;
-
-  TIdSLPP20ReadThread = class(TThread)
-  private
-  protected
-    FClient: TIdSLPP20;
-    FRecvData: TStringList;
-    FEvent: TIdSLPPEventType; // SLPP Command
-    FParam: String;           // SLPP Command Parameter
-    FReceivedLog: TStringList;
-    function Parse: boolean;
-    procedure Execute; override;
-  public
-    constructor Create(AClient: TIdSLPP20); reintroduce;
-    property  Client: TIdSLPP20 read FClient;
-  end;
-
-  TIdSLPP20 = class(TIdTCPClient)
-  private
-    FSLPPThread: TIdSLPP20ReadThread;
-    FDebugMode: boolean;
-    FProxyMode: boolean;
-    FLUID: String;
-    FOnSlppEvent: TIdSlppEvent;
-    FOnConnect: TNotifyEvent;
-    FOnDisconnect: TNotifyEvent;
-    FLastReadTime: Int64;
-    FTimeout: Integer;
-    FOnConnectFailed: TNotifyEvent;
-    procedure SetDebugMode(const Value: boolean);
-    procedure SetLUID(const Value: String);
-    procedure SetOnSlppEvent(const Value: TIdSlppEvent);
-    procedure SetProxyMode(const Value: boolean);
-    procedure SetOnConnect(const Value: TNotifyEvent);
-    procedure SetOnDisconnect(const Value: TNotifyEvent);
-    function GetLastReadTimeInterval: integer;
-    procedure SetLastReadTime(const Value: Int64);
-    procedure SetOnConnectFailed(const Value: TNotifyEvent);
-  public
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    procedure Connect(const ATimeout: Integer = IdTimeoutDefault); override;
-    procedure ConnectServer(const ATimeout: Integer = IdTimeoutDefault);
-    procedure Disconnect; override;
-    procedure DoOnSlppEvent;
-    procedure DoOnConnect;
-    procedure DoOnConnectFailed;
-    property SLPP20ReadThread: TIdSLPP20ReadThread read FSLPPThread;
-    property LastReadTime: Int64 read FLastReadTime write SetLastReadTime;
-    property LastReadTimeInterval: integer read GetLastReadTimeInterval;
-  published
-    property LUID: String read FLUID write SetLUID;
-    property Port default SLPP_PORT;
-    property DebugMode: boolean read FDebugMode write SetDebugMode;
-    property ProxyMode: boolean read FProxyMode write SetProxyMode;
-    property OnConnect: TNotifyEvent read FOnConnect write SetOnConnect;
-    property OnConnectFailed: TNotifyEvent read FOnConnectFailed write SetOnConnectFailed;
-    property OnDisconnect: TNotifyEvent read FOnDisconnect write SetOnDisconnect;
-    property OnSLPPEvent: TIdSlppEvent read FOnSlppEvent write SetOnSlppEvent;
-    {ProxyMode = true\82Ì\82Æ\82«\82Í\81AHost, Port\82É\83v\83\8d\83L\83V\96¼\82ð}
-  end;
-
-  EIdSlppError = class(EIdException);
-  EIdSlppClientConnectError = class(EIdSlppError);
-
-procedure Register;
-
-implementation
-
-procedure Register;
-begin
-  RegisterComponents('Indy Clients', [TIdSLPP20]);
-end;
-
-{ TIdSLPP20 }
-
-procedure TIdSLPP20.Connect(const ATimeout: Integer);
-begin
-  inherited Connect(ATimeout);
-end;
-
-procedure TIdSLPP20.ConnectServer;
-begin
-  try
-    FTimeout := ATimeout;
-    FSLPPThread := TIdSLPP20ReadThread.Create(self);
-  except on E: EIdSocketError do
-    raise EIdSlppClientConnectError.Create('Connection Failed');
-  end;
-end;
-
-constructor TIdSLPP20.Create(AOwner: TComponent);
-begin
-  inherited Create(AOwner);
-  Port := SLPP_PORT;
-  Host := SLPP_HOST;
-end;
-
-destructor TIdSLPP20.Destroy;
-begin
-  inherited;
-end;
-
-procedure TIdSLPP20.Disconnect;
-begin
-  inherited Disconnect;
-  if Assigned(FSLPPThread) then begin
-    FSLPPThread.Terminate;
-    // FSLPPThread.WaitFor;
-    FSLPPThread := nil;
-  end;
-  if Assigned(FOnDisconnect) then begin
-    OnDisconnect(self);
-  end;
-end;
-
-procedure TIdSLPP20.DoOnConnect;
-begin
-  if Assigned(FOnConnect) then
-    FOnConnect(self);
-end;
-
-procedure TIdSLPP20.DoOnConnectFailed;
-begin
-  if Assigned(FOnConnectFailed) then
-    FOnConnectFailed(self);
-end;
-
-procedure TIdSLPP20.DoOnSlppEvent;
-begin
-  try
-    FOnSlppEvent(self, FSLPPThread.FEvent, FSLPPThread.FParam);
-  except
-    on E: Exception do
-      ShowMessage('Exception occured in OnSlppEvent: '#13#10 + E.Message);
-  end;
-end;
-
-function TIdSLPP20.GetLastReadTimeInterval: integer;
-begin
-  Result := 0;
-  if Connected then Result := GetTickCount - FLastReadTime;
-end;
-
-procedure TIdSLPP20.SetDebugMode(const Value: boolean);
-begin
-  FDebugMode := Value;
-end;
-
-procedure TIdSLPP20.SetLastReadTime(const Value: Int64);
-begin
-  FLastReadTime := Value;
-end;
-
-procedure TIdSLPP20.SetLUID(const Value: String);
-begin
-  FLUID := Value;
-end;
-
-procedure TIdSLPP20.SetOnConnect(const Value: TNotifyEvent);
-begin
-  FOnConnect := Value;
-end;
-
-procedure TIdSLPP20.SetOnConnectFailed(const Value: TNotifyEvent);
-begin
-  FOnConnectFailed := Value;
-end;
-
-procedure TIdSLPP20.SetOnDisconnect(const Value: TNotifyEvent);
-begin
-  FOnDisconnect := Value;
-end;
-
-procedure TIdSLPP20.SetOnSlppEvent(const Value: TIdSlppEvent);
-begin
-  FOnSlppEvent := Value;
-end;
-
-procedure TIdSLPP20.SetProxyMode(const Value: boolean);
-begin
-  FProxyMode := Value;
-end;
-
-{ TIdSLPP20ReadThread }
-
-constructor TIdSLPP20ReadThread.Create(AClient: TIdSLPP20);
-begin
-  inherited Create(true);
-  FClient := AClient;
-  FreeOnTerminate := true;
-  Resume;
-end;
-
-procedure TIdSLPP20ReadThread.Execute;
-var Line: String;
-begin
-  try
-    FClient.Connect(FClient.FTimeout);
-    if Assigned(FClient.OnConnect) then begin
-      Synchronize(FClient.DoOnConnect);
-    end;
-  except
-    Synchronize(FClient.DoOnConnectFailed);
-    Exit;
-  end;
-
-  FRecvData := TStringList.Create;
-  FReceivedLog := TStringList.Create;
-  if FClient.ProxyMode then begin
-    FClient.Writeln('POST http://bottle.mikage.to:9871/ HTTP/1.0');
-    FClient.Writeln('Content-Length: ' + IntToStr(Length(FClient.LUID)));
-    FClient.Writeln('Connection: close');
-    FClient.Writeln;
-    FClient.Writeln(FClient.LUID);
-  end else begin
-    FClient.WriteLn('POST / HTTP/1.0');
-    FClient.WriteLn;
-    FClient.WriteLn(FClient.LUID);
-  end;
-  while not Terminated do begin
-    try
-      FClient.CheckForDisconnect;
-      Line := FClient.ReadLn(EOL);
-      if FClient.DebugMode then begin
-        FReceivedLog.Add(Line);
-        FReceivedLog.SaveToFile(ExtractFilePath(Application.ExeName)+'slpp20_debug.log');
-      end;
-      if not FClient.ReadLnTimedOut then FClient.LastReadTime := getTickCount; 
-      if Length(Line) = 0 then begin
-        if FRecvData.Count > 0 then begin
-          while Parse do begin
-            Synchronize(FClient.DoOnSlppEvent);
-          end;
-          FRecvData.Clear;
-        end;
-      end else begin
-        FRecvData.Add(Line);
-      end;
-    except
-      on EIdException do begin
-        Synchronize(self.Terminate);
-      end;
-    end;
-  end;
-  FreeAndNil(FReceivedLog);
-  FreeAndNil(FRecvData);
-end;
-
-function TIdSLPP20ReadThread.Parse: boolean;
-var
-  command: String;
-begin
-  command := FRecvData[0];
-  FRecvData.Delete(0);
-  FParam := FRecvData.Text;
-
-  Result := true;
-  if command = 'broadcastMessage' then begin
-    FEvent := etScript;
-  end else if command = 'allUsers' then begin
-    FEvent := etMemberCount;
-  end else if command = 'channelUsers' then begin
-    FEvent := etChannelCount;
-  end else if command = 'channelList' then begin
-    FEvent := etChannelList;
-  end else if (command = 'HTTP/1.0 200 OK') or (command = 'HTTP/1.1 200 OK') then begin
-    FEvent := etConnectOk;
-  end else if command = 'forceBroadcastMessage' then begin
-    FEvent := etForceBroadcast;
-  end else if command = 'forceBroadcastInformation' then begin
-    FEvent := etForceBroadcastInformation;
-  end else if command = 'BroadcastInformation' then begin
-    FEvent := etBroadcastInformation;
-  end else if command = 'closeChannel' then begin
-    FEvent := etCloseChannel;
-  end else if command = 'unicastMessage' then begin
-    FEvent := etUnicast;
-  end else Result := false;
-end;
-
-end.
diff --git a/sakurasuite/Sakura.pas b/sakurasuite/Sakura.pas
deleted file mode 100644 (file)
index f3ae3b0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-(********************************
-
-Sakura API Const Unit
-implemented by naruto/CANO-Lab
-
-********************************)
-
-unit Sakura;
-
-interface
-
-const
-
-(*
-  \88È\89º\82Ì\83f\81[\83^\82Í
-  phase "inverse" 46.60
-  \83h\83L\83\85\83\81\83\93\83g\83f\81[\83^\82ð\8c³\82É\8dì\90¬\82µ\82Ä\82¢\82Ü\82·\81B
-*)
-
-{EXECUTE}
-SA_EXECUTEREMAKEMENU = 0;
-SA_EXECUTEREWRITEFMO = 1;
-
-{GET}
-SA_GETHEADCOLLISIONRECTSAKURA = 128;
-SA_GETFACECOLLISIONRECTSAKURA = 129;
-SA_GETBUSTCOLLISIONRECTSAKURA = 130;
-SA_GETCENTERPOINTSAKURA       = 131;
-SA_GETABSOLUTEKINOKOFIELDCENTERPOINTSAKURA = 132;
-SA_GETHEADCOLLISIONRECTKERO = 133;
-SA_GETFACECOLLISIONRECTKERO = 134;
-SA_GETBUSTCOLLISIONRECTKERO = 135;
-SA_GETCENTERPOINTKERO       = 136;
-SA_GETABSOLUTEKINOKOFIELDCENTERPOINTKERO = 137;
-SA_GETPROCESSID = 138;
-SA_GETSHAREDMEMORY = 139;
-SA_GETGHOSTSTATE = 140;
-
-{NOTIFY}
-SA_NOTIFYEVENT = 256;
-
-{Talking State}
-GS_NONE    = 0; //\91Ò\8b@\92\86
-GS_TALKING = 1; //\89½\82©\92\9d\82Á\82Ä\82¢\82é
-GS_TIMECRITICALSESSION = 2; //\83^\83C\83\80\83N\83\8a\83e\83B\83J\83\8b\83Z\83b\83V\83\87\83\93
-
-
-implementation
-
-end.
\ No newline at end of file
diff --git a/sakurasuite/SakuraAPI.pas b/sakurasuite/SakuraAPI.pas
deleted file mode 100644 (file)
index 5eb8d33..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-unit SakuraAPI;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  Sakura;
-
-type
-  TSakuraAPI = class(TComponent)
-  private
-    { Private \90é\8c¾ }
-    FMes: integer;
-    FTargetHWnd: THandle;
-    FOnRegisterAPI: TNotifyEvent;
-    procedure SetTargetHWnd(const Value: THandle);
-    procedure SetOnRegisterAPI(const Value: TNotifyEvent);
-  protected
-    { Protected \90é\8c¾ }
-  public
-    { Public \90é\8c¾ }
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    procedure Loaded; override;
-    //
-    function SendAPI(Mes: cardinal; wParam: integer; lParam: integer): integer;
-    function ExecuteRemakeMenu: integer;
-    function ExecuteRewriteFMO: integer;
-    function GetHeadCollisionRectSakura: TRect;
-    function GetFaceCollisionRectSakura: TRect;
-    function GetBustCollisionRectSakura: TRect;
-    function GetCenterPointSakura: TPoint;
-    function GetHeadCollisionRectKero: TRect;
-    function GetFaceCollisionRectKero: TRect;
-    function GetBustCollisionRectKero: TRect;
-    function GetCenterPointKero: TPoint;
-    function GetGhostState: integer;
-    function GetAbsoluteKinokoFieldCenterPointSakura: TPoint;
-    function GetAbsoluteKinokoFieldCenterPointKero: TPoint;
-    function GetProcessID: Cardinal;
-    function GetSharedMemory(const Slot: integer = -1): pointer;
-    function NotifyEvent: integer;
-  published
-    { Published \90é\8c¾ }
-    property WM_SAKURAAPI: integer read FMes;
-    property TargetHWnd: THandle read FTargetHWnd write SetTargetHWnd;
-    property OnRegisterAPI: TNotifyEvent read FOnRegisterAPI write SetOnRegisterAPI;
-  end;
-
-procedure Register;
-
-implementation
-
-procedure Register;
-begin
-  RegisterComponents('Samples', [TSakuraAPI]);
-end;
-
-{ TSakuraAPI }
-
-constructor TSakuraAPI.Create;
-begin
-  inherited;
-end;
-
-destructor TSakuraAPI.Destroy;
-begin
-  inherited;
-  //
-end;
-
-function TSakuraAPI.ExecuteRemakeMenu: integer;
-begin
-  Result := SendAPI(SA_EXECUTEREMAKEMENU, 0, 0);
-end;
-
-function TSakuraAPI.ExecuteRewriteFMO: integer;
-begin
-  Result := SendAPI(SA_EXECUTEREWRITEFMO, 1, 0);
-end;
-
-function TSakuraAPI.GetAbsoluteKinokoFieldCenterPointKero: TPoint;
-begin
-  Result.X := SendAPI(SA_GETABSOLUTEKINOKOFIELDCENTERPOINTKERO, 137, 0);
-  Result.Y := SendAPI(SA_GETABSOLUTEKINOKOFIELDCENTERPOINTKERO, 137, 1);
-end;
-
-function TSakuraAPI.GetAbsoluteKinokoFieldCenterPointSakura: TPoint;
-begin
-  Result.X := SendAPI(SA_GETABSOLUTEKINOKOFIELDCENTERPOINTSAKURA, 132, 0);
-  Result.Y := SendAPI(SA_GETABSOLUTEKINOKOFIELDCENTERPOINTSAKURA, 132, 1);
-end;
-
-function TSakuraAPI.GetBustCollisionRectKero: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETBUSTCOLLISIONRECTKERO, 135, 0);
-  Result.Top    := SendAPI(SA_GETBUSTCOLLISIONRECTKERO, 135, 1);
-  Result.Right  := SendAPI(SA_GETBUSTCOLLISIONRECTKERO, 135, 2);
-  Result.Bottom := SendAPI(SA_GETBUSTCOLLISIONRECTKERO, 135, 3);
-end;
-
-function TSakuraAPI.GetBustCollisionRectSakura: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETBUSTCOLLISIONRECTSAKURA, 130, 0);
-  Result.Top    := SendAPI(SA_GETBUSTCOLLISIONRECTSAKURA, 130, 1);
-  Result.Right  := SendAPI(SA_GETBUSTCOLLISIONRECTSAKURA, 130, 2);
-  Result.Bottom := SendAPI(SA_GETBUSTCOLLISIONRECTSAKURA, 130, 3);
-end;
-
-function TSakuraAPI.GetCenterPointKero: TPoint;
-begin
-  Result.X := SendAPI(SA_GETCENTERPOINTKERO, 136, 0);
-  Result.Y := SendAPI(SA_GETCENTERPOINTKERO, 136, 1);
-end;
-
-function TSakuraAPI.GetCenterPointSakura: TPoint;
-begin
-  Result.X := SendAPI(SA_GETCENTERPOINTSAKURA, 131, 0);
-  Result.Y := SendAPI(SA_GETCENTERPOINTSAKURA, 131, 1);
-end;
-
-function TSakuraAPI.GetFaceCollisionRectKero: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETFACECOLLISIONRECTKERO, 134, 0);
-  Result.Top    := SendAPI(SA_GETFACECOLLISIONRECTKERO, 134, 1);
-  Result.Right  := SendAPI(SA_GETFACECOLLISIONRECTKERO, 134, 2);
-  Result.Bottom := SendAPI(SA_GETFACECOLLISIONRECTKERO, 134, 3);
-end;
-
-function TSakuraAPI.GetFaceCollisionRectSakura: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETFACECOLLISIONRECTSAKURA, 129, 0);
-  Result.Top    := SendAPI(SA_GETFACECOLLISIONRECTSAKURA, 129, 1);
-  Result.Right  := SendAPI(SA_GETFACECOLLISIONRECTSAKURA, 129, 2);
-  Result.Bottom := SendAPI(SA_GETFACECOLLISIONRECTSAKURA, 129, 3);
-end;
-
-function TSakuraAPI.GetHeadCollisionRectKero: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETHEADCOLLISIONRECTKERO, 133, 0);
-  Result.Top    := SendAPI(SA_GETHEADCOLLISIONRECTKERO, 133, 1);
-  Result.Right  := SendAPI(SA_GETHEADCOLLISIONRECTKERO, 133, 2);
-  Result.Bottom := SendAPI(SA_GETHEADCOLLISIONRECTKERO, 133, 3);
-end;
-
-function TSakuraAPI.GetHeadCollisionRectSakura: TRect;
-begin
-  Result.Left   := SendAPI(SA_GETHEADCOLLISIONRECTSAKURA, 128, 0);
-  Result.Top    := SendAPI(SA_GETHEADCOLLISIONRECTSAKURA, 128, 1);
-  Result.Right  := SendAPI(SA_GETHEADCOLLISIONRECTSAKURA, 128, 2);
-  Result.Bottom := SendAPI(SA_GETHEADCOLLISIONRECTSAKURA, 128, 3);
-end;
-
-function TSakuraAPI.GetGhostState: integer;
-begin
-  Result := SendAPI(SA_GETGHOSTSTATE, 140, 0);
-end;
-
-function TSakuraAPI.GetProcessID: Cardinal;
-begin
-  Result := SendAPI(SA_GETPROCESSID, 138, 0);
-end;
-
-function TSakuraAPI.GetSharedMemory(const Slot: integer = -1): pointer;
-begin
-  Result := pointer(SendAPI(SA_GETSHAREDMEMORY, 139, Slot));
-end;
-
-function TSakuraAPI.SendAPI(Mes: cardinal; wParam: integer;
-  lParam: integer): integer;
-begin
-  Result := SendMessage(TargetHWnd, Mes, wParam, lParam);
-end;
-
-procedure TSakuraAPI.SetTargetHWnd(const Value: THandle);
-begin
-  FTargetHWnd := Value;
-end;
-
-function TSakuraAPI.NotifyEvent: integer;
-begin
-  Result := SendAPI(SA_NOTIFYEVENT, 256, 0);
-end;
-
-procedure TSakuraAPI.SetOnRegisterAPI(const Value: TNotifyEvent);
-begin
-  FOnRegisterAPI := Value;
-end;
-
-procedure TSakuraAPI.Loaded;
-begin
-  inherited;
-  if csDesigning in ComponentState then Exit;
-  FMes := RegisterWindowMessage('Sakura');
-  if FMes = 0 then
-    raise Exception.Create('RegisterWindowMessage\82É\8e¸\94s\82µ\82Ü\82µ\82½')
-  else
-    if Assigned(FOnRegisterAPI) then
-      FOnRegisterAPI(Self);
-end;
-
-end.
diff --git a/sakurasuite/SakuraScriptFountain.dcr b/sakurasuite/SakuraScriptFountain.dcr
deleted file mode 100644 (file)
index 1b4ae59..0000000
Binary files a/sakurasuite/SakuraScriptFountain.dcr and /dev/null differ
diff --git a/sakurasuite/SakuraScriptFountain.pas b/sakurasuite/SakuraScriptFountain.pas
deleted file mode 100644 (file)
index f83e16a..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-{*******************************************************}
-{       TSakuraScriptFountain - TEditor Fountain Parser }
-{                                                       }
-{       Copyright (c) 2003 naruto/CANO-Lab              }
-{*******************************************************}
-
-unit SakuraScriptFountain;
-
-interface
-
-uses
-  SysUtils, Classes, heClasses, heFountain, heRaStrings, SsParser;
-
-type
-  TSakuraScriptFountainParser = class(TFountainParser)
-  protected
-    function GetTalkToken: char;
-    procedure InitMethodTable; override;
-    procedure TagProc;
-    procedure MetaProc;
-    procedure SymbolProc; override;
-    function SsParser: TSsParser;
-    function IsScope0ChangeTag(const Tag: String): boolean; virtual;
-    function IsScope1ChangeTag(const Tag: String): boolean; virtual;
-  public
-    function NextToken: Char; override;
-    function TokenToFountainColor: TFountainColor; override;
-  end;
-
-  TSakuraScriptFountain = class(TFountain)
-  private
-    FScope0Color: TFountainColor;
-    FScope1Color: TFountainColor;
-    FTagColor: TFountainColor;
-    FMetaWordColor: TFountainColor;
-    FTagErrorColor: TFountainColor;
-    FSynchronizedColor: TFountainColor;
-    FSakuraScriptParser: TSsParser;
-    FProcessSync: boolean;
-    FChangeScopeByHU: boolean;
-    FChangeScopeBy01: boolean;
-    procedure SetMetaWordColor(const Value: TFountainColor);
-    procedure SetScope0Color(const Value: TFountainColor);
-    procedure SetScope1Color(const Value: TFountainColor);
-    procedure SetTagColor(const Value: TFountainColor);
-    procedure SetTagErrorColor(const Value: TFountainColor);
-    procedure SetSynchronizedColor(const Value: TFountainColor);
-    procedure SetSakuraScriptParser(const Value: TSsParser);
-    procedure SetChangeScopeBy01(const Value: boolean);
-    procedure SetChangeScopeByHU(const Value: boolean);
-    procedure SetProcessSync(const Value: boolean);
-    { Private \90é\8c¾ }
-  protected
-    { Protected \90é\8c¾ }
-    procedure CreateFountainColors; override;
-    function GetParserClass: TFountainParserClass; override;
-  public
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-  published
-    property Scope0Color: TFountainColor read FScope0Color write SetScope0Color;
-    property Scope1Color: TFountainColor read FScope1Color write SetScope1Color;
-    property TagColor: TFountainColor read FTagColor write SetTagColor;
-    property TagErrorColor: TFountainColor read FTagErrorColor write SetTagErrorColor;
-    property MetaWordColor: TFountainColor read FMetaWordColor write SetMetaWordColor;
-    property SynchronizedColor: TFountainColor read FSynchronizedColor write SetSynchronizedColor;
-    property SakuraScriptParser: TSsParser read FSakuraScriptParser write SetSakuraScriptParser;
-    property ChangeScopeBy01: boolean read FChangeScopeBy01 write SetChangeScopeBy01 default true;
-    property ChangeScopeByHU: boolean read FChangeScopeByHU write SetChangeScopeByHU default true;
-    property ProcessSync: boolean read FProcessSync write SetProcessSync default true;
-  published
-    { Published \90é\8c¾ }
-  end;
-
-procedure Register;
-
-implementation
-
-const
-  { \83g\81[\83N\83\93\82Ì\8eí\97Þ\82ð\95\\82·\92è\90\94(\97ñ\8b\93\8c^\82¾\82Æ\82±\82¤\82â\82Á\82Ä\91\9d\82â\82¹\82È\82¢\82©\82ç\82Ë) }
-  toScope0   = char(50); //\83X\83R\81[\83v0\95\8e\9a\97ñ
-  toScope1   = char(51); //\83X\83R\81[\83v1\95\8e\9a\97ñ
-  toTag      = char(52); //\83^\83O
-  toTagError = char(53); //\83^\83O\95\\8bL\83G\83\89\81[
-  toMetaWord = char(54); //\83\81\83^\95\8e\9a\97ñ
-  toSynchronized = char(55); //\83V\83\93\83N\83\8d\83i\83C\83Y\83h\83Z\83b\83V\83\87\83\93
-
-  InScope1 = $1;
-  InSynchronized = $2;
-
-{ TSakuraScriptFountain }
-
-constructor TSakuraScriptFountain.Create(AOwner: TComponent);
-begin
-  inherited;
-  FChangeScopeByHU := true;
-  FChangeScopeBy01 := true;
-  FProcessSync := true;
-end;
-
-procedure TSakuraScriptFountain.CreateFountainColors;
-begin
-  inherited;
-  FScope0Color       := CreateFountainColor;
-  FScope1Color       := CreateFountainColor;
-  FTagColor          := CreateFountainColor;
-  FTagErrorColor     := CreateFountainColor;
-  FMetaWordColor     := CreateFountainColor;
-  FSynchronizedColor := CreateFountainColor;
-end;
-
-destructor TSakuraScriptFountain.Destroy;
-begin
-  FScope0Color.Free;
-  FScope1Color.Free;
-  FTagColor.Free;
-  FTagErrorColor.Free;
-  FMetaWordColor.Free;
-  FSynchronizedColor.Free;
-  inherited;
-end;
-
-function TSakuraScriptFountain.GetParserClass: TFountainParserClass;
-begin
-  Result := TSakuraScriptFountainParser;
-end;
-
-procedure TSakuraScriptFountain.SetChangeScopeBy01(const Value: boolean);
-begin
-  FChangeScopeBy01 := Value;
-end;
-
-procedure TSakuraScriptFountain.SetChangeScopeByHU(const Value: boolean);
-begin
-  FChangeScopeByHU := Value;
-end;
-
-procedure TSakuraScriptFountain.SetMetaWordColor(
-  const Value: TFountainColor);
-begin
-  FMetaWordColor.Assign(Value);
-end;
-
-procedure TSakuraScriptFountain.SetProcessSync(const Value: boolean);
-begin
-  FProcessSync := Value;
-end;
-
-procedure TSakuraScriptFountain.SetSakuraScriptParser(
-  const Value: TSsParser);
-begin
-  FSakuraScriptParser := Value;
-end;
-
-procedure TSakuraScriptFountain.SetScope0Color(
-  const Value: TFountainColor);
-begin
-  FScope0Color.Assign(Value);
-end;
-
-procedure TSakuraScriptFountain.SetScope1Color(
-  const Value: TFountainColor);
-begin
-  FScope1Color.Assign(Value);
-end;
-
-procedure TSakuraScriptFountain.SetSynchronizedColor(
-  const Value: TFountainColor);
-begin
-  FSynchronizedColor.Assign(Value);
-end;
-
-procedure TSakuraScriptFountain.SetTagColor(const Value: TFountainColor);
-begin
-  FTagColor.Assign(Value);
-end;
-
-procedure TSakuraScriptFountain.SetTagErrorColor(
-  const Value: TFountainColor);
-begin
-  FTagErrorColor.Assign(Value);
-end;
-
-{ TSakuraScriptFountainParser }
-
-function TSakuraScriptFountainParser.GetTalkToken: char;
-begin
-  if (FElementIndex or InSynchronized) > 0 then
-    Result := toSynchronized
-  else if (FElementIndex or InScope1) > 0 then
-    Result := toScope1
-  else
-    Result := toScope0;
-end;
-
-procedure TSakuraScriptFountainParser.InitMethodTable;
-begin
-  inherited;
-  FMethodTable['\'] := TagProc;
-  FMethodTable['%'] := MetaProc;
-end;
-
-
-function TSakuraScriptFountainParser.IsScope0ChangeTag(
-  const Tag: String): boolean;
-begin
-  Result := false;
-  if (Self.FFountain as TSakuraScriptFountain).ChangeScopeBy01 then
-    if Tag = '\0' then
-      Result := true;
-  if (Self.FFountain as TSakuraScriptFountain).ChangeScopeByHU then
-    if Tag = '\h' then
-      Result := true;
-end;
-
-function TSakuraScriptFountainParser.IsScope1ChangeTag(
-  const Tag: String): boolean;
-begin
-  Result := false;
-  if (Self.FFountain as TSakuraScriptFountain).ChangeScopeBy01 then
-    if Tag = '\1' then
-      Result := true;
-  if (Self.FFountain as TSakuraScriptFountain).ChangeScopeByHU then
-    if Tag = '\u' then
-      Result := true;
-end;
-
-procedure TSakuraScriptFountainParser.MetaProc;
-var i, Le: integer;
-begin
-  Inc(FP);
-  for i := 0 to SsParser.MetaPattern.Count-1 do
-  begin
-    Le := SsParser.MatchP(FP, PChar(SsParser.MetaPattern[i]));
-    if Le > 0 then
-    begin
-      FToken := toMetaWord;
-      Inc(FP, Le);
-      Exit; // \82ß\82Å\82½\82­\83\81\83^\95\8e\9a\82Æ\82µ\82Ä\89ð\90Í\8a®\97¹
-    end else
-  end;
-  SymbolProc; // \92P\8f\83\82É\95\8e\9a\82Æ\82µ\82Ä\88µ\82¤
-end;
-
-function TSakuraScriptFountainParser.NextToken: Char;
-begin
-  // \82±\82Ì\83N\83\89\83X\82Ì\83L\83\82\81B
-  // toInteger\82â\82çtoDBSymbol\82â\82ç\82Ì\83g\81[\83N\83\93\82Í\95s\97v\82Å\81A
-  // \91ã\82í\82è\82É\82»\82Ì\83Z\83\8a\83t\82ª\82Ç\82¿\82ç\82Ì\83X\83R\81[\83v\82È\82Ì\82©\82ª\95K\97v\82È\82Ì\82Å\81A
-  // \83g\81[\83N\83\93\82ð\8fã\8f\91\82«\82·\82é
-  inherited NextToken;
-  if FToken = toTag then
-  begin
-    if IsScope1ChangeTag(TokenString) then
-      FElementIndex := FElementIndex or InScope1
-    else if IsScope0ChangeTag(TokenString) then
-      FElementIndex := FElementIndex and not InScope1
-    else if (FFountain as TSakuraScriptFountain).ProcessSync and
-      (TokenString = '\_s') then
-      FElementIndex := FElementIndex xor InSynchronized;
-  end else
-  begin
-    if FToken in [toSymbol..toFloat, toAnk, toDBSymbol..toKana, toHex] then
-    begin
-      if (FElementIndex and InSynchronized) > 0 then
-        FToken := toSynchronized
-      else if (FElementIndex and InScope1) > 0 then
-        FToken := toScope1
-      else
-        FToken := toScope0;
-    end;
-  end;
-  Result := FToken;
-end;
-
-procedure TSakuraScriptFountainParser.SymbolProc;
-// '\'\82Æ'%'\88È\8aO\82Í\8d\8b\89õ\82É\93Ç\82Ý\94ò\82Î\82·\81B\97v\82ç\82È\82¢\81B
-// \83_\83u\83\8b\83o\83C\83g\95\8e\9a\82à\83V\83\93\83O\83\8b\83o\83C\83g\95\8e\9a\82à\95¹\82¹\82Ä\92P\82È\82é\83V\83\93\83{\83\8b\82Æ\82µ\82Ä\88µ\82¤\81B
-begin
-  FToken := toSymbol;
-  if not (FP^ in [#0, #9, #10, #13, '\', '%']) then
-    if FP^ in LeadBytes then
-      Inc(FP, 2)
-    else
-      Inc(FP);
-end;
-
-function TSakuraScriptFountainParser.SsParser: TSsParser;
-begin
-  Result := (FFountain as TSakuraScriptFountain).SakuraScriptParser;
-  if Result = nil then raise Exception.Create('SakuraScriptParser property is nil');
-end;
-
-procedure TSakuraScriptFountainParser.TagProc;
-var i, Le: integer;
-    IsErr: boolean;
-    Pat: String;
-begin
-  Inc(FP);
-  if (FP^ in [#0, #13, #10]) then
-  begin
-    FToken := toTagError;
-    Exit;
-  end else if (FP^ = '\') or (FP^ = '%') then // '\\', '\%'\8c`\8e®\82Ì\83G\83X\83P\81[\83v
-  begin
-    Inc(FP);
-    SymbolProc;
-  end else
-  begin
-    for i := 0 to SsParser.TagPattern.Count-1 do
-    begin
-      Pat := SsParser.TagPattern[i];
-      if Length(Pat) < 2 then Continue;
-      IsErr := Pat[1] = '!';
-      Le := SsParser.MatchP(FP, @Pat[2]);
-      if Le > 0 then
-      begin
-        Inc(FP, Le);
-        if IsErr then
-          FToken := toTagError
-        else
-          FToken := toTag;
-        Exit; // \82ß\82Å\82½\82­\83p\83^\81[\83\93\83}\83b\83`\90¬\8c÷\82Ì\8fê\8d\87
-      end;
-    end;
-    // \88È\89º\82Í\83p\83^\81[\83\93\8eæ\93¾\8e¸\94s\82Ì\8fê\8d\87
-    FToken := toTagError;
-    if FP^ in LeadBytes then
-      Inc(FP, 2)
-    else
-      Inc(FP);
-  end;
-end;
-
-function TSakuraScriptFountainParser.TokenToFountainColor: TFountainColor;
-begin
-  with TSakuraScriptFountain(FFountain) do
-    case FToken of
-      toScope0:
-        Result := FScope0Color;
-      toScope1:
-        Result := FScope1Color;
-      toTag:
-        Result := FTagColor;
-      toTagError:
-        Result := FTagErrorColor;
-      toMetaWord:
-        Result := FMetaWordColor;
-      toSynchronized:
-        Result := FSynchronizedColor;
-    else
-        Result := nil;
-    end;
-end;
-
-procedure Register;
-begin
-  RegisterComponents('TEditor', [TSakuraScriptFountain]);
-end;
-
-end.
diff --git a/sakurasuite/SakuraSeeker.dcr b/sakurasuite/SakuraSeeker.dcr
deleted file mode 100644 (file)
index e343d92..0000000
Binary files a/sakurasuite/SakuraSeeker.dcr and /dev/null differ
diff --git a/sakurasuite/SakuraSeeker.pas b/sakurasuite/SakuraSeeker.pas
deleted file mode 100644 (file)
index 33014d3..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-{********************************************************}
-{ SakuraSeeker Component - Listups Existing SSTP Servers }
-{                                                        }
-{       Copyright (c) 2001-2003 naruto/CANO-Lab          }
-{********************************************************}
-
-unit SakuraSeeker;
-
-interface
-
-uses
-  Windows, SysUtils, Classes, Contnrs;
-
-type
-  ESakuraSeekerError = class(Exception);
-
-  TSakuraSeeker = class;
-
-  TSakuraSeekerGetMutexNameEvent = procedure (Sender: TObject;
-    var Name: String) of object;
-
-  TSakuraProcess = class(TObject)
-  private
-    FHash: TStringList;
-    FProcessID: String;
-    FFMOName: String;
-    FOwner: TSakuraSeeker;
-    procedure SetProcessID(const Value: String);
-    function GetHWnd: THandle;
-    function GetName: String;
-    function GetData(Key: String): String;
-    function GetKeroName: String;
-    function GetSetName: String;
-    procedure SetFMOName(const Value: String);
-    function GetDataAt(Index: integer): String;
-    function GetCount: integer;
-    function GetKeyAt(Index: integer): String;
-  protected
-    procedure AppendData(const Key, Value: String);
-  public
-    constructor Create(AOwner: TSakuraSeeker);
-    destructor Destroy; override;
-    property ProcessID: String read FProcessID write SetProcessID;
-    property FMOName: String read FFMOName write SetFMOName;
-    property HWnd: THandle read GetHWnd;
-    property Name: String read GetName;
-    property KeroName: String read GetKeroName;
-    property SetName: String read GetSetName;
-    property Data[Key: String]: String read GetData;
-    property Count: integer read GetCount;
-    property DataAt[Index: integer]: String read GetDataAt;
-    property KeyAt[Index: integer]: String read GetKeyAt;
-  end;
-
-  TSakuraSeeker = class(TComponent)
-  private
-    { Private \90é\8c¾ }
-    FList: TObjectList;
-    FAutoDetect: boolean;
-    FOnAfterDetection: TNotifyEvent;
-    FLastSeekResult: String; //\91O\89ñ\82Ì\8eæ\93¾\8c\8b\89Ê\81B\94ä\8ar\97p
-    FSourceResult: String;   //\8d¡\89ñ\82Ì\8eæ\93¾\8c\8b\89Ê\81B\94ä\8ar\97p
-    FOnDetectResultChanged: TNotifyEvent;
-    FFileMappingTarget: TStrings;
-    FOnGetMutexName: TSakuraSeekerGetMutexNameEvent;
-    FMutexPool: TStringList;
-    function GetProcess(Index: integer): TSakuraProcess;
-    procedure SetAutoDetect(const Value: boolean);
-    function GetProcessByName(Name: String): TSakuraProcess;
-    function GetProcessByID(ID: String): TSakuraProcess;
-    function GetCount: integer;
-    procedure SetOnAfterDetection(const Value: TNotifyEvent);
-    procedure SetOnDetectResultChanged(const Value: TNotifyEvent);
-    procedure SetFileMappingTarget(const Value: TStrings);
-    function GetProcessBySetName(Name: String): TSakuraProcess;
-    procedure SetOnGetMutexName(
-      const Value: TSakuraSeekerGetMutexNameEvent);
-  protected
-    { Protected \90é\8c¾ }
-    procedure Loaded; override;
-    procedure ClearList;
-    procedure BeginDetectOne(const Target: String);
-    function GetMutexName(const Target: String): String;
-    function GetMutex(const Name: String): THandle;
-  public
-    { Public \90é\8c¾ }
-    procedure BeginDetect;
-    property Count: integer read GetCount;
-    property Process[Index: integer]: TSakuraProcess read GetProcess; default;
-    property ProcessByName[Name: String]: TSakuraProcess read GetProcessByName;
-    property ProcessBySetName[Name: String]: TSakuraProcess read GetProcessBySetName;
-    property ProcessByID[ID: String]: TSakuraProcess read GetProcessByID;
-    function KillFMO(const TargetFMOName, TargetID: String): boolean;
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-  published
-    { Published \90é\8c¾ }
-    property AutoDetect: boolean read FAutoDetect write SetAutoDetect default true;
-    property OnAfterDetection: TNotifyEvent read FOnAfterDetection write SetOnAfterDetection;
-    property OnDetectResultChanged: TNotifyEvent read FOnDetectResultChanged write SetOnDetectResultChanged;
-    property FileMappingTarget: TStrings read FFileMappingTarget write SetFileMappingTarget;
-    property OnGetMutexName: TSakuraSeekerGetMutexNameEvent read FOnGetMutexName write SetOnGetMutexName;
-  end;
-
-procedure Register;
-
-implementation
-
-procedure Register;
-begin
-  RegisterComponents('Samples', [TSakuraSeeker]);
-end;
-
-{ TSakuraProcess }
-
-procedure TSakuraProcess.AppendData(const Key, Value: String);
-begin
-  FHash.Values[Key] := Value;
-end;
-
-constructor TSakuraProcess.Create(AOwner: TSakuraSeeker);
-begin
-  FHash := TStringList.Create;
-  FOwner := AOwner;
-end;
-
-destructor TSakuraProcess.Destroy;
-begin
-  inherited;
-  FHash.Free;
-end;
-
-function TSakuraProcess.GetCount: integer;
-begin
-  Result := FHash.Count;
-end;
-
-function TSakuraProcess.GetData(Key: String): String;
-begin
-  Result := FHash.Values[Key];
-end;
-
-function TSakuraProcess.GetDataAt(Index: integer): String;
-begin
-  if Index >= 0 then
-    Result := Copy(FHash[Index], Length(FHash.Names[Index]) + 2, High(integer))
-  else
-    Result := '';
-end;
-
-function TSakuraProcess.GetHWnd: THandle;
-begin
-  Result := StrToIntDef(GetData('hwnd'), 0);
-end;
-
-function TSakuraProcess.GetKeroName: String;
-begin
-  Result := GetData('keroname');
-end;
-
-function TSakuraProcess.GetKeyAt(Index: integer): String;
-begin
-  Result := FHash.Names[Index];
-end;
-
-function TSakuraProcess.GetName: String;
-begin
-  Result := GetData('name');
-end;
-
-
-function TSakuraProcess.GetSetName: String;
-begin
-  Result := GetName + ',' + GetKeroName;
-end;
-
-procedure TSakuraProcess.SetFMOName(const Value: String);
-begin
-  FFMOName := Value;
-end;
-
-procedure TSakuraProcess.SetProcessID(const Value: String);
-begin
-  FProcessID := Value;
-end;
-
-{ TSakuraSeeker }
-
-procedure TSakuraSeeker.BeginDetect;
-var i: integer;
-begin
-  if [csDesigning, csLoading] * ComponentState <> [] then Exit;
-  ClearList;
-
-  FSourceResult := '';
-  for i := 0 to FFileMappingTarget.Count-1 do begin
-    BeginDetectOne(FFileMappingTarget[i]); //1\82Â\82ÌFile-mapping Object\82ð\8eæ\93¾
-  end;
-
-  if Assigned(OnDetectResultChanged) and (FLastSeekResult <> FSourceResult) then begin
-    FLastSeekResult := FSourceResult;
-    OnDetectResultChanged(Self);
-  end else begin
-    FLastSeekResult := FSourceResult;
-  end;
-
-  if Assigned(OnAfterDetection) then OnAfterDetection(Self);
-end;
-
-procedure TSakuraSeeker.BeginDetectOne(const Target: String);
-var MappingHandle, Mutex: THandle;
-    P, PSaved: pointer;
-    SourceStr, ID, Entry, Data: String;
-    Size: integer;
-    Strs: TStringList;
-    Pro: TSakuraProcess;
-    i, j: integer;
-begin
-  //\83t\83@\83C\83\8b\83}\83b\83s\83\93\83O\83I\83u\83W\83F\83N\83g\82Ì\8eæ\93¾
-  PSaved := nil;
-  Strs := nil;
-  MappingHandle := 0;
-  
-  Mutex := GetMutex(GetMutexName(Target));
-  if Mutex = 0 then
-    raise ESakuraSeekerError.Create('Mutex\83n\83\93\83h\83\8b\82ð\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½');
-  if WaitForSingleObject(Mutex, 3000) = WAIT_TIMEOUT then
-    raise ESakuraSeekerError.Create('Mutex\93¯\8aú\83^\83C\83\80\83A\83E\83g');
-  try
-    MappingHandle := OpenFileMapping(FILE_MAP_READ, false, PChar(Target));
-    try
-      if MappingHandle = 0 then begin
-        SourceStr := '';
-      end else begin
-        PSaved := MapViewOfFile(MappingHandle, FILE_MAP_READ, 0, 0, 0);
-        P := PSaved;
-        if P <> nil then begin
-          CopyMemory(@Size, P, SizeOf(integer));
-          Inc(PChar(P), SizeOf(integer));
-          SourceStr := PChar(P);
-          if Length(SourceStr) > Size then
-            raise ESakuraSeekerError.Create('FMO\82ð\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½');
-        end;
-      end;
-    finally
-      //\83I\83u\83W\83F\83N\83g\82Ì\94j\8aü
-      if PSaved <> nil then UnmapViewOfFile(PSaved);
-    end;
-  finally
-    if MappingHandle <> 0 then CloseHandle(MappingHandle);
-    ReleaseMutex(Mutex);
-  end;
-
-  //\83f\81[\83^\82ð\89ð\90Í
-  try
-    try
-      Strs := TStringList.Create;
-      Strs.Text := SourceStr;
-      for i := 0 to Strs.Count-1 do begin
-        j := Pos('.', Strs[i]);
-        ID := Copy(Strs[i], 1, j-1);
-        Entry := Copy(Strs[i], j+1, Pos(#1, Strs[i])-j-1);
-        Data := Copy(Strs[i], Pos(#1, Strs[i])+1, High(integer));
-        Pro := GetProcessByID(ID);
-        if Pro = nil then begin
-          Pro := TSakuraProcess.Create(self);
-          Pro.ProcessID := ID;
-          Pro.FMOName := Target; // FMO\8e¯\95Ê\96¼
-          FList.Add(Pro);
-        end;
-        Pro.AppendData(Entry, Data);
-      end;
-    except
-    end;
-  finally
-    Strs.Free;
-  end;
-  FSourceResult := FSourceResult + SourceStr;
-end;
-
-procedure TSakuraSeeker.ClearList;
-begin
-  FList.Clear;
-end;
-
-constructor TSakuraSeeker.Create(AOwner: TComponent);
-begin
-  inherited;
-  FAutoDetect := true;
-  FList := TObjectList.Create;
-  FFileMappingTarget := TStringList.Create;
-  FFileMappingTarget.Add('Sakura');
-  FMutexPool := TStringList.Create;
-end;
-
-destructor TSakuraSeeker.Destroy;
-var i: integer;
-begin
-  ClearList;
-  FList.Free;
-  FFileMappingTarget.Free;
-  for i := 0 to FMutexPool.Count-1 do
-  begin
-    CloseHandle(StrToInt(Copy(FMutexPool[i], Pos('=', FMutexPool[i])+1, High(integer))));
-  end;
-  FreeAndNil(FMutexPool);
-end;
-
-function TSakuraSeeker.GetCount: integer;
-begin
-  Result := FList.Count;
-end;
-
-function TSakuraSeeker.GetMutex(const Name: String): THandle;
-begin
-  if FMutexPool.Values[Name] <> '' then
-  begin
-    Result := THandle(StrToInt(FMutexPool.Values[Name]));
-  end else
-  begin
-    Result := CreateMutex(nil, false, PChar(Name));
-    if Result <> 0 then
-      FMutexPool.Values[Name] := IntToStr(Result);
-  end;
-end;
-
-function TSakuraSeeker.GetMutexName(const Target: String): String;
-begin
-  if Assigned(FOnGetMutexName) then
-  begin
-    Result := Target;
-    FOnGetMutexName(self, Result);
-  end else
-    Result := Target + 'FMO';
-end;
-
-function TSakuraSeeker.GetProcess(Index: integer): TSakuraProcess;
-begin
-  Result := FList[Index] as TSakuraProcess;
-end;
-
-function TSakuraSeeker.GetProcessByID(ID: String): TSakuraProcess;
-var i: integer;
-begin
-  Result := nil;
-  for i := 0 to FList.Count-1 do begin
-    if TSakuraProcess(FList[i]).ProcessID = ID then begin
-      Result := FList[i] as TSakuraProcess;
-      Exit;
-    end;
-  end;
-end;
-
-function TSakuraSeeker.GetProcessByName(Name: String): TSakuraProcess;
-var i: integer;
-begin
-  Result := nil;
-  for i := 0 to FList.Count-1 do begin
-    if (FList[i] as TSakuraProcess).Name = Name then begin
-      Result := FList[i] as TSakuraProcess;
-      Exit;
-    end;
-  end;
-end;
-
-function TSakuraSeeker.GetProcessBySetName(Name: String): TSakuraProcess;
-var i: integer;
-begin
-  Result := nil;
-  for i := 0 to FList.Count-1 do begin
-    if (FList[i] as TSakuraProcess).SetName = Name then begin
-      Result := FList[i] as TSakuraProcess;
-      Exit;
-    end;
-  end;
-end;
-
-function TSakuraSeeker.KillFMO(const TargetFMOName, TargetID: String): boolean;
-var MappingHandle, Mutex: THandle;
-    P: pointer;
-    SourceStr, ID: String;
-    Size: integer;
-    Strs: TStringList;
-    i, j: integer;
-begin
-  //\83t\83@\83C\83\8b\83}\83b\83s\83\93\83O\83I\83u\83W\83F\83N\83g\82Ì\8eæ\93¾
-  Result := false;
-  P := nil;
-  Mutex := GetMutex(GetMutexName(TargetFMOName));
-  if Mutex = 0 then
-    raise ESakuraSeekerError.Create('Mutex\83n\83\93\83h\83\8b\82ð\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½');
-  if WaitForSingleObject(Mutex, 3000) = WAIT_TIMEOUT then
-    raise ESakuraSeekerError.Create('Mutex\93¯\8aú\83^\83C\83\80\83A\83E\83g');
-  try
-    MappingHandle := OpenFileMapping(FILE_MAP_WRITE, false, PChar(TargetFMOName));
-    if MappingHandle = 0 then Exit;
-    try
-      SourceStr := '';
-      P := MapViewOfFile(MappingHandle, FILE_MAP_WRITE, 0, 0, 0);
-      if P <> nil then begin
-        CopyMemory(@Size, P, SizeOf(integer));
-        Inc(PChar(P), SizeOf(integer));
-        SourceStr := PChar(P);
-        if Length(SourceStr) > Size then
-          raise ESakuraSeekerError.Create('FMO\82ð\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½');
-      end;
-
-      //\83f\81[\83^\82ð\89ð\90Í
-      Strs := TStringList.Create;
-      try
-        Strs.Text := SourceStr;
-        for i := Strs.Count-1 downto 0 do begin
-          j := Pos('.', Strs[i]);
-          ID := Copy(Strs[i], 1, j-1);
-          if ID = TargetID then begin
-            Strs.Delete(i); // \97v\82ç\82È\82¢\83G\83\93\83g\83\8a\82ð\8dí\8f\9c
-            Result := true;
-          end;
-        end;
-        SourceStr := Strs.Text;
-      finally
-        Strs.Free;
-      end;
-
-      if Result then begin
-        CopyMemory(P, PChar(SourceStr), Length(SourceStr)+1);
-        Dec(PChar(P), SizeOf(integer));
-      end;
-    finally
-      //\83I\83u\83W\83F\83N\83g\82Ì\94j\8aü
-      if P <> nil then UnmapViewOfFile(P);
-      CloseHandle(MappingHandle);
-    end;
-  finally
-    ReleaseMutex(Mutex);
-  end;
-end;
-
-procedure TSakuraSeeker.Loaded;
-begin
-  inherited;
-  if FAutoDetect and not (csDesigning in ComponentState) then BeginDetect;
-end;
-
-procedure TSakuraSeeker.SetAutoDetect(const Value: boolean);
-begin
-  FAutoDetect := Value;
-end;
-
-procedure TSakuraSeeker.SetFileMappingTarget(const Value: TStrings);
-begin
-  FFileMappingTarget.Assign(Value);
-end;
-
-procedure TSakuraSeeker.SetOnAfterDetection(const Value: TNotifyEvent);
-begin
-  FOnAfterDetection := Value;
-end;
-
-procedure TSakuraSeeker.SetOnDetectResultChanged(
-  const Value: TNotifyEvent);
-begin
-  FOnDetectResultChanged := Value;
-end;
-
-procedure TSakuraSeeker.SetOnGetMutexName(
-  const Value: TSakuraSeekerGetMutexNameEvent);
-begin
-  FOnGetMutexName := Value;
-end;
-
-end.
\ No newline at end of file
diff --git a/sakurasuite/SakuraSuite.dpk b/sakurasuite/SakuraSuite.dpk
deleted file mode 100644 (file)
index eb6be4c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-package SakuraSuite;
-
-{$R *.res}
-{$R 'SakuraSeeker.dcr'}
-{$R 'SsParser.dcr'}
-{$R 'IdSLPP20.dcr'}
-{$R 'DirectSstp.dcr'}
-{$R 'SakuraScriptFountain.dcr'}
-{$R 'SsPlayTime.dcr'}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO ON}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST ON}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$DESCRIPTION 'Sakura Component Suite by naruto/CANO-Lab'}
-{$IMPLICITBUILD OFF}
-
-requires
-  vcl,
-  rtl;
-
-// require\90ß\82É\82Í\81ATEdit\82ÆIndy??\82Ì2\82Â\82Ì\83p\83b\83P\81[\83W\82ª\81A
-// Delphi\82É\82æ\82Á\82Ä\8e©\93®\93I\82É\92Ç\89Á\82³\82ê\82é\82Í\82¸\81B
-// \92Ç\89Á\82·\82é\82©\82Ç\82¤\82©\90q\82Ë\82é\83_\83C\83A\83\8d\83O\82ª\8fo\82½\8fê\8d\87\82É\82ÍOK\82·\82é\82±\82Æ\81B
-
-contains
-  SakuraSeeker in 'SakuraSeeker.pas',
-  SsParser in 'SsParser.pas',
-  IdSLPP20 in 'IdSLPP20.pas',
-  DirectSstp in 'DirectSstp.pas',
-  SakuraScriptFountain in 'SakuraScriptFountain.pas',
-  SsPlayTime in 'SsPlayTime.pas';
-
-end.
diff --git a/sakurasuite/SakuraSuite.res b/sakurasuite/SakuraSuite.res
deleted file mode 100644 (file)
index 920b122..0000000
Binary files a/sakurasuite/SakuraSuite.res and /dev/null differ
diff --git a/sakurasuite/SsParser.pas b/sakurasuite/SsParser.pas
deleted file mode 100644 (file)
index 680466d..0000000
+++ /dev/null
@@ -1,653 +0,0 @@
-{********************************************************}
-{ TSsParser Component - Parser for Sakura Script         }
-{                                                        }
-{       Copyright (c) 2001-2003 naruto/CANO-Lab          }
-{********************************************************}
-
-unit SsParser;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
-
-type
-  // Kind of the Markup
-  // mtTag:  Tag. (begins with \)
-  // mtMeta: Meta expression. (begins with %)
-  // mtTagErr: Seems to be a markup error
-  // mtStr: Other normal talk string
-  TSsMarkUpType = (mtTag, mtMeta, mtTagErr, mtStr);
-
-  // Intercepting the parsing
-  TSsParseEvent = procedure (Sender: TObject; const Script: String;
-    var Len: integer; var MarkType: TSsMarkUpType; var Extra: String) of object;
-
-  // Exception class
-  ESsParserError = class(Exception);
-
-  TSsMarkUp = class(TObject)
-  private
-    FPos: integer;
-    FExtra: String;
-    FStr: String;
-    FMarkUpType: TSsMarkUpType;
-    procedure SetExtra(const Value: String);
-  public
-    constructor Create(Pos: integer; MarkUpType: TSsMarkUpType; Str: String; Extra: String = '');
-    property Pos: integer read FPos; //This markup is Pos'th character in InputString
-    property MarkUpType: TSsMarkUpType read FMarkUpType;
-    property Str: String read FStr;
-    property Extra: String read FExtra write SetExtra;
-  end;
-
-  TSsParser = class(TComponent)
-  private
-    FTagPattern: TStrings;    //SakuraScript tag pattern string
-    FMetaPattern: TStrings;   //SakuraScript meta expression pattern string
-    FInputString: String;   
-    FMarkUpList: TList;
-    FLeaveEscape: boolean;
-    FEscapeInvalidMeta: boolean;
-    FOnParse: TSsParseEvent;
-    procedure SetInputString(const Value: String);
-    function GetCount: integer;
-    function GetExtra(Index: integer): String;
-    function GetMarkUpType(Index: integer): TSsMarkUpType;
-    function GetStr(Index: integer): String;
-    procedure SetExtra(Index: integer; const Value: String);
-    procedure ClearList;
-    procedure SetMetaPattern(const Value: TStrings);
-    procedure SetTagPattern(const Value: TStrings);
-    procedure SetOnParse(const Value: TSsParseEvent);
-    function GetFirstChar(const Str: String): String;
-    function ChopFirstChar(var Str: String): String;
-    function GetPosition(Index: integer): integer;
-  protected
-    procedure BeginParse;
-  public
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    function MatchP(PStr, PPattern: PChar): integer;
-    function Match(Str, Pattern: String): integer;
-    function GetParam(Tag: String; const Index: integer): String;
-    function EscapeParam(const Param: String): String;
-    function MarkUpAt(const Pos: integer): integer;
-
-    property Count: integer read GetCount;
-    property MarkUpType[Index: integer]: TSsMarkUpType read GetMarkUpType;
-    property Str[Index: integer]: String read GetStr; default;
-    property Extra[Index: integer]: String read GetExtra write SetExtra;
-    property Position[Index: integer]: integer read GetPosition;
-    property InputString: String read FInputString write SetInputString;
-  published
-    // Script parsing patterns.
-    property TagPattern: TStrings read FTagPattern write SetTagPattern;
-    property MetaPattern: TStrings read FMetaPattern write SetMetaPattern;
-    // Whether to leave escape sequence "\\" and "\%" in mtStr elements
-    property LeaveEscape: boolean read FLeaveEscape write FLeaveEscape
-      default true;
-    // Replace '%' to '\%' if sequence follwing the '%' could not
-    // be parsed as a meta expression 
-    property EscapeInvalidMeta: boolean read FEscapeInvalidMeta
-      write FEscapeInvalidMeta default false;
-    // Component users can intercept and handle part of the parsing using this event.
-    property OnParse: TSsParseEvent read FOnParse write SetOnParse;
-  end;
-
-procedure Register;
-
-implementation
-
-resourcestring
-  CElementTypeError = '\90³\82µ\82¢\83G\83\8c\83\81\83\93\83g\83^\83C\83v\82ð\95Ô\82µ\82Ä\82­\82¾\82³\82¢';
-  CTagPatternSyntaxError = 'TagPattern\95\\8bL\83~\83X %d \8ds\96Ú';
-  CMarkupIndexOutofRange = '\83C\83\93\83f\83b\83N\83X\82ª\94Í\88Í\82ð\82±\82¦\82Ä\82¢\82Ü\82·';
-
-{
-  // English error message
-  CElementTypeError = 'Returned element type is invalid in OnParse.';
-  CTagPatternSyntaxError = 'TagPattern syntax error at line %d.';
-  CMarkupIndexOutofRange = 'Markup index if out of range.';
-}
-
-
-procedure Register;
-begin
-  RegisterComponents('Samples', [TSsParser]);
-end;
-
-{ TSsParser }
-
-procedure TSsParser.BeginParse;
-var Str, Talk, T, Ex: String;
-    i, Le: integer;
-    IsErr: boolean;
-    Mt: TSsMarkUpType;
-    PStr: PChar;
-begin
-  ClearList;
-  Str := FInputString; // The string to be parsed from now
-  // This is to avoid access violation if `Str` is terminated
-  // with DBCS leadbyte. (Such string is invalid from the beginning of course) 
-  Str := Str + #0#0;
-  if Length(Str) = 0 then Exit;
-  PStr := PChar(Str);
-  Talk := '';
-  while PStr^ <> #0 do begin
-    if PStr^ = '\' then begin
-      Inc(PStr);
-      if PStr^ = '\' then
-      begin
-        // Escaped sequence "\\"
-        if FLeaveEscape then
-          Talk := Talk + '\\'
-        else
-          Talk := Talk + '\';
-        Inc(PStr);
-        Continue;
-      end else if PStr^ = '%' then
-      begin
-        // Escaped sequence "\%"
-        if FLeaveEscape then
-          Talk := Talk + '\%'
-        else
-          Talk := Talk + '%';
-        Inc(PStr);
-        Continue;
-      end else
-      begin
-        Dec(PStr);
-        // might be a tag
-        // Generate OnParser event
-        Le := 0;
-        Ex := '';
-        IsErr := false;
-        if Assigned(FOnParse) then begin
-          FOnParse(Self, String(PStr), Le, Mt, Ex);
-          if Le > 0 then begin
-            if (Mt <> mtTag) and (Mt <> mtTagErr) then begin
-              raise ESsParserError.Create(CElementTypeError);
-              Exit;
-            end;
-            if Mt = mtTagErr then IsErr := true;
-          end;
-        end;
-        if Le <= 0 then begin
-          for i := 0 to FTagPattern.Count-1 do begin
-            T := FTagPattern[i];
-            if Length(T) = 0 then Continue;
-            IsErr := false;
-            if T[1] = '!' then begin
-              IsErr := true;
-              T[1] := '\';
-            end else if T[1] <> '\' then
-              raise ESsParserError.CreateFmt(CTagPatternSyntaxError, [i+1]);
-            Le := MatchP(PStr, PChar(T));
-            if Le > 0 then Break;
-          end;
-        end;
-        if Length(Talk) > 0 then begin
-          FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-Length(Talk), mtStr, Talk));
-          Talk := '';
-        end;
-        if Le > 0 then begin
-          // Parsed as a correct tag
-          T := Copy(String(PStr), 1, Le);
-          if IsErr then
-            FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str), mtTagErr, T, Ex))
-          else
-            FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str), mtTag, T, Ex));
-          Inc(PStr, Le);
-        end else begin
-          // Parsing failed; The character '\' and the next one character is
-          // marked as a tag error.
-          Inc(PStr); // Skip '\'
-          if PStr^ in LeadBytes then
-          begin
-            T := '\' + Copy(String(PStr), 1, 2);
-            FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-1, mtTagErr, T));
-            Inc(PStr, 2);
-          end else
-          begin
-            T := '\' + PStr^;
-            FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-1, mtTagErr, T));
-            Inc(PStr);
-          end;
-        end;
-      end;
-    end else if (PStr^ = '%') then begin
-      Le := 0; Ex := '';
-      if Assigned(FOnParse) then begin
-        FOnParse(Self, String(PStr), Le, Mt, Ex);
-        if Le > 0 then begin
-          if Mt <> mtMeta then begin
-            raise ESsParserError.Create(CElementTypeError);
-            Exit;
-          end;
-          Dec(Le);
-        end;
-      end;
-      Inc(PStr); // Skip '%'
-      if Le <= 0 then
-      begin
-        for i := 0 to FMetaPattern.Count-1 do
-        begin
-          if Length(FMetaPattern[i]) = 0 then
-            Continue;
-          Le := MatchP(PStr, PChar(FMetaPattern[i]));
-          if Le > 0 then
-            Break;
-        end;
-      end;
-      if Le > 0 then
-      begin
-        if Length(Talk) > 0 then
-        begin
-          FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-Length(Talk), mtStr, Talk));
-          Talk := '';
-        end;
-        T := Copy(String(PStr), 1, Le);
-        FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-1, mtMeta, '%' + T, Ex));
-        Inc(PStr, Le);
-      end else
-      begin
-        // in case this %??? sequence seems NOT be a meta expression
-        if FEscapeInvalidMeta then
-          Talk := Talk + '\%'
-        else
-          Talk := Talk + '%';
-        Continue;
-      end;
-    end else begin
-      if PStr^ in LeadBytes then
-      begin
-        Talk := Talk + Copy(String(PStr), 1, 2);
-        Inc(PStr, 2);
-      end else
-      begin
-        Talk := Talk + PStr^;
-        Inc(PStr);
-      end;
-    end;
-  end; // of while
-  if Length(Talk) > 0 then FMarkUpList.Add(TSsMarkUp.Create(PStr-PChar(Str)-Length(Talk), mtStr, Talk));
-end;
-
-function TSsParser.ChopFirstChar(var Str: String): String;
-begin
-  Result := GetFirstChar(Str);
-  Delete(Str, 1, Length(Result));
-end;
-
-procedure TSsParser.ClearList;
-var i: integer;
-begin
-  for i := FMarkUpList.Count-1 downto 0 do begin
-    TSsMarkUp(FMarkUpList[i]).Free;
-  end;
-  FMarkUpList.Free;
-  FMarkUpList := TList.Create;
-end;
-
-constructor TSsParser.Create(AOwner: TComponent);
-begin
-  inherited;
-  FTagPattern := TStringList.Create;
-  FMetaPattern := TStringList.Create;
-  FMarkUpList := TList.Create;
-  FLeaveEscape := true;
-end;
-
-destructor TSsParser.Destroy;
-begin
-  inherited;
-  FTagPattern.Free;
-  FMetaPattern.Free;
-  ClearList;
-  FMarkUpList.Free;
-end;
-
-function TSsParser.EscapeParam(const Param: String): String;
-begin
-  //StringReplace supports DBCS
-  Result := StringReplace(Param, '\', '\\', [rfReplaceAll]);
-  Result := StringReplace(Param, ']', '\]', [rfReplaceAll]);
-end;
-
-function TSsParser.GetCount: integer;
-begin
-  Result := FMarkUpList.Count;
-end;
-
-function TSsParser.GetExtra(Index: integer): String;
-begin
-  if (Index >= 0) and (Index <= FMarkUpList.Count-1) then
-    Result := TSsMarkUp(FMarkUpList[Index]).Extra
-  else
-    Result := '';
-end;
-
-function TSsParser.GetFirstChar(const Str: String): String;
-begin
-  // Get the first character of the given string. Supports DBCS
-  if Length(Str) <= 1 then begin
-    Result := Str;
-  end else begin
-    if Str[1] in LeadBytes then begin
-      Result := Str[1] + Str[2];
-    end else begin
-      Result := Str[1];
-    end;
-  end;
-end;
-
-function TSsParser.GetMarkUpType(Index: integer): TSsMarkUpType;
-begin
-  if (Index >= 0) and (Index <= FMarkUpList.Count-1) then
-    Result := TSsMarkUp(FMarkUpList[Index]).MarkUpType
-  else
-    raise ESsParserError.Create(CMarkupIndexOutOfRange);
-end;
-
-function TSsParser.GetParam(Tag: String;
-  const Index: integer): String;
-var ParamCount: integer;
-    First, Param: String;
-    Escape, Inside: boolean;
-begin
-  if Index <= 0 then Exit;
-  Inside := false;
-  ParamCount := 0;
-  Escape := false;
-  repeat
-    First := ChopFirstChar(Tag);
-    if Inside then begin
-      if Escape then begin
-        if First = '\' then Param := Param + '\'
-        else if First = ']' then Param := Param + ']'
-        else Param := Param + '\' + First;
-        Escape := false;
-      end else if First = '\' then
-        Escape := true
-      else if First = ']' then
-        Inside := false
-      else begin
-        Escape := false;
-        Param := Param + First;
-      end;
-    end else if First = '[' then begin
-      Inside := true;
-      Escape := false;
-      Param := '';
-      Inc(ParamCount);
-    end;
-  until (First = '') or ((ParamCount = Index) and not Inside);
-  if ((ParamCount = Index) and not Inside) then
-    Result := Param
-  else
-    Result := '';
-end;
-
-function TSsParser.GetPosition(Index: integer): integer;
-begin
-  if (Index >= 0) and (Index <= FMarkUpList.Count-1) then
-    Result := TSsMarkUp(FMarkUpList[Index]).Pos
-  else
-    Result := 0;
-end;
-
-function TSsParser.GetStr(Index: integer): String;
-begin
-  if (Index >= 0) and (Index <= FMarkUpList.Count-1) then
-    Result := TSsMarkUp(FMarkUpList[Index]).Str
-  else
-    Result := '';
-end;
-
-function TSsParser.MarkUpAt(const Pos: integer): integer;
-var i, lo, hi: integer;
-begin
-  if FMarkUpList.Count = 0 then
-    Result := -1
-  else begin
-    lo := 0;
-    hi := FMarkUpList.Count-2;
-    i := (hi-lo) div 2 + lo;
-    while (hi > lo) do
-    begin
-      i := (hi-lo) div 2 + lo;
-      if (TSsMarkUp(FMarkUpList[i]).Pos >= Pos) and
-         (TSsMarkUp(FMarkUpList[i+1]).Pos < Pos) then
-      begin
-         Result := i;
-         Exit;
-      end else if TSsMarkUp(FMarkUpList[i]).Pos > Pos then
-        hi := i
-      else
-        lo := i;
-    end;
-    Result := i;
-  end;
-end;
-
-function TSsParser.Match(Str, Pattern: String): integer;
-begin
-  if (Length(Str) = 0) or (Length(Pattern) = 0) then
-    Result := 0
-  else
-    Result := MatchP(@Str[1], @Pattern[1]);
-end;
-
-function TSsParser.MatchP(PStr, PPattern: PChar): integer;
-var Matched, F, Escape: boolean;
-begin
-  Matched := true;
-  Result := 0;
-  while Matched and (PPattern^ <> #0) do begin
-    if PPattern^ = '%' then
-    begin
-      if PStr^ = #0 then
-      begin
-        Matched := false;
-        Break;
-      end;
-      Inc(PPattern);
-      case PPattern^ of
-        '%':
-          begin
-            if PStr^ = '%' then
-            begin
-              Inc(Result);
-              Inc(PStr);
-              Inc(PPattern);
-            end else
-            begin
-              Matched := false;
-              Break;
-            end;
-          end;
-        'd':
-          begin
-            if PStr^ in ['0' .. '9'] then
-            begin
-              Inc(Result);
-              Inc(PStr);
-              Inc(PPattern);
-            end else
-              Matched := false;
-          end;
-        'D':
-          begin
-            if PStr^ in ['0' .. '9'] then
-            begin
-              while PStr^ in ['0' .. '9'] do
-              begin
-                Inc(Result);
-                Inc(PStr);
-              end;
-              Inc(PPattern);
-            end else
-              Matched := false;
-          end;
-        'b': //String enclosed by '[' and ']'. The content may be an empty string.
-          begin
-            if PStr^ <> '[' then
-            begin
-              Matched := false;
-            end else
-            begin
-              F := false;
-              Escape := false; //After escape character
-              Inc(PStr);   // '['
-              Inc(Result); // '['
-              repeat
-                if Escape then
-                begin
-                  Escape := false;
-                end else
-                begin
-                  if PStr^ = '\' then Escape := true;
-                  if PStr^ = ']' then F := true;
-                end;
-                if PStr^ in LeadBytes then
-                begin
-                  Inc(Result, 2);
-                  Inc(PStr, 2);
-                end else
-                begin
-                  Inc(Result);
-                  Inc(PStr);
-                end;
-              until (PStr^ = #0) or F;
-              if not F then
-                Matched := false;
-            end;
-            Inc(PPattern);
-          end;
-        'c': // String which can be the argument content enclosed by '[' and ']'
-          begin
-            Inc(PPattern);
-            if not (PStr^ = ']') then
-            begin
-              Escape := false;
-              repeat
-                if Escape then
-                  Escape := false
-                else if PStr^ = ']' then
-                  Break
-                else
-                  if PStr^ = '\' then Escape := true;
-                if PStr^ in LeadBytes then
-                begin
-                  Inc(Result, 2);
-                  Inc(PStr, 2);
-                end else
-                begin
-                  Inc(Result);
-                  Inc(PStr);
-                end;
-              until (PStr^ = #0);
-            end else
-              Matched := false;
-          end;
-        'm':
-          begin
-            if not (PStr^ in LeadBytes) then
-            begin
-              Inc(PPattern);
-              Inc(PStr);
-              Inc(Result);
-            end else Matched := false;
-          end;
-        'M':
-          begin
-            if (PStr^ in LeadBytes) then
-            begin
-              Inc(PPattern);
-              Inc(PStr, 2);
-              Inc(Result, 2);
-            end else Matched := false;
-          end;
-        '.':
-          if (PStr^ in LeadBytes) then
-          begin
-            Inc(PPattern);
-            Inc(PStr, 2);
-            Inc(Result, 2);
-          end else
-          begin
-            Inc(PPattern);
-            Inc(PStr);
-            Inc(Result);
-          end;
-        else
-          if PStr^ = '%' then
-          begin
-            Inc(PStr);
-            Inc(Result);
-          end else
-          begin
-            Matched := false;
-          end;
-      end // of case
-    end else
-    begin
-      if PStr^ <> PPattern^ then
-        Matched := false
-      else
-      begin
-        Inc(Result);
-        Inc(PStr);
-        Inc(PPattern);
-      end;
-    end;
-  end; //of while
-  if not Matched then Result := 0;
-end;
-
-procedure TSsParser.SetExtra(Index: integer; const Value: String);
-begin
-  if (Index >= 0) and (Index <= FMarkUpList.Count-1) then
-    TSsMarkUp(FMarkUpList[Index]).Extra := Value
-  else
-    raise ESsParserError.Create(CMarkupIndexOutOfRange);
-end;
-
-procedure TSsParser.SetInputString(const Value: String);
-begin
-  FInputString := Value;
-  BeginParse;
-end;
-
-procedure TSsParser.SetMetaPattern(const Value: TStrings);
-begin
-  FMetaPattern.Assign(Value);
-end;
-
-procedure TSsParser.SetOnParse(const Value: TSsParseEvent);
-begin
-  FOnParse := Value;
-end;
-
-procedure TSsParser.SetTagPattern(const Value: TStrings);
-begin
-  FTagPattern.Assign(Value);
-end;
-
-{ TSsMarkUp }
-
-constructor TSsMarkUp.Create(Pos: integer; MarkUpType: TSsMarkUpType; Str: String; Extra: String = '');
-begin
-  FPos := Pos;
-  FMarkUpType := MarkUpType;
-  FStr := Str;
-  FExtra := Extra;
-end;
-
-procedure TSsMarkUp.SetExtra(const Value: String);
-begin
-  FExtra := Value;
-end;
-
-end.
diff --git a/sakurasuite/SsPlayTime.dcr b/sakurasuite/SsPlayTime.dcr
deleted file mode 100644 (file)
index 2abba11..0000000
Binary files a/sakurasuite/SsPlayTime.dcr and /dev/null differ
diff --git a/sakurasuite/SsPlayTime.pas b/sakurasuite/SsPlayTime.pas
deleted file mode 100644 (file)
index 5d9c705..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-{*************************************************************}
-{ TSsPlayTime Component - Estimates SakuraScript playing time }
-{                                                             }
-{       Copyright (c) 2001-2003 naruto/CANO-Lab               }
-{*************************************************************}
-
-unit SsPlayTime;
-
-interface
-
-uses
-  Windows, SysUtils, Classes, SsParser;
-
-type
-  TSsPlayTimeException = class(Exception);
-  TSsPlayTimeInitException = class(TSsPlayTimeException);
-
-  TSsPlayTimeSpecialChar = class(TCollectionItem)
-  private
-    FWait: integer;
-    FChar: String;
-    procedure SetChar(const Value: String);
-    procedure SetWait(const Value: integer);
-  protected
-    function GetDisplayName: String; override;
-  public
-    procedure Assign(Source: TPersistent); override;
-    function DisplayChar: String;
-  published
-    property Char: String read FChar write SetChar;
-    property Wait: integer read FWait write SetWait;
-  end;
-
-  TSsPlayTimeSpecialChars = class(TCollection)
-  end;
-
-  TSsPlayTimeParams = class(TComponent)
-  private
-    FCostWait: integer;
-    FCostDBChar: integer;
-    FCostChar: integer;
-    FCostConst: integer;
-    FCostHiResWait: integer;
-    FCostSurface: integer;
-    FCostQuickChar: integer;
-    FProfileName: String;
-    FSpecialChars: TSsPlayTimeSpecialChars;
-    procedure SetCostChar(const Value: integer);
-    procedure SetCostConst(const Value: integer);
-    procedure SetCostDBChar(const Value: integer);
-    procedure SetCostWait(const Value: integer);
-    procedure SetCostHiResWait(const Value: integer);
-    procedure SetCostSurface(const Value: integer);
-    procedure SetCostQuickChar(const Value: integer);
-    procedure SetProfileName(const Value: String);
-    procedure SetSpecialChars(const Value: TSsPlayTimeSpecialChars);
-  public
-    constructor Create(AOwner: TComponent); override;
-    destructor Destroy; override;
-    procedure Assign(Source: TPersistent); override;
-  published
-    property ProfileName: String read FProfileName write SetProfileName;
-    property CostConst: integer read FCostConst write SetCostConst default 0;
-    property CostWait: integer read FCostWait write SetCostWait default 50;
-    property CostHiResWait: integer read FCostHiResWait write SetCostHiResWait default 1;
-    property CostSurface: integer read FCostSurface write SetCostSurface default 5;
-    property CostChar: integer read FCostChar write SetCostChar default 50;
-    property CostDBChar: integer read FCostDBChar write SetCostDBChar default 50;
-    property CostQuickChar: integer read FCostQuickChar write SetCostQuickChar default 0;
-    property SpecialChars: TSsPlayTimeSpecialChars read FSpecialChars write SetSpecialChars;
-  end;
-
-  TSsPlayTimeCount = record
-    Wait: integer;
-    HiResWait: integer;
-    Surface: integer;
-    Char: integer;
-    DBChar: integer;
-    QuickChar: integer;
-    Specials: integer;
-  end;
-
-  TSsPlayTime = class(TComponent)
-  private
-    FPlayTimeParams: TSsPlayTimeParams;
-    FSsParser: TSsParser;
-    FCounts: TSsPlayTimeCount;
-    procedure SetPlayTimeParams(const Value: TSsPlayTimeParams);
-    procedure SetSsParser(const Value: TSsParser);
-  protected
-    procedure CountElements;
-    procedure CountCharacterType(const Str: String; out SB, DB,
-      SPNum, SPWait: integer);
-  public
-    function PlayTime(const Script: String): integer;
-    property Counts: TSsPlayTimeCount read FCounts;
-  published
-    property PlayTimeParams: TSsPlayTimeParams read FPlayTimeParams write SetPlayTimeParams;
-    property SsParser: TSsParser read FSsParser write SetSsParser;
-  end;
-
-procedure Register;
-
-implementation
-
-const
-  CDBWhiteSpace = #129 + #64; // Shift_JIS DB White Space;
-
-procedure Register;
-begin
-  RegisterComponents('Samples', [TSsPlayTime, TSsPlayTimeParams]);
-end;
-
-{ TSsPlayTimeParams }
-
-procedure TSsPlayTimeParams.Assign(Source: TPersistent);
-var
-  Src: TSsPlayTimeParams;
-begin
-  if not (Source is TSsPlayTimeParams) then
-    inherited
-  else
-  begin
-    Src := Source as TSsPlayTimeParams;
-    FCostConst        := Src.FCostConst;
-    FCostWait         := Src.FCostWait;
-    FCostHiResWait    := Src.FCostHiResWait;
-    FCostSurface      := Src.FCostSurface;
-    FCostChar         := Src.FCostChar;
-    FCostDBChar       := Src.FCostDBChar;
-    FCostQuickChar    := Src.FCostQuickChar;
-    FProfileName      := Src.FProfileName;
-    FSpecialChars.Assign(Src.SpecialChars);
-  end;
-end;
-
-constructor TSsPlayTimeParams.Create(AOwner: TComponent);
-begin
-  inherited;
-  FCostConst        := 0;
-  FCostWait         := 50;
-  FCostHiResWait    := 1;
-  FCostSurface      := 5;
-  FCostChar         := 50;
-  FCostDBChar       := 50;
-  FCostQuickChar    := 0;
-  FSpecialChars := TSsPlayTimeSpecialChars.Create(TSsPlayTimeSpecialChar);
-end;
-
-destructor TSsPlayTimeParams.Destroy;
-begin
-  FSpecialChars.Free;
-  inherited;
-end;
-
-procedure TSsPlayTimeParams.SetCostChar(const Value: integer);
-begin
-  FCostChar := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostConst(const Value: integer);
-begin
-  FCostConst := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostDBChar(const Value: integer);
-begin
-  FCostDBChar := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostHiResWait(const Value: integer);
-begin
-  FCostHiResWait := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostQuickChar(const Value: integer);
-begin
-  FCostQuickChar := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostSurface(const Value: integer);
-begin
-  FCostSurface := Value;
-end;
-
-procedure TSsPlayTimeParams.SetCostWait(const Value: integer);
-begin
-  FCostWait := Value;
-end;
-
-procedure TSsPlayTimeParams.SetProfileName(const Value: String);
-begin
-  FProfileName := Value;
-end;
-
-procedure TSsPlayTimeParams.SetSpecialChars(
-  const Value: TSsPlayTimeSpecialChars);
-begin
-  FSpecialChars.Assign(Value);
-end;
-
-{ TSsPlayTime }
-
-procedure TSsPlayTime.CountCharacterType(const Str: String; out SB,
-  DB, SPNum, SPWait: integer);
-var
-  i, j: integer;
-  InLeadByte, Flag: boolean;
-  AChar: TSsPlayTimeSpecialChar;
-begin
-  SB := 0;
-  DB := 0;
-  SPNum := 0;
-  SPWait := 0;
-  InLeadByte := false;
-  for i := 1 to Length(Str) do
-  begin
-    if InLeadByte then
-    begin
-      Inc(DB);
-      InLeadByte := false;
-    end
-    else
-    begin
-      Flag := false;
-      for j := 0 to PlayTimeParams.SpecialChars.Count-1 do
-      begin
-        AChar := PlayTimeParams.SpecialChars.Items[j] as TSsPlayTimeSpecialChar;
-        if Length(AChar.Char) = 2 then
-        begin
-          if Str[i] + Str[i+1] = AChar.Char then
-          begin
-            Inc(SPWait, AChar.Wait);
-            Inc(SPNum);
-            Dec(DB);
-            Flag := true;
-            InLeadByte := true;
-            Break;
-          end;
-        end else
-        begin
-          if Str[i] = AChar.Char then
-          begin
-            Inc(SPWait, AChar.Wait);
-            Inc(SPNum);
-            Flag := true;
-            Break;
-          end;
-        end;
-      end;
-      if not Flag then
-      begin
-        if Str[i] in LeadBytes then
-          InLeadByte := true
-        else
-          Inc(SB);
-      end;
-    end;
-  end;
-end;
-
-procedure TSsPlayTime.CountElements;
-var
-  i, SB, DB, SPNum, SPWait: integer;
-  Mark: String;
-  InQuick: boolean;
-begin
-  ZeroMemory(@FCounts, sizeof(FCounts));
-  InQuick := false;
-  with SsParser do
-  begin
-    for i := 0 to SsParser.Count-1 do
-    begin
-      Mark := Str[i];
-      case MarkUpType[i] of
-        mtTag:
-          begin
-            if Mark = '\_q' then
-              InQuick := not InQuick
-            else if Match(Mark, '\w%d') = 3 then
-              FCounts.Wait := FCounts.Wait + Ord(Mark[3]) - Ord('0')
-            else if Match(Mark, '\_w[%D]') > 0 then
-              Inc(FCounts.HiResWait, StrToInt(GetParam(Mark, 0)))
-            else if Match(Mark, '\s%d') = 3 then
-              Inc(FCounts.Surface)
-            else if Match(Mark, '\s%b') > 0 then
-              Inc(FCounts.Surface)
-          end;
-        mtMeta, mtStr:
-          begin
-            if InQuick then
-            begin
-              CountCharacterType(Mark, SB, DB, SPNum, SPWait);
-              Inc(FCounts.QuickChar, SB + DB + SPNum);
-            end else
-            begin
-              CountCharacterType(Mark, SB, DB, SPNum, SPWait);
-              Inc(FCounts.Char, SB);
-              Inc(FCounts.DBChar, DB);
-              Inc(FCounts.Specials, SPWait);
-            end;
-          end;
-        // Ignore all tag errors
-      end;
-    end;
-  end;
-end;
-
-function TSsPlayTime.PlayTime(const Script: String): integer;
-begin
-  Result := 0;
-  if FSsParser = nil then
-    raise TSsPlayTimeInitException.Create('SsParser is not set');
-  if FPlayTimeParams = nil then
-    raise TSsPlayTimeInitException.Create('PlayTimeParams is not set');
-  SsParser.InputString := Script;
-  CountElements;
-  with PlayTimeParams do
-    Result := CostConst + CostWait * FCounts.Wait + CostSurface * FCounts.Surface +
-      CostHiResWait * FCounts.HiResWait + CostChar * FCounts.Char +
-      CostDBChar * FCounts.DBChar + FCounts.Specials +
-      CostQuickChar * FCounts.QuickChar;
-end;
-
-procedure TSsPlayTime.SetPlayTimeParams(const Value: TSsPlayTimeParams);
-begin
-  FPlayTimeParams := Value;
-end;
-
-procedure TSsPlayTime.SetSsParser(const Value: TSsParser);
-begin
-  FSsParser := Value;
-end;
-
-{ TSsPlayTimeSpecialChar }
-
-procedure TSsPlayTimeSpecialChar.Assign(Source: TPersistent);
-begin
-  if not(Source is TSsPlayTimeSpecialChar) then
-    inherited
-  else
-  begin
-    Self.FChar := (Source as TSsPlayTimeSpecialChar).FChar;
-    Self.FWait := (Source as TSsPlayTimeSpecialChar).FWait;
-  end;
-end;
-
-function TSsPlayTimeSpecialChar.DisplayChar: String;
-begin
-  if FChar = ' ' then
-    Result := '(SP)'
-  else if FChar = CDBWhiteSpace then
-    Result := '(DB SP)'
-  else
-    Result := FChar;
-end;
-
-function TSsPlayTimeSpecialChar.GetDisplayName: String;
-begin
-  Result := Format('"%s" = %d', [DisplayChar, FWait]);
-end;
-
-procedure TSsPlayTimeSpecialChar.SetChar(const Value: String);
-begin
-  if Value = '' then
-    FChar := Value
-  else
-  begin
-    if (Value[1] in LeadBytes) then
-    begin
-      if Length(Value) = 2 then
-        FChar := Value;
-    end else if Length(Value) = 1 then
-      FChar := Value;
-  end;
-end;
-
-procedure TSsPlayTimeSpecialChar.SetWait(const Value: integer);
-begin
-  FWait := Value;
-end;
-
-end.
\ No newline at end of file
diff --git a/sakurasuite/manual/directsstp.html b/sakurasuite/manual/directsstp.html
deleted file mode 100644 (file)
index 6d96ee4..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>TDirectSSTP</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<dl>
-</dl>
-<h1>TDirectSSTP</h1>
-<h2>\8aT\97v</h2>
-<p>\82³\82­\82ç\83X\83N\83\8a\83v\83g\92Ê\90M\83v\83\8d\83g\83R\83\8b(SSTP)\82ð\8eg\82Á\82Ä\81A\83\8d\81[\83J\83\8b\83z\83X\83g\8fã\82ÌSSTP\83T\81[\83o\82Æ\92Ê\90M\82·\82é\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B</p>
-<p>DirectSSTP\82É\82Ì\82Ý\91Î\89\9e\82µ\82Ä\82¢\82Ü\82·\81B</p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X - \83v\83\8d\83p\83e\83B</h2>
-<h3><code>SenderName: String [\93Ç/\8f\91][\90Ý/\8eÀ]</code></h3>
-<p>SSTP\82ÌSender\83w\83b\83_\95\8e\9a\97ñ\82ð\90Ý\92è\82µ\82Ü\82·\81B\82Â\82Ü\82è\91\97\82è\8eè\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93(Delphi\91¤)\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\96¼\82Å\82·\81B\8e©\95ª\82ª\8aJ\94­\82µ\82Ä\82¢\82é\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\96¼\91O\82ð\93ü\82ê\82Ä\82­\82¾\82³\82¢\81B\83f\83t\83H\83\8b\83g\82Í\81uMy 
-Program\81v\82Å\82·\82ª\81A\95K\82¸\95Ï\8dX\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B</p>
-<h3><code>StatusCode: Integer [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code></h3>
-<p>\8dÅ\8cã\82É\94­\8ds\82µ\82½SSTP\83\8a\83N\83G\83X\83g\82É\82æ\82Á\82Ä\8bA\82Á\82Ä\82«\82½\81A\83X\83e\81[\83^\83X\83R\81[\83h\82Ì\90\94\92l\82ª\93ü\82è\82Ü\82·\81BOK\82È\82ç200\94Ô\91ä\81A\82»\82ê\88È\8aO\82È\82ç\83G\83\89\81[\82Å\82·\81B\8fÚ\82µ\82­\82Í\81ASSTP\8ed\97l\8f\91\82ð\82²\97\97\82­\82¾\82³\82¢\81B</p>
-<ul>
-  <li>UnknownError(=-1000)\92è\90\94\82ªStatusCode\82É\93ü\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B\82±\82ê\82Í\83T\81[\83o\82ª\97\8e\82¿\82Ä\82¢\82½\82È\82Ç\82Ì\97\9d\97R\82Å\89\9e\93\9a\82ª\82Ü\82Á\82½\82­\93¾\82ç\82ê\82È\82©\82Á\82½\82Æ\82«\82Ì\90\94\92l\82Å\82·\81B</li>
-</ul>
-<h3><code>SentLog: String [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code></h3>
-<p>\8dÅ\8cã\82É\94­\8ds\82µ\82½SSTP\95\82ª\82»\82Ì\82Ü\82Ü\93ü\82Á\82Ä\82¢\82Ü\82·\81B\83`\83F\83b\83N\82É\82Ç\82¤\82¼\81B\8dÄ\91\97\82Ì\92¼\8cã\82É\82à\8dÄ\91\97\82Ì\82Æ\82«\82É\94­\8ds\82µ\82½\95\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B</p>
-<h3><code>RecvLog: String [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code></h3>
-<p>\8dÅ\8cã\82É\8ds\82Á\82½\92Ê\90M\82É\82æ\82é\81ASSTP\83T\81[\83o\82©\82ç\82Ì\83\8c\83X\83|\83\93\83X\82ª\91S\95\94\8bL\98^\82³\82ê\82Ä\82¢\82Ü\82·\81B\8dÄ\91\97\82Ì\92¼\8cã\82É\82à\8dÄ\91\97\82Ì\82Æ\82«\82Ì\83\8c\83X\83|\83\93\83X\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B</p>
-<h3><code>LastStatus: TSstpResult; [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code></h3>
-<p>\8dÅ\8cã\82ÌSSTP\83T\81[\83o\82©\82ç\82Ì\83\8c\83X\83|\83\93\83X\82ª\81ATSstpResult\8c^(\83R\81[\83h\8eQ\8fÆ)\82Å\93ü\82Á\82Ä\82¢\82Ü\82·\81B</p>
-<ul>
-  <li>srUnknownError\82Í\81A\89½\82ç\82©\82Ì\8e\96\8fî\82ÅSSTP\83T\81[\83o\82©\82ç\82Ì\89\9e\93\9a\82ª\82Ü\82Á\82½\82­\93¾\82ç\82ê\82È\82©\82Á\82½\8fê\8d\87\82Ì\83G\83\89\81[\82Å\82·\81B\82±\82ê\82Í\81ATDirectSSTP\91¤\82Ì\83^\83C\83\80\83A\83E\83g\81A\82 \82é\82¢\82ÍSSTP\83T\81[\83o\82Ì\83r\83W\81[\8fó\91Ô(Conflict\82Æ\82Í\88á\82¤)\82È\82Ç\82ª\8c´\88ö\82Å\94­\90\82µ\82Ü\82·\81B</li>
-</ul>
-<h3><code>CueCount: integer; [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82É\8c»\8dÝ\93ü\82Á\82Ä\82¢\82éSEND\83\81\83b\83Z\81[\83W\82Ì\90\94\82ð\95Ô\82µ\82Ü\82·\81B</p>
-<h3><code>Interval: integer; [\93Ç/\8f\91][\90Ý/\8eÀ]</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82©\82ç\8dÄ\91\97\82ð\8ds\82¤\8aÔ\8au\82ð\83~\83\8a\95b\82Å\8ew\92è\82µ\82Ü\82·\81B1000\82æ\82è\8f¬\82³\82¢\92l\82à\90Ý\92è\82Å\82«\82Ü\82·\82ª\81ASSTP\83T\81[\83o\82É\89ß\95\89\89×\82ð\97^\82¦\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\82Ì\82Å\81A\82Å\82«\82é\82¾\82¯\90Ý\92è\82µ\82È\82¢\82æ\82¤\82É\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h3><code>Sleep: boolean; [\93Ç/\8f\91][\90Ý/\8eÀ]</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82©\82ç\82Ì\8dÄ\91\97\82ð\88ê\8e\9e\92â\8e~\82µ\82Ü\82·\81BSleep = true\82Ì\8aÔ\82Í\81ASstpSENDCue\83\81\83\\83b\83h\82É\82æ\82Á\82Ä\83\81\83b\83Z\81[\83W\82ª\93ü\97Í\82³\82ê\82Ä\82à\81A\83R\83\93\83|\81[\83l\83\93\83g\93à\95\94\82Å\8bL\89¯\82³\82ê\82é\82¾\82¯\82Å\81A\8eÀ\8dÛ\82É\82ÍSSTP\83T\81[\83o\82É\82Í\91\97\90M\82³\82ê\82Ü\82¹\82ñ\81BSleep 
-= false\82É\82È\82Á\82½\82Æ\82«\82É\81A\91\97\90M\82³\82ê\8en\82ß\82Ü\82·\81B</p>
-<h3><code>TargetHWnd: THandle; [\93Ç/\8f\91][\90Ý/\8eÀ]</code><span class="direct">[DirectSSTP]</span></h3>
-<p>\83^\81[\83Q\83b\83g\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\90Ý\92è\82µ\82Ü\82·\81B</p>
-<h3><code>Handle: THandle; [\93Ç\82Ì\82Ý][\8eÀ\82Ì\82Ý]</code><span class="direct">[DirectSSTP]</span></h3>
-<p>FastSSTP\82Í\81A\93à\95\94\82Å\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b\82ð1\82Â\8dì\90¬\82µ\81A\82±\82ê\82ð\8eg\82Á\82ÄSSTP\83T\81[\83o\82ÆDirectSSTP\92Ê\90M\82ð\8ds\82¢\82Ü\82·\81B<br>
-\82±\82Ì\83v\83\8d\83p\83e\83B\82Í\81A\82»\82Ì\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82µ\82Ü\82·\81BDirectSSTP\82ÅSSTP\95\82ÌHWnd\82É\90Ý\92è\82³\82¹\82ê\82é\83n\83\93\83h\83\8b\82Å\82·\81B<br>
-\93Æ\8e©\82ÌSSTP\95\82ð\8dì\82è\82½\82¢\82Ì\82Å\82È\82¢\8cÀ\82è\81A\92¼\90Ú\97\98\97p\82·\82é\82±\82Æ\82Í\82 \82Ü\82è\82È\82¢\82Æ\8ev\82¢\82Ü\82·\81B</p>
-<h2>\83\81\83\\83b\83h</h2>
-<h3><code>function TFastSstp.SstpSEND(const Script: String;<br>
-const Option: TSstpSendOptions = []): TSstpResult; overload;</code></h3>
-<h3><code>function SstpSEND(const Script: TStrings;<br>
-const Option: TSstpSendOptions = [];<br>
-const Handle: HWND = 0): TSstpResult; overload;</code></h3>
-<p>SEND\83\8a\83N\83G\83X\83g\82ð\82·\82®\82É\91\97\90M\82µ\82Ü\82·\81B\8e©\93®\93I\82ÉSSTP\83T\81[\83o\82Æ\90Ú\91±\82µ\81ASEND\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\81A\83X\83e\81[\83^\83X\83R\81[\83h\82ð\8eó\82¯\8eæ\82è\82Ü\82·\81BScript\82É\82Í\81A\94F\8e¯\89Â\94\\82È\82³\82­\82ç\83X\83N\83\8a\83v\83g\96{\95\82ð\81AOption\82É\82Í\81Aset 
-of (soNoDescript, soNoTranslate)\82ð\93n\82µ\82Ü\82·\81B</p>
-<p>\83I\81[\83o\81[\83\8d\81[\83h\8aÖ\90\94\82Å\82·\82Ì\82Å\81A\88ø\90\94\82É\82æ\82Á\82Ä\93K\90Ø\82È\95û\82ª\8cÄ\82Î\82ê\82Ü\82·\81B</p>
-<p>\91æ1\82Ì\8cÄ\82Ñ\8fo\82µ\82Í\81A\88ø\90\94\82ÉString\8c^\82ð\8eæ\82é\81ASSTP/1.1\91\8a\93\96\82Ì\92P\8f\83\82ÈSEND\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\82Ü\82·\81B</p>
-<p>\91æ2\82Ì\8cÄ\82Ñ\8fo\82µ\82Í\81ASSTP/1.2\82¨\82æ\82Ñ1.3\82É\91Î\89\9e\82µ\82Ü\82·\81B\88ø\90\94\82ÉTStrings\8c^\82ð\8eæ\82è\82Ü\82·\81BScript: 
-TStrings\82Í\83\81\83\\83b\83h\93à\95\94\82Å\82Í\89ð\95ú\82³\82ê\82Ü\82¹\82ñ\82Ì\82Å\8e©\91O\82Å\89ð\95ú\8f\88\97\9d\82µ\82Ä\82­\82¾\82³\82¢\81BScript\82Ì1\8ds\96Ú(Script[0])\82ªScript\83G\83\93\83g\83\8a\82É\81A2\8ds\96Ú\88È\8d~\82ÍEntry\83G\83\93\83g\83\8a\82É\95Ï\8a·\82³\82ê\82Ä\91\97\90M\82³\82ê\82Ü\82·\81B</p>
-<p><span class="tcpip">[TCP/IP]</span> TCP/IP\82Å\91\97\90M\82·\82é\8fê\8d\87\81AHandle\82É0\88È\8aO\82Ì\92l\82ð\90Ý\92è\82·\82é\82Æ\81AHWnd\83G\83\93\83g\83\8a\82ª\91\97\90M\82³\82ê\82Ü\82·\81B\95s\97v\82È\82çHandle=0\82Æ\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<p><span class="direct">[DirectSSTP]</span> DirectSSTP\83\82\81[\83h\82Å\82Í\81AHandle\82Ì\92l\82ª\97D\90æ\82³\82ê\82Ü\82·\82ª\81A\82±\82ê\82ª\8fÈ\97ª\82³\82ê\82½\8fê\8d\87\82Å\82à\81A\83f\83t\83H\83\8b\83g\82ÌHWnd\83G\83\93\83g\83\8a\82ª\91\97\90M\82³\82ê\82Ü\82·(\93\96\91R)\81B</p>
-<p>\96ß\82è\92l\82ÍTSstpResult\97ñ\8b\93\8c^\82Ì\92l\82Å\82·\81B\83X\83e\81[\83^\83X\83R\81[\83h\82Ì\90\94\92l\8e©\91Ì\82Å\8c\8b\89Ê\82ð\92m\82è\82½\82¢\8fê\8d\87\82ÍStatusCode\83v\83\8d\83p\83e\83B\82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<ul>
-  <li>\91æ1\82Ì\8cÄ\82Ñ\8fo\82µ\82Ì\8fê\8d\87\81A\88ø\90\94\82ÌString\8c^\95Ï\90\94\82É\89ü\8ds\95\8e\9a(#13#10)\82ð\8aÜ\82ß\82È\82¢\82Å\82­\82¾\82³\82¢\81B
-  <li>\91æ2\82Ì\8cÄ\82Ñ\8fo\82µ\82Ì\8fê\8d\87\81A\88ø\90\94\82ÌTString\8c^\82Ì\8ae\8ds\82Ì\95\8e\9a\97ñ\82É\89ü\8ds\95\8e\9a\82ð\8aÜ\82ß\82È\82¢\82Å\82­\82¾\82³\82¢\81B
-  <li><span class="tcpip">[TCP/IP]</span> SSTP/1.2\88È\8d~\82Ì\8cÄ\82Ñ\8fo\82µ\82ð\8ds\82¤\8fê\8d\87\82Í\81A<em>\83^\83C\83\80\83A\83E\83g\8e\9e\8aÔ\82É\92\8d\88Ó\82µ\82Ä\82­\82¾\82³\82¢\81B</em>\83f\83t\83H\83\8b\83g\82Ì\83^\83C\83\80\83A\83E\83g\8e\9e\8aÔ\82Í1500ms\82Å\82·\82Ì\82Å\81A\82±\82Ì\8e\9e\8aÔ\82ð\89ß\82¬\82é\82ÆSSTP\83T\81[\83o\82©\82ç\82Ì\83\8c\83X\83|\83\93\83X\82ð\91Ò\82½\82¸\81A\8e©\95ª\82©\82ç\92Ê\90M\82ð\90Ø\92f\82µ\82Ä\82µ\82Ü\82¤\82±\82Æ\82É\82È\82è\82Ü\82·(\83X\83e\81[\83^\83X\83R\81[\83h\82ÍUnknownError\82Æ\82È\82è\82Ü\82·)\81B\91I\91ð\8e\88\82Ì\82 \82éSend\83\8a\83N\83G\83X\83g\82Ì\91O\82É\83^\83C\83\80\83A\83E\83g\8e\9e\8aÔ\82ð\8f\\95ª\92·\82¢\82à\82Ì(\8dÅ\92á10\95b\88È\8fã)\82É\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B
-  <li>\91I\91ð\8e\88\82ð\8aÜ\82Þ\83X\83N\83\8a\83v\83g\82ð\81Amateria\82Æ\82Ì\91g\82Ý\8d\87\82í\82¹\82Å\8eg\97p\82·\82é\8fê\8d\87\81Amateria\82ª\94½\89\9e\82ð\95Ô\82³\82È\82¢\82±\82Æ\82ª\82 \82è\82Ü\82·\81B(CROW, 
-    SSP\82ð\8f\89\82ß\82Æ\82µ\82½\82»\82Ì\91¼\82ÌSSTP\83T\81[\83o\82Å\82Í\82»\82Ì\82æ\82¤\82È\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ)<br>
-    \82±\82Ì\96â\91è\82ð\94ð\82¯\82é\82½\82ß\82É\82Í\81A\91I\91ð\8e\88\82ð\8aÜ\82Þ\83X\83N\83\8a\83v\83g\82ðmateria\82Å\8dÄ\90\82µ\82È\82¢\82æ\82¤\82É\82µ\82Ä\82­\82¾\82³\82¢\81B(\96â\91è\82Ì\8fC\90³\82É\82Í\91\97\90M\95\94\82Ì\83X\83\8c\83b\83h\89»\82ª\95K\97v\82Å\82·)</li>
-</ul>
-<h3><code>function TFastSstp.SstpSENDCue(const Script: String;<br>
-const HighPriority: boolean = false;<br>
-const Option: TSstpSendOptions = []): integer;</code></h3>
-<p>SEND\83\8a\83N\83G\83X\83g\82ð\81A\8dÄ\91\97\83\82\81[\83h\82Å\91\97\90M\82µ\82Ü\82·\81B\82±\82Ì\83\81\83\\83b\83h\82Å\8cÄ\82Ñ\8fo\82³\82ê\82½\8fê\8d\87\81A\82»\82Ì\83X\83N\83\8a\83v\83g\82Í\82·\82®\82É\82Í\91\97\90M\82³\82ê\82¸\81A\8dÄ\91\97\83L\83\85\81[(FSendCue)\82É\93ü\82è\82Ü\82·\81B\8dÄ\91\97\83L\83\85\81[\82É\91\97\82ç\82ê\82½\83X\83N\83\8a\83v\83g\82Í\81AInterval\83~\83\8a\95b\8aÔ\8au\82Å\81A\8e©\93®\93I\82ÉSSTP\83T\81[\83o\82É\91\97\90M\82³\82ê\82Ü\82·\81BInterval\83v\83\8d\83p\83e\83B\82à\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<p>HighPriority = true\82Ì\8fê\8d\87\81A\83L\83\85\81[\82Ì\90æ\93ª\82É\94z\92u\82³\82ê\82Ü\82·\82Ì\82Å\81A\82·\82®\82É\91\97\90M\82³\82ê\82Ü\82·\81Bfalse\82Ì\8fê\8d\87\82Í\81A\83L\83\85\81[\82Ì\8cã\82ë\91¤\82É\95t\82¯\91«\82³\82ê\82Ü\82·\81B</p>
-<p>\83L\83\85\81[\82ª\8bó\82¾\82Á\82½\8fê\8d\87\82ð\8f\9c\82«\81A\82·\82®\82É\91\97\90M\82³\82ê\82é\82í\82¯\82Å\82Í\82È\82¢\82Ì\82Å\81A\96ß\82è\92l\82ÍTSstpResult\8c^\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B\91ã\82í\82è\82É\81A\82»\82Ì\83\81\83b\83Z\81[\83W\82ð\8e¯\95Ê\82·\82éinteger\92l\82ªID\82Æ\82µ\82Ä\90\90¬\82³\82ê\81A\95Ô\82³\82ê\82Ü\82·\81B\8dÄ\91\97\82É\8aÖ\8cW\82·\82é\8ae\8eí\83C\83x\83\93\83g\82Í\81A\83\81\83b\83Z\81[\83W\82Ì\8dÄ\91\97\82Ì\82Æ\82«\82É\81A\82±\82ÌID\82ð\83p\83\89\83\81\81[\83^\82Æ\82µ\82Ä\93n\82µ\82Ü\82·\82Ì\82Å\81AID\82ð\8bL\89¯\82µ\82Ä\82¨\82­\8e\96\82Å\81A\83\81\83b\83Z\81[\83W\82ð\93¯\92è\82·\82é\82±\82Æ\82ª\89Â\94\\82Å\82·\81B</p>
-<h3><code>function TFastSstp.SstpEXECUTE(const Command: String): String;</code></h3>
-<p>EXECUTE\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\82Ü\82·\81B\8e©\93®\93I\82ÉSSTP\83T\81[\83o\82Æ\90Ú\91±\82µ\81AEXECUTE\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\81A\83X\83e\81[\83^\83X\83R\81[\83h\82Æ\92Ç\89Á\83f\81[\83^\82ð\8eó\82¯\8eæ\82Á\82½\82 \82Æ\90Ø\92f\82µ\82Ü\82·\81B</p>
-<p>\92Ç\89Á\83f\81[\83^\82ÍString\95Ï\90\94\82É\93ü\82Á\82Ä\82¢\82Ü\82·\81B</p>
-<p>\8aÖ\90\94\8cÄ\82Ñ\8fo\82µ\82ª\90¬\8c÷\82µ\82½\82©\82Ç\82¤\82©\82É\82Â\82¢\82Ä\82Í\81ALastStatus\83v\83\8d\83p\83e\83B\82Å\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h3><code>function TFastSstp.SstpCOMMUNICATE(const Sentence: String<br>
-&nbsp; const Port: integer = 0): TSstpResult;</code></h3>
-<p>COMMUNICATE/1.2\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\82Ü\82·\81BPort\82É0\82ð\8ew\92è\82·\82é(\88ø\90\94\82ð\8fÈ\97ª\82·\82ê\82Î\8e©\93®\93I\82É0\82É\82È\82è\82Ü\82·)\8fê\8d\87\81ACOMMUNICATE/1.1\91\8a\93\96\82Ì\83\8a\83N\83G\83X\83g\82Æ\82È\82è\82Ü\82·\81BPort\82É0\88È\8aO\82Ì\92l\82ð\8ew\92è\82·\82ê\82Î\81ACOMMUNICATE/1.2\91\8a\93\96\82Ì\83\8a\83N\83G\83X\83g\82Æ\82È\82è\82Ü\82·\81B</p>
-<ul>
-  <li>FastSSTP\82ÍSSTP\83N\83\89\83C\83A\83\93\83g\83R\83\93\83|\81[\83l\83\93\83g\82Å\82 \82è\81A\83T\81[\83o\8b@\94\\82Í\92ñ\8b\9f\82µ\82Ä\82¢\82Ü\82¹\82ñ\81B\82µ\82½\82ª\82Á\82Ä\81ACOMMUNIATE/1.2\82ð\8eÀ\8dÛ\82É\97L\8cø\82É\8eg\82¤\82É\82Í\81A\8c»\8fó\82Å\82Í\81A\91¼\82Ì\95û\96@\82ÅSSTP\83T\81[\83o\82ð\8dì\90¬\82·\82é\82µ\82©\82 \82è\82Ü\82¹\82ñ\81BSSTP\83T\81[\83o\8b@\94\\92ñ\8b\9f\82Í\96¢\92è\82Å\82·\81B</li>
-</ul>
-<h3><code>function TFastSstp.SstpGIVE(const Document: String): TSstpResult;</code></h3>
-<p>GIVE/1.0\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\82Ü\82·\81B\93à\95\94\82ÅSstpGIVE1_1\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82µ\82Ü\82·\81B\8cÝ\8a·\90«\82Ì\82½\82ß\82É\8ec\82Á\82Ä\82¢\82Ü\82·\82ª\81A\8eg\82Á\82Ä\82à\8d·\82µ\8ex\82¦\82 \82è\82Ü\82¹\82ñ\81B</p>
-<h3><code>function TFastSstp.SstpGIVE1_1(const Data: String;<br>
-const DataType: TGiveType = gtDocument): TSstpResult;</code></h3>
-<p>GIVE/1.1\83\8a\83N\83G\83X\83g\82ð\91\97\90M\82µ\82Ü\82·\81BDataType\82É\82Í\81AgtDocument\82Ü\82½\82ÍgtSongname\82ð\93n\82µ\82Ü\82·\81B<br>
-Data\83p\83\89\83\81\81[\83^\82É\81A\82»\82ê\82É\89\9e\82\82½\83f\81[\83^\82ð\93n\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<p>\96ß\82è\92l\82Í\83T\81[\83o\82©\82ç\82Ì\89\9e\93\9a\82Å\82·\81B</p>
-<h3><code>function TFastSstp.SstpExGetName: String;</code></h3>
-<p>EXECUTE\83\81\83\\83b\83h\82Ågetname\83R\83}\83\93\83h\82ð\94­\8ds\82µ\81A\82»\82Ì\8c\8b\89Ê\82Ì\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B</p>
-<h3><code>function TFastSstp.SstpExSetCookie(const Key, Value: String): 
-TSstpResult;</code></h3>
-<p>EXECUTE\83\81\83\\83b\83h\82ÅSetCookie\83R\83}\83\93\83h\82ð\94­\8ds\82µ\82Ü\82·\81B<br>
-\95¡\90\94\8ds\82Ì\83f\81[\83^\82É\82Í\91Î\89\9e\82µ\82Ü\82¹\82ñ(\82Â\82Ü\82è\81A#13#10\82ª\8aÜ\82Ü\82ê\82é\83f\81[\83^\82Ì\89ü\8ds\82Í\8e©\93®\93I\82É\8fÁ\82µ\82Ü\82·)</p>
-<h3><code>function TFastSstp.SstpExGetCookie(const Key: String): String;</code></h3>
-<p>EXECUTE\83\81\83\\83b\83h\82ÅGetCookie\83R\83}\83\93\83h\82ð\94­\8ds\82µ\81A\82»\82Ì\8c\8b\89Ê\82Ì\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B<br>
-\95¡\90\94\8ds\82Ì\83f\81[\83^\82É\82Í\91Î\89\9e\82µ\82Ü\82¹\82ñ(\82Â\82Ü\82è\81A#13#10\82ª\8aÜ\82Ü\82ê\82é\83f\81[\83^\82Ì\89ü\8ds\82Í\8e©\93®\93I\82É\8fÁ\82µ\82Ü\82·)</p>
-<h3><code>function TFastSstp.SstpExGetVersion: String;</code></h3>
-<p>EXECUTE\83\81\83\\83b\83h\82ÅGetVersion\82ð\94­\8ds\82µ\81A\83X\83e\81[\83^\83X\83R\81[\83h\82ð\95Ô\82µ\82Ü\82·\81B</p>
-<h3><code>function TFastSstp.SstpExQuiet(const Quiet: boolean): TSstpResult;</code></h3>
-<p>EXECUTE\83\81\83\\83b\83h\82ÅQuiet\82Ü\82½\82ÍRestore\82ð\94­\8ds\82µ\81A\83X\83e\81[\83^\83X\83R\81[\83h\82ð\95Ô\82µ\82Ü\82·\81B<br>
-Quiet = true\82ÅQuiet, Quiet = false\82ÅRestore\82ð\94­\8ds\82Å\82·\81B</p>
-<h3><code>procedure ClearCue;</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82É\93ü\82Á\82Ä\82¢\82é\83\81\83b\83Z\81[\83W\82ð\91S\95\94\8dí\8f\9c\82µ\82Ü\82·\81B</p>
-<h2>\83C\83x\83\93\83g</h2>
-<h3><code>OnResendResend</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82Ì\83\81\83b\83Z\81[\83W\82Ì\91\97\90M\82É\8e¸\94s\82µ\81A\82»\82Ì\83\81\83b\83Z\81[\83W\82ð\82à\82¤\88ê\93x\8cã\82Å\91\97\82è\82È\82¨\82·\82Æ\8c\88\92è\82³\82ê\82½\82Æ\82«\82É\94­\90\82µ\82Ü\82·\81B<br>
-\82±\82Ì\83C\83x\83\93\83g\83n\83\93\83h\83\89\82Ì\92\86\82Å\81ALastStatus, StatusCode\82É\83A\83N\83Z\83X\82Å\82«\82Ü\82·\81B</p>
-<h3><code>OnResendEnd</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82Ì\83\81\83b\83Z\81[\83W\82Ì\91\97\90M\82É\90¬\8c÷\82µ\81A\82»\82Ì\83\81\83b\83Z\81[\83W\82ð\8dÄ\91\97\83L\83\85\81[\82©\82ç\8dí\8f\9c\82·\82é\82Æ\82«\82É\94­\90\82µ\82Ü\82·\81B<br>
-\82±\82Ì\83C\83x\83\93\83g\83n\83\93\83h\83\89\82Ì\92\86\82Å\81ALastStatus, StatusCode\82É\83A\83N\83Z\83X\82Å\82«\82Ü\82·\81B</p>
-<h3><code>OnResendTrying</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82Ì\83\81\83b\83Z\81[\83W\82Ì\91\97\90M\92¼\91O\82É\94­\90\82µ\82Ü\82·\81B</p>
-<h3><code>OnResendCountChange</code></h3>
-<p>\8dÄ\91\97\83L\83\85\81[\82Ì\93o\98^\90\94\82ª\95Ï\82í\82Á\82½\92¼\8cã\82É\94­\90\82µ\82Ü\82·\81B\93o\98^\90\94\82Í\81ACueCount\83v\83\8d\83p\83e\83B\82Å\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h3><code>OnAfterConnection</code></h3>
-<p>\91S\82Ä\82ÌSSTP\83\8a\83N\83G\83X\83g\82ª\91\97\90M\82µ\8fI\82í\82Á\82½\92¼\8cã\82É\94­\90\82µ\82Ü\82·\81BRecvLog, 
-SentLog, LastStatus, StatusCode\82Ì\8ae\83v\83\8d\83p\83e\83B\82É\83A\83N\83Z\83X\82Å\82«\82Ü\82·\81BSSTP\95\82Ì\94­\8ds\89ñ\90\94\82Ì\83J\83E\83\93\83g\82­\82ç\82¢\82É\82Í\8eg\82¦\82é\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B<br>
-\93à\95\94\8f\88\97\9d\82ª\88á\82¤\82Ì\82Å\81ASstpExTimeOut\82Ì\8fê\8d\87\82É\82Í\94­\90\82µ\82Ü\82¹\82ñ\81B</p>
-<h2>\97á</h2>
-<p>\90V\8bK\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð1\82Â\8dì\90¬\82µ\81A\83t\83H\81[\83\80\82ÉTFastSstp\82ð1\82Â\94z\92u\82µ\82Ü\82·\81BSenderName\83v\83\8d\83p\83e\83B\82É\81A\93K\93\96\82È\96¼\91O\82ð\95t\82¯\82Ä\82 \82°\82Ä\82­\82¾\82³\82¢\81B\83t\83H\81[\83\80\82ÌOnCreate\83C\83x\83\93\83g\82É\8e\9f\82Ì\82æ\82¤\82É\8f\91\82«\82Ü\82·\81B</p>
-<pre><code>procedure TForm1.Form1OnCreate(Sender: TObject);
-begin
-  FastSstp1.SstpSEND('\s0\h\83e\83X\83g\83v\83\8d\83O\83\89\83\80\82ª\8bN\93®\82µ\82½\82æ\81B\e', [soNoDescript]);
-end;</code></pre>
-<p>\82 \82Æ\82Í\82±\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8eÀ\8ds\82·\82é\82¾\82¯\82Å\82·\81B</p>
-<h2>\8dÄ\91\97\82É\82Â\82¢\82Ä\82Ì\91S\94Ê\93I\92\8d\88Ó</h2>
-<ul>
-  <li>Interval\82ð\8f¬\82³\82È\92l\82É\82µ\82·\82¬\82È\82¢\82æ\82¤\82É\8bC\82ð\82Â\82¯\82Ä\82­\82¾\82³\82¢\81B
-  <li>\8dÄ\91\97\82ª\8ds\82í\82ê\82½\82Æ\82«\81ARecvLog, SentLog, LastStatus, StatusCode\82Ì\8ae\83v\83\8d\83p\83e\83B\82Í\95Ï\89»\82µ\82Ü\82·\81B\82µ\82½\82ª\82Á\82Ä\81ASstpSENDCue\83\81\83\\83b\83h\82Æ\81A\91¼\82ÌSSTP\83\81\83\\83b\83h\82ð\95¹\97p\82·\82é\8fê\8d\87\82Í\81A\82±\82ê\82ç\82Ì\83v\83\8d\83p\83e\83B\82É\83A\83N\83Z\83X\82·\82é\91O\82É\8dÄ\91\97\82ª\8en\82Ü\82ç\82È\82¢\82æ\82¤\82É\92\8d\88Ó\82µ\82Ä\82­\82¾\82³\82¢\81B\97á\82¦\82Î\81A\83{\83^\83\93\82ÌOnClick\83C\83x\83\93\83g\82ÅSstpCOMMUNICATE\83\81\83\\83b\83h\82ð\97\98\97p\82µ\82½\8fê\8d\87\82Í\81ALastStatus\93\99\82Ì\83v\83\8d\83p\83e\83B\82É\82Í\81A\82»\82ÌOnClick\83C\83x\83\93\83g\93à\82Å\82Ì\82Ý\83A\83N\83Z\83X\82·\82é\82©\81A\82±\82ê\82ç\82Ì\83v\83\8d\83p\83e\83B\82Ì\92l\82ª\95K\97v\82È\82­\82È\82é\82Ü\82Å\81ASleep 
-    := true\82É\82·\82é\82æ\82¤\82É\82µ\82Ü\82·\81B(\8dÄ\91\97\8b@\94\\82ð\88ê\90Ø\8ds\82í\82È\82¢\8fê\8d\87\82Í\8bC\82É\82·\82é\95K\97v\82Í\82 \82è\82Ü\82¹\82ñ)
-  <li>\8dÄ\91\97\8b@\94\\82ð\8eg\82Á\82½\8fê\8d\87\81A\8f\87\94Ô\82Í\95Û\8e\9d\82³\82ê\82Ü\82·\81B\82Â\82Ü\82è\81A\82 \82Æ\82©\82ç\91\97\82Á\82½\83\81\83b\83Z\81[\83W\82Í\95K\82¸\90æ\82É\91\97\82Á\82½\83\81\83b\83Z\81[\83W\82æ\82è\8cã\82É\93Í\82«\82Ü\82·\81B\82ª\81ASstpSENDCue\82ð\8eg\82Á\82Ä\91\97\90M\82µ\82½\83\81\83b\83Z\81[\83W\82Æ\83\81\83b\83Z\81[\83W\82Ì\8aÔ\82É\81A\91¼\82ÌSSTP\91Î\89\9e\83\\83t\83g\82â\81A\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\8e©\90g\82©\82ç\82Ì\81A\95Ê\82Ì\83\81\83b\83Z\81[\83W\82ª\8b²\82Ü\82Á\82Ä\93Í\82­\89Â\94\\90«\82Í\8f\\95ª\82 \82è\82Ü\82·\82Ì\82Å\92\8d\88Ó\82µ\82Ä\82­\82¾\82³\82¢\81BQuiet\82ð\95¹\97p\82·\82é\8eè\82à\82 \82è\82Ü\82·\82ª\81B</li>
-</ul>
-
-</body>
-
-</html>
diff --git a/sakurasuite/manual/index.html b/sakurasuite/manual/index.html
deleted file mode 100644 (file)
index dbcbd2f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>Sakura Component Suite</h1>
-<p>
-\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\8fW\82Í\81A\8ef\82©\81ACROW\81ASSP\93\99\82Ì\83L\83\83\83\89\83N\83^\83G\81[\83W\83F\83\93\83g\83\\83t\83g(\88È\89º\81A\82±\82ê\82ç\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\81u\8ef\82©\8cÝ\8a·\83x\81[\83X\83E\83F\83A\81v\82Æ\8cÄ\82Ñ\82Ü\82·)\8aÖ\98A\82Ì\83\86\81[\83e\83B\83\8a\83e\83B\93I\82È\93®\8dì\82ð\8eÀ\8c»\82·\82é\83R\83\93\83|\81[\83l\83\93\83g\8fW\82Å\82·\81B\82Ü\82½\81ASSTP  
-Bottle ( <a href="http://bottle.mikage.to">http://bottle.mikage.to</a>  
-)\97p\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82à\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B</p> 
-<p>\82©\82È\82è\8eG\91½\82Å\82·\81B</p>
-<h2>\83R\83\93\83|\81[\83l\83\93\83g\88ê\97\97</h2>
-<h3><a href="sakuraseeker.html">TSakuraSeeker</a></h3>
-<p>TSakuraSeeker\82Í\81AFMO\82ð\8eæ\93¾\82µ\82Ä\81A\8aù\91\82Ì\8ef\82©\8cÝ\8a·\83V\83X\83e\83\80\82Ì\83v\83\8d\83Z\83X\82ð\94­\8c©\82µ\82Ü\82·\81B</p>
-<h3><a href="ssparser.html">TSsParser</a></h3>
-<p>TSsParser\82Í\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\89ð\90Í\97p\82Ì\83p\81[\83T\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\8d\82\91¬\82É\89ð\90Í\82µ\82Ü\82·\81B</p>
-<h3><a href="ssplaytime.html">TSsPlayTime, TSsPlayTimeParams</a></h3>
-<p>\82±\82ê\82ç\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82É\82æ\82Á\82Ä\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\8dÄ\90\82É\82©\82©\82é\8e\9e\8aÔ\82ð\97\\91ª\82·\82é\82±\82Æ\82ª\89Â\94\\82Å\82·\81B</p>
-<h3><a href="sakurascriptfountain.html">TSakuraScriptFountain</a></h3>
-<p>TSakuraScriptFountain\82Í\81A\96{\93c\8f\9f\95F\8e\81\8dì\82Ì\83R\83\93\83|\81[\83l\83\93\83g\81ATEditor\97p\82Ì\95\8e\9a\97ñ\89ð\90Í\83p\81[\83T(TFountain)\82Å\82·\81B</p>
-<p>TEditor\82¨\82æ\82ÑTSsParser\82Æ\91g\82Ý\8d\87\82í\82¹\82Ä\8eg\82¤\82±\82Æ\82Å\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\8fu\8aÔ\82É\90F\95ª\82¯\81E\8d\\95\8b¦\92²\82µ\82Ä\95\\8e¦\82·\82é\83G\83f\83B\83^\82ð\81A\83R\81[\83h\83\8c\83X\82Å\8eÀ\8c»\82Å\82«\82Ü\82·\81B</p>
-<p>RichEdit\82ð\97\98\97p\82µ\82Ä\8e©\95ª\82Å\95`\89æ\82·\82é\82æ\82è\83_\83\93\83g\83c\82Å\8d\82\91¬\82Å\82·\81B</p>
-<h3><a href="directsstp.html">TDirectSSTP</a></h3>
-<p>TDirectSSTP\82Í\81ADirectSSTP\92Ê\90M\82ð\8ds\82¢\82Ü\82·\81B</p>
-<h3><a href="slpp20.html">TIdSLPP20</a></h3>
-<p>SSTP Bottle \83T\81[\83r\83X\82É\90Ú\91±\82·\82éSLPP\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B</p> 
-<h2>\90§\8dì\8aÂ\8b«</h2>
-<p>Borland Delphi Studio 7 Professional</p> 
-<p>\82±\82¿\82ç\82Å\83R\83\93\83p\83C\83\8b\82Å\82«\82é\82±\82Æ\82ð\8am\94F\82µ\82Ä\82¢\82é\82Ì\82ÍBorland Delphi 6 Personal\94Å\82Å\82·\81BDelphi 5\82Å\82à\91½\95ª\93®\82­\82Æ\8ev\82¢\82Ü\82·\81B</p> 
-<h2>\83\89\83C\83Z\83\93\83X</h2>
-<p>\82±\82Ì\83A\81[\83J\83C\83u\82É\8aÜ\82Ü\82ê\82é\82·\82×\82Ä\82Ì\83\\81[\83X\83R\81[\83h\81A\82¨\82æ\82Ñ\83h\83L\83\85\83\81\83\93\83g\82Í\83t\83\8a\81[\83\\83t\83g\83E\83F\83A\82Æ\82µ\82Ü\82·\81B</p>
-<p>
-\83\\81[\83X\83R\81[\83h\8c`\8e®\81E\83o\83C\83i\83\8a\8c`\8e®\82É\82æ\82é\82 \82ç\82ä\82é\97\98\97p\81E\8dÄ\94z\95z\81E\89ü\91¢\81E\8dÄ\83p\83b\83P\81[\83W\83\93\83O\81E\8dÄ\83\89\83C\83Z\83\93\83X\81E\94Ì\94\84\82Í\81A\89ü\95Ï\82Ì\97L\96³\82É\8aÖ\82í\82ç\82¸\81A\88È\89º\82Ì\8fð\8c\8f\82Ì\82à\82Æ\82Å\8ds\82Á\82Ä\82­\82¾\82³\82¢\81B</p>
-<ul>
-  <li>
-  \82·\82×\82Ä\82Í\8c»\8fó\82Ì\82Ü\82Ü\94z\95z\82³\82ê\82é\82à\82Ì\82Å\82 \82è\81A\93®\8dì\82µ\82½\81A\82 \82é\82¢\82Í\93®\8dì\82µ\82È\82©\82Á\82½\8c\8b\89Ê\82É\82æ\82é\81A\95¨\8e¿\93I\81E\90l\93I\81E\93d\8eq\93I\81E\8co\8dÏ\93I\81E\82»\82Ì\91¼\88ê\90Ø\82Ì\94j\91¹\81E\91¹\8aQ\81E\91¹\8e¸\82É\82Â\82¢\82Ä\8c´\8dì\8eÒ(naruto/CANO-Lab)\82Í\89½\82ç\82Ì\90Ó\94C\82ð\95\89\82¢\82Ü\82¹\82ñ\81B</li>
-</ul>
-<p>\8dì\8eÒ\82Í\83T\83|\81[\83g\81E\83o\83O\82Ì\8fC\90³\82È\82Ç\82ð\81A\89Â\94\\82È\82ç\8ds\82¢\82Ü\82·\82ª\8b`\96±\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/sakurasuite/manual/sakuraprocess.html b/sakurasuite/manual/sakuraprocess.html
deleted file mode 100644 (file)
index 71a0311..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<title>\90V\82µ\82¢\83y\81[\83W 0</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TSakuraProcess</h1>
-<h2>\8aT\97v</h2>
-<p>TSakuraSeeker\82Ì\81A\83v\83\8d\83Z\83X\82ð\8eæ\93¾\82·\82é\83v\83\8d\83p\83e\83B\82ª\95Ô\82·\82à\82Ì\82Å\81A\92P\88ê\82Ì\8ef\82©\8cÝ\8a·\83V\83X\83e\83\80\82Ì\83v\83\8d\83Z\83X\82ð\95\\8c»\82µ\82Ü\82·\81B</p>
-<p>TSakuraSeeker\82É\82æ\82Á\82Ä\8e©\93®\93I\82É\8aÇ\97\9d\82³\82ê\82Ü\82·\82Ì\82Å\81ACreate, Free\82µ\82È\82¢\82Å\82­\82¾\82³\82¢\81B</p> 
-<h2>\8cp\8f³</h2>
-<p>TObject - TSakuraProcess</p> 
-<h2>\8eQ\8fÆ</h2>
-<p><a href="sakuraseeker.html">TSakuraSeeker</a></p>
-<h2>\8aÈ\92P\82È\8eg\97p\97á</h2>
-<p><a href="sakuraseeker.html">TSakuraSeeker</a>\8eQ\8fÆ</p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X - \83v\83\8d\83p\83e\83B</h2>
-<dl>
-  <dt>property ProcessID: String</dt> 
-  <dd>\83v\83\8d\83Z\83XID\82Å\82·\81B\82½\82¾\82µ\81A\93\96\8f\89\82Ì\8ed\97l\82Å\82Í\83v\83\8d\83Z\83X\83n\83\93\83h\83\8b\82ÌMD5\92l\82Å\82·\82ª\81AMateria\88È\8aO\82Ì\91½\83S\81[\83X\83g\91Î\89\9e\8aÂ\8b«SSTP\83T\81[\83o\82Å\82Í\8ag\92£\82³\82ê\82Ä\82¢\82Ü\82·\81B\97v\82·\82é\82É\83S\81[\83X\83g(\83v\83\8d\83Z\83X\82Å\82Í\82È\82­)\82²\82Æ\82É\83\86\83j\81[\83N\82Å\82 \82é\89½\82ç\82©\82Ì\95\8e\9a\97ñ\92l\82ª\93ü\82Á\82Ä\82¢\82é\81A\82Æ\8dl\82¦\82Ä\82­\82¾\82³\82¢\81B<br>
-  \83\86\81[\83U\82ª\91ã\93ü\82Í\82Å\82«\82Ü\82·\82ª\82»\82¤\82·\82é\82±\82Æ\82É\88Ó\96¡\82Í\82 \82è\82Ü\82¹\82ñ\81B</dd>
-  <dt>property FMOName: String</dt>
-  <dd>FMO\8e¯\95Ê\96¼\82Å\82·\81B\8aî\96{\93I\82É\81uSakura\81v\82ª\93ü\82è\82Ü\82·\82ª\81A\91¼\82ÌFMO\82©\82ç\83v\83\8d\83Z\83X\82ð\93Ç\82Ý\8eæ\82Á\82½\8fê\8d\87\82É\82Í\82»\82ê\82ª\93ü\82è\82Ü\82·\81B<code>TSakuraSeeker.FileMappingTarget</code> 
-  \83v\83\8d\83p\83e\83B\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</dd>
-  <dt>property HWnd: THandle</dt>
-  <dd>\83v\83\8d\83Z\83X\82Ì\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b\82Å\82·\81B\8c»\8dÝ\82Ì\91½\82­\82ÌSSTP\83T\81[\83o\82Ì\8aÂ\8b«\82Å\82Í1\82Â\82Ì\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b\82Å\91½\90\94\82Ì\83S\81[\83X\83g\82ÌSSTP\82ð\8eó\90M\82·\82é\82±\82Æ\82ª\89Â\94\\82É\82È\82Á\82Ä\82¢\82Ü\82·\82Ì\82Å\81A\82±\82ê\82ð\83L\81[\82É\92l\82ð\8c\9f\8dõ\82·\82é\82æ\82¤\82È\8eÀ\91\95\82Í\8ds\82í\82È\82¢\82Å\82­\82¾\82³\82¢\81B</dd>
-  <dt>property Name: String</dt>
-  <dd>\83S\81[\83X\83g\82Ì\96{\91Ì\91¤(\83X\83R\81[\83v0\91¤)\82Ì\96¼\91O\82Å\82·\81B<code>Data['name']</code> \82Æ\93¯\93\99\82Å\82·\81B<br>
-  \83\86\81[\83U\82ª\8f\91\82«\8d\9e\82Ý\82Í\82Å\82«\82Ü\82·\82ª\82»\82¤\82·\82é\88Ó\96¡\82Í\82Ü\82¸\82 \82è\82Ü\82¹\82ñ\81B</dd>
-  <dt>property KeroName: String</dt>
-  <dd>\83S\81[\83X\83g\82Ì\82¤\82É\82ã\82¤\91¤(\83X\83R\81[\83v1\91¤)\82Ì\96¼\91O\82Å\82·\81B<code>Data['keroname']</code> \82Æ\93¯\93\99\82Å\82·\81B<br>
-  \83\86\81[\83U\82ª\8f\91\82«\8d\9e\82Ý\82Í\82Å\82«\82Ü\82·\82ª\82»\82¤\82·\82é\88Ó\96¡\82Í\82Ü\82¸\82 \82è\82Ü\82¹\82ñ\81B</dd>
-  <dt>property SetName: String</dt>
-  <dd>\96{\91Ì\91¤\82Æ\82¤\82É\82ã\82¤\91¤\82Ì\96¼\91O\82ð\83R\83\93\83}\82Å\8c\8b\8d\87\82µ\82½\82à\82Ì\82ð\95Ô\82µ\82Ü\82·\81B</dd>
-  <dt>property Data[Key: String]: String</dt>
-  <dd>\83v\83\8d\83Z\83X\82Ì\83G\83\93\83g\83\8a\96¼\82©\82ç\92¼\90Ú\92l\82ð\8eæ\93¾\82µ\82Ü\82·\81B</dd>
-  <dt>property Count: integer read GetCount;<br>
-  property DataAt[Index: integer]: String<br>
-  property KeyAt[Index: integer]: String</dt>
-  <dd>\82±\82ê\82ç\82Í\81A\82·\82×\82Ä\82Ì\83G\83\93\83g\83\8a\96¼\82ð\8f\87\94Ô\82É\91\96\8d¸\82µ\82½\82¢\8fê\8d\87\82É\8eg\97p\82Å\82«\82Ü\82·\81B\82»\82ê\82¼\82ê\93Ç\82ñ\82Å\8e\9a\82Ì\82²\82Æ\82­\82Å\82·\81B\93Ç\82Ý\8eæ\82è\90ê\97p\83v\83\8d\83p\83e\83B\82Å\82·\81B</dd>
-</dl>
-
-</body>
-
-</html>
diff --git a/sakurasuite/manual/sakurascriptfountain.html b/sakurasuite/manual/sakurascriptfountain.html
deleted file mode 100644 (file)
index 43011a3..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<title>TSakuraScriptFountain</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TSakuraScriptFountain</h1>
-<h2>\8aT\97v</h2>
-<p><code>TSsParser</code>\82Æ\8b¦\92²\82µ\82Ä\93®\82­\81A<code>TEditor</code>\97p\95\8e\9a\97ñ\89ð\90Í\83p\81[\83T\82Å\82·\81B</p>
-<p><code>TEditor</code>\82Í\96{\93c\8f\9f\95F\8e\81\8dì\90¬\82Ì\83G\83f\83B\83^\83R\83\93\83|\81[\83l\83\93\83g\82Å\81A\82½\82Æ\82¦\82ÎDelphi\82Ì\83\\81[\83X\83R\81[\83h\83G\83f\83B\83^\95\94\95ª\82Ì\82æ\82¤\82È\82à\82Ì\82ª\8aÈ\92P\82É\8eÀ\91\95\82Å\82«\82Ü\82·\81B\8fÚ\8d×\82Í   
-<a href="http://member.nifty.ne.jp/~katsuhiko/">
-http://member.nifty.ne.jp/~katsuhiko/</a> \82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</p>  
-<p><code>TSakuraScriptFountain</code> 
-\82ð\8eg\82¤\82Æ\81A\8e©\93®\82Å\8d\\95\82ª\8b­\92²\95\\8e¦\82³\82ê\82é\82³\82­\82ç\83X\83N\83\8a\83v\83g\83G\83f\83B\83^\82ª\81A\8aÈ\92P\82É\8eÀ\91\95\82Å\82«\82Ü\82·\81B</p>  
-<p>
-\8ae\8eí\82Ì\9ex\82Ì\8eÀ\91\95\82É\82¨\82¢\82Ä\83\86\81[\83U\82ª\97\98\97p\82·\82é\81A\97l\81X\82È\82³\82­\82ç\83X\83N\83\8a\83v\83g\8ed\97l\8aO\82Ì\83}\81[\83N\83A\83b\83v\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82Ü\82¹\82ñ\81B(\93K\93\96\82É\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82ð\8cp\8f³\82µ\82Ä\8eg\82¤\95K\97v\82ª\82 \82è\82Ü\82·)</p>
-<h2>\8aî\96{\93I\82È\8eg\82¢\95û</h2>
-<p><code>TSsParser</code>\82ð\83t\83H\81[\83\80\82É\93\\82è\95t\82¯\82Ü\82·\81B\8dÅ\92á\8cÀ\81A<code>MetaPattern</code>,  
-<code>TagPattern</code>\82Ì\97¼\95û\82ð\92è\8b`\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B<code>EscapeInvalidMeta, 
-LeaveEscape</code>\82Ì\8ae\83v\83\8d\83p\83e\83B\82Ì\90Ý\92è\82Í\81A\82Ç\82Ì\82æ\82¤\82É\82µ\82Ä\82¢\82Ä\82à\96â\91è\82 \82è\82Ü\82¹\82ñ\81B</p>
-<p><code>TSakuraScriptFountain</code>\82ð\83t\83H\81[\83\80\82É\93\\82è\95t\82¯\82Ü\82·\81B\83I\83u\83W\83F\83N\83g\83C\83\93\83X\83y\83N\83^\82Å\81A<code>SsParser</code>\83v\83\8d\83p\83e\83B\82É\81A\90æ\82Ù\82Ç\93\\82è\95t\82¯\82½<code>SsParser</code>\82ð\91I\91ð\82µ\82Ü\82·\81B\82Ü\82½\81A\90F\82â\83t\83H\83\93\83g\82É\8aÖ\82·\82é\8ae\8eí\83v\83\8d\83p\83e\83B\82ð\95Ò\8fW\82µ\82Ü\82·\81B</p>
-<p><code>TEditor</code>\82ð\83t\83H\81[\83\80\82É\93\\82è\95t\82¯\82Ü\82·\81B\83I\83u\83W\83F\83N\83g\83C\83\93\83X\83y\83N\83^\82Å\81A<code>Fountain</code>\83v\83\8d\83p\83e\83B\82É\81A\90æ\82Ù\82Ç\93\\82è\95t\82¯\82½<code>SakuraScriptFountain</code>\82ð\91I\91ð\82µ\82Ü\82·\81B</p>
-<p>\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8eÀ\8ds\82µ\82Ü\82·\81B</p>
-<h2>\92\8d\88Ó</h2>
-<p><code>TSsParser</code>\82ð\93à\95\94\82Å\97\98\97p\82µ\82Ü\82·\82ª\81A<code>InputString</code>\82È\82Ç\82Ì\92\86\90g\82Í\95Ï\8dX\82³\82ê\82Ü\82¹\82ñ\81B\91¼\82Ì\96Ú\93I\82Å\83t\83H\81[\83\80\82É   
-<code>TSsParser</code> \82ð\93\\82è\95t\82¯\82Ä\97\98\97p\82µ\82Ä\82¢\82é\8fê\8d\87\82É\82Í\81A<code>TEditor.Fountain</code>   
-\82Æ\82µ\82Ä\82»\82ê\82ð\8eQ\8fÆ\82µ\82Ä\82à\81A\8aù\91\82Ì\83R\81[\83h\82Ö\82Ì\89e\8b¿\82Í\82 \82è\82Ü\82¹\82ñ\81B</p>  
-<p><code>SakuraScriptFountain</code>\82Ì\83^\83O\82Ì\89ð\8eß\82Í<code>TSsParser</code>\82É\88Ë\91\82µ\82Ü\82·\81B<code>TagPattern</code>\82ð\82ë\82­\82É\90Ý\92è\82¹\82¸\81A\h\82â\u\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82È\82¢\81A\82Æ\82¢\82Á\82½\8fó\8bµ\82Ì\82Ü\82Ü\82Å\82Í\88ê\90Ø\82Ì\90F\95ª\82¯\82ª\82³\82ê\82Ü\82¹\82ñ\81B</p>  
-<h3>\_s\83^\83O\8eü\82è\82É\82Â\82¢\82Ä</h3>  
-<p><code>TSakuraScriptFountain</code>\82Å\82Í\81A<code>\_s</code>\83^\83O\82Í\81u\88Í\82Þ\83^\83O\81v\82Å\82 \82é\82Æ\89ð\8eß\82µ\82Ä\82¨\82è\81A<code>\_s</code>\82É\82æ\82é\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82Í\81A<code>\0</code>\82â<code>\1</code>\82É\82æ\82é\83X\83R\81[\83v\82æ\82è\97D\90æ\8f\87\88Ê\82ª\8d\82\82­
-\81A\82©\82Â\93Æ\97§\82µ\82½\88ê\8eí\82Ì\8fó\91Ô\82Å\82 \82é\81A\82Æ\89ð\8eß\82µ\82Ü\82·\81B\82Â\82Ü\82è\81A\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\8fó\91Ô\82Í\81A<code>\0</code>\82â<code>\1</code>\82Å\82Í\89ð\8f\9c\82³\82ê\82¸\81A\82Ü\82½\_s\93à\82É\82¨\82¢\82Ä<code>\0</code>\82â<code>\1</code>\83^\83O\82ª\91\8dÝ\82µ\82½\8fê\8d\87\81A\82»\82ê\82ç\82Í\92P\8f\83\82É\81u\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82ð\8fo\82½\8cã\82Ì\83X\83R\81[\83v\82ð\8c\88\92è\82·\82é\81v\82¾\82¯\82Å\82·\81B</p>  
-<p>\82±\82Ì\89ð\8eß\82Í2003\94N6\8c\8e\8c»\8dÝ\82Ìmateria\81ASSP\81ACROW(\82Æ\81A\91¼\82Ì\91½\82­\82ÌSakuraScript\8f\88\97\9d\8cn)\82Ì\8ae\8dÅ\90V\94Å\82É\8f\80\8b\92\82Æ\82È\82Á\82Ä\82¢\82Ü\82·\82ª\81A\88ê\95\94\82Ì\8cÃ\82¢\8f\88\97\9d\8cn\82Å\82Í\81A<code>\0</code>\82â<code>\1</code>\82É\82æ\82Á\82Ä\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82Ì\8fó\91Ô\82É\89e\8b¿\82ð\97^\82¦\82é\8b\93\93®\82ð\82µ\82Ä\82¢\82é\82à\82Ì\82ª\82 \82è\82Ü\82·\81B</p>  
-<p>\82Ü\82½\81A2003\94N6\8c\8e\8c»\8dÝ\8dÅ\90V\94Å\82Å\82 \82émateria583\82Å\82Í\81A\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\92\86\82É<code>\0</code>\82â<code>\1</code>\82ª\8c»\82ê\82½\8fê\8d\87\82É\8cë\93®\8dì\82·\82é\81A\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82Ì\96¾\8e¦\93I\82È\89ð\8f\9c\8cã\82É\83X\83R\81[\83v\82ª\95s\92è\82Æ\82È\82é\81A\82Æ\82¢\82Á\82½\83o\83O\82ª\91\8dÝ\82µ\82Ü\82·\81B(\82±\82ê\82ç\82Í\96¾\82ç\82©\82É\83o\83O\82Æ\8ev\82í\82ê\82é\8b\93\93®\82Å\82 \82é\82½\82ß<code>TSakuraScriptFountain</code>\82Å\82±\82ê\82ç\82Ì\93®\8dì\82ð\8dÄ\8c»\82·\82é\97\\92è\82Í\82 \82è\82Ü\82¹\82ñ)</p>  
-<h2>\83\8a\83t\83@\83\8c\83\93\83X - \83v\83\8d\83p\83e\83B</h2>  
-<dl>
-  <dt>property Scope0Color: TFountainColor read FScope0Color write  
-    SetScope0Color;<br>
-    property Scope1Color: TFountainColor read FScope1Color write SetScope1Color;</dt> 
-  <dd>
-\82»\82ê\82¼\82ê\81A\83X\83R\81[\83v0(\96{\91Ì\91¤;\h\91¤;\0\91¤)\81A\83X\83R\81[\83v1(\82¤\82É\82ã\82¤\91¤;\u\91¤;\1\91¤)\82Å\82Ì\89ï\98b\95\8e\9a\97ñ\82Ì\90F\82ð\8ew\92è\82µ\82Ü\82·\81B
-
-  </dd>
-  <dt>property TagColor: TFountainColor read FTagColor write SetTagColor;</dt>
-  <dd>\83^\83O\82Ì\90F\82ð\8ew\92è\82µ\82Ü\82·</dd>
-  <dt>property TagErrorColor: TFountainColor read FTagErrorColor write 
-    SetTagErrorColor;</dt>
-  <dd>\83^\83O\83G\83\89\81[\82Æ\94»\92f\82³\82ê\82½\8fê\8d\87\82Ì\90F\82ð\8ew\92è\82µ\82Ü\82·</dd>
-  <dt>property MetaWordColor: TFountainColor read FMetaWordColor write 
-    SetMetaWordColor;</dt>
-  <dd>\83\81\83^\95\8e\9a\97ñ\82Ì\90F\82ð\8ew\92è\82µ\82Ü\82·</dd>
-  <dt>property SynchronizedColor: TFountainColor read FSynchronizedColor write 
-    SetSynchronizedColor;</dt>
-  <dd>\83V\83\93\83N\83\8d\83i\83C\83Y\83h\83Z\83b\83V\83\87\83\93(\_s)\92\86\82Ì\90F\82ð\8ew\92è\82µ\82Ü\82·</dd>
-  <dt>property SakuraScriptParser: TSsParser read FSakuraScriptParser write 
-    SetSakuraScriptParser;</dt>
-  <dd>SsParser\82Ì\83C\83\93\83X\83^\83\93\83X\82ð\8ew\92è\82µ\82Ü\82·\81B\82±\82Ì\8ew\92è\82Í\81A\90³\82µ\82­\83X\83N\83\8a\83v\83g\82ð\89ð\8eß\82³\82¹\82é\82½\82ß\82É\95K\90{\82Å\82·\81B</dd>
-  <dt>property ChangeScopeBy01: boolean read FChangeScopeBy01 write 
-    SetChangeScopeBy01 default true;</dt>
-  <dd>\0, \1\83^\83O\82ð\83X\83R\81[\83v\82Ì\95Ï\8dX\96½\97ß\82Æ\89ð\8eß\82µ\81A\90F\95ª\82¯\82ð\8ds\82¤\82©\82Ç\82¤\82©\82ð\8ew\92è\82µ\82Ü\82·\81B\83f\83t\83H\83\8b\83g\82Å\82Ítrue\82Å\82·\81B(\81u\89½\82©(\89¼)\81v\8e\9e\91ã
-  \82Ì\8cÃ\82¢\83X\83N\83\8a\83v\83g\8ed\97l\82Å\82Í\81A\82±\82ê\82ç\82Ì\83^\83O\82ª\91S\82­\95Ê\82Ì\88Ó\96¡\82ð\8e\9d\82Â\96½\97ß\82Å\82 \82Á\82½\82±\82Æ\82ð\94O\82Ì\82½\82ß\8dl\97\82µ\82Ä\82­\82¾\82³\82¢)</dd>
-  <dt>property ChangeScopeByHU: boolean read FChangeScopeByHU write 
-    SetChangeScopeByHU default true;</dt>
-  <dd>\h, \u\83^\83O\82ð\83X\83R\81[\83v\82Ì\95Ï\8dX\96½\97ß\82Æ\89ð\8eß\82µ\81A\90F\95ª\82¯\82ð\8ds\82¤\82©\82Ç\82¤\82©\82ð\8ew\92è\82µ\82Ü\82·\81B\83f\83t\83H\83\8b\83g\82Å\82Ítrue\82Å\82·\81B(\8c»\8dÝ\82Í\8c´\91¥\82Æ\82µ\82Ä\0, 
-    \1\82ð\91ã\82í\82è\82É\8eg\97p\82·\82é\82±\82Æ\82É\82È\82Á\82Ä\82¢\82é\82Ì\82Å\81A\89\93\82¢\8f«\97\88\82É\82±\82ê\82ç\82Ì\83}\81[\83N\83A\83b\83v\82ð\8c»\8dÝ\82Ì\88Ó\96¡\82Å\97\9d\89ð\82µ\82È\82¢\83v\83\8d\83O\83\89\83\80\82ª\8fo\8c»\82·\82é\82©\82à\82µ\82ê\82È\82¢\82±\82Æ\82ð\94O\82Ì\82½\82ß\8dl\97\82µ\82Ä\82­\82¾\82³\82¢)</dd>
-  <dt>property ProcessSync: boolean read FProcessSync write SetProcessSync 
-    default true;</dt>
-  <dd>\_s\83^\83O\82ð\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82É\93ü\82é/\8fo\82é\82½\82ß\82Ì\95\8e\9a\97ñ\82Æ\89ð\8eß\82µ\81A\90F\95ª\82¯\82ð\8ds\82¤\82©\82Ç\82¤\82©\82ð\8ew\92è\82µ\82Ü\82·\81B<br>
-    false\82Ì\8fê\8d\87\82Í\83V\83\93\83N\83\8d\83i\83C\83Y\83Z\83b\83V\83\87\83\93\82ð\8dl\97\82µ\82Ü\82¹\82ñ\81B</dd>
-</dl>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/sakurasuite/manual/sakuraseeker.html b/sakurasuite/manual/sakuraseeker.html
deleted file mode 100644 (file)
index 8ffde89..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<title>TSakuraSeeker</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TSakuraSeeker</h1>
-<h2>\8aT\97v</h2>
-<p>\8ef\82©\8cÝ\8a·\83V\83X\83e\83\80\82ÌFile-mapping Object(\92Ê\8fÌFMO)\82ð\97\98\97p\82µ\82Ä\81A\8c»\8dÝ\82Ì\83\8d\81[\83J\83\8b\83}\83V\83\93\82Å\8bN\93®\82µ\82Ä\82¢\82é\8ef\82©\8cÝ\8a·\83V\83X\83e\83\80\82Ì\8fî\95ñ\82ð\8eæ\93¾\82µ\82Ü\82·\81B</p> 
-<p>2003/04 \82æ\82è\81A'SakuraFMO'\82Ì\83~\83\85\81[\83e\83b\83N\83X\83I\83u\83W\83F\83N\83g\82É\82æ\82é\81AFMO\93¯\8e\9e\83A\83N\83Z\83X\82Ì\83u\83\8d\83b\83N\82É\91Î\89\9e\82µ\81A\88À\91S\90«\82ª\91\9d\82µ\82Ä\82¢\82Ü\82·\81B</p> 
-<p>2003\94N04\8c\8e\8c»\8dÝ\82Å\82±\82Ì'SakuraFMO'\82É\82æ\82é\83V\83\93\83N\83\8d\83i\83C\83[\81[\83V\83\87\83\93\82É\91Î\89\9e\82µ\82Ä\82¢\82é\8ef\82©\8aÖ\98A\83\\83t\83g\83E\83F\83A\82Í\81A</p>
-<ul>
-  <li>CROW</li>
-  <li>SSP</li>
-  <li>BBC</li>
-  <li>SSSB</li>
-  <li>SSTP-Viewer</li>
-  <li>SSTP Bottle Client</li>
-</ul>
-<p>\82Å\82·\81B</p>
-<p>\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82Í\81A\8eæ\93¾\82µ\82½HWND\82É\91Î\82µ\82Ä\81A<code>TDirectSSTP</code>\82Æ\95¹\82¹\82Ä\8eg\82¤\82Æ\82æ\82è\8cø\89Ê\82ª\82 \82è\82Ü\82·\81B</p>
-<p>&quot;Sakura&quot;\88È\8aO\82ÌFMO\82ð\93Ç\82Ý\8eæ\82é\8b@\94\\82ª\82 \82è\82Ü\82·\81B</p>
-<p>SakuraSeeker\82ÍFMO\90æ\93ª4\83o\83C\83g\82É\92è\8b`\82³\82ê\82Ä\82¢\82éFMO\83T\83C\83Y\82ð\90³\82µ\82­\89ð\8eß\82µ\82Ü\82·(\94C\88Ó\82Ì\83T\83C\83Y\82ÌFMO\82ª\88µ\82¦\82Ü\82·)\81B</p>
-<h2>\8cp\8f³</h2>
-<p><code>TObject</code> - <code>TPersistent</code> - <code>TComponent</code> -
-<code>TSakuraSeeker</code></p>
-<h2>\8eQ\8fÆ</h2>
-<p>
-<a href="file:///C:/Documents%20and%20Settings/naruto/My%20Documents/dpr/dpk%20SakuraSuite/manual/sakuraprocess.html">
-TSakuraProcess</a></p>
-<h2>\8eQ\8dlURL</h2>
-<p>TSakuraSeeker\82Í\82±\82ê\82ç\82Ì\8ed\97l\82ð\8eQ\8dl\82É\82µ\82Ä\90Ý\8cv\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
-<p>\8ef\82©\81c\83\81\83\82\83\8a\83I\83u\83W\83F\83N\83g<br>
-<a href="http://sakura.wondernet.tv/objects.html">
-http://sakura.wondernet.tv/objects.html</a></p>
-<p>SSP\8bZ\8fp\8e\91\97¿\81cFMO\8aÖ\98A\82Ì\8e\91\97¿<br>
-<a href="http://ssp.shillest.net/docs/fmo.html">
-http://ssp.shillest.net/docs/fmo.html</a></p>
-<h2>\8aî\96{\82Ì\8eg\82¢\95û</h2>
-<h3>\8bN\93®\92\86\82Ì\83S\81[\83X\83g\96¼\82ð\97ñ\8b\93\82·\82é</h3>
-<p><code>procedure Button1Click(Sender: TObject);<br>
-var i: integer;<br>
-begin<br>
-&nbsp; with SakuraSeeker1 do<br>
-&nbsp; begin<br>
-&nbsp;&nbsp;&nbsp; BeginDetect;<br>
-&nbsp;&nbsp;&nbsp; for i := 0 to Count-1 do<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowMessage('Name:' + Process[i].SetName + #13#10 
-+<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'HWND:'+ IntToStr(Process[i].HWnd));<br>
-&nbsp; end;<br>
-end;</code></p>
-<h3>\81u\82³\82­\82ç\81v\82Æ\82¢\82¤\96¼\91O\82Ì\83S\81[\83X\83g\82ð\8c\9f\8dõ\82µ\82Ä\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b(DirectSSTP\97p)\82ð\93¾\82é</h3>
-<p><code>with SakuraSeeker1 do<br>
-begin<br>
-&nbsp; BeginDetect;<br>
-&nbsp; if ProcessByName['\82³\82­\82ç'] &lt;&gt; nil then<br>
-&nbsp;&nbsp;&nbsp; Handle := ProcessByName['\82³\82­\82ç'].HWnd;<br>
-end;</code></p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83\81\83\\83b\83h</h2>
-<dl>
-  <dt>procedure BeginDetect;</dt>
-  <dd>\8dÅ\90V\82ÌFMO\82É\83A\83N\83Z\83X\82µ\82Ä\92\86\90g\82ð\89ð\90Í\82µ\81A\8fó\91Ô\82ð\95Û\8e\9d\82µ\82Ü\82·\81B<code>Count</code>\83v\83\8d\83p\83e\83B\82ª\8dX\90V\82³\82ê\82Ü\82·\81B<br>
-  \8dÅ\90V\82ÌFMO\8fó\91Ô\82ª\95K\97v\82È\82Æ\82«\81A\92¼\91O\82É\8cÄ\82ñ\82Å\82­\82¾\82³\82¢\81B\82½\82¾\82µFMO\82Í\8e\9e\82É100KB\92´\82É\92B\82·\82é\82±\82Æ\82à\82 \82è\82Ü\82·\82Ì\82Å\81A\82 \82Ü\82è\95p\94É\82É\8cÄ\82Ñ\82·\82¬\82é\82Ì\82à\8dl\82¦\95¨\82Å\82·\81B</dd>
-  <dt>function KillFMO(const TargetFMOName, TargetID: String): boolean;</dt>
-  <dd>FMO\82©\82ç\8ew\92è\82Ì\83v\83\8d\83Z\83XID\82ð\8e\9d\82Â\82·\82×\82Ä\82Ì\83G\83\93\83g\83\8a\82ð\8dí\8f\9c\82µ\82Ü\82·\81BMutex\83I\83u\83W\83F\83N\83g\82É\82æ\82é\94r\91¼\90§\8cä\82Ì\96â\91è\82É\91Î\89\9e\82µ\82Ä\82¢\82Ü\82·\81B<br>
-  <code>TargetFMOName</code>\82É\82ÍFMO\8e¯\95Ê\96¼(\92Ê\8fí\82Í\81uSakura\81v)\82ð\81A<code>TargetID</code>\82É\82Í\83v\83\8d\83Z\83XID(MD5\92l\82È\82Ç)\82ð\93n\82µ\82Ü\82·\81B<br>
-  \83G\83\93\83g\83\8a\82ð\8dí\8f\9c\82µ\82½\8fê\8d\87\82Étrue\82ª\95Ô\82è\82Ü\82·\81B\8ew\92è\82µ\82½\82à\82Ì\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82â\81A\82»\82Ì\91¼\82Ì\83G\83\89\81[\82ª\94­\90\82µ\82½\8fê\8d\87\82É\82Ífalse\82ª\95Ô\82è\82Ü\82·\81B</dd>
-</dl>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83v\83\8d\83p\83e\83B</h2>
-<dl>
-  <dt>property Count: integer;</dt>
-  <dd>\8eÀ\8ds\8e\9e\82Ì\82Ý\81A\93Ç\82Ý\8eæ\82è\90ê\97p\82Å\82·\81B<code>BeginDetect</code>\82Ì\8cã\82É\88Ó\96¡\82ð\8e\9d\82¿\82Ü\82·\81B\94­\8c©\82³\82ê\82½\83v\83\8d\83Z\83X\82Ì\90\94\82ð\8eæ\93¾\82µ\82Ü\82·\81B<code>Process</code>\83v\83\8d\83p\83e\83B\82É\83A\83N\83Z\83X\82·\82é\8fê\8d\87\82Ì\93Y\82¦\8e\9a\82Ì\8fã\8cÀ\82Æ\82µ\82Ä\8eg\97p\82µ\82Ü\82·\81B</dd>
-  <dt>property Process[Index: integer]: <a href="sakuraprocess.html">
-  TSakuraProcess</a>; default;</dt>
-  <dd>\8eÀ\8ds\8e\9e\82Ì\82Ý\81A\93Ç\82Ý\8eæ\82è\90ê\97p\82Å\82·\81B\8c©\82Â\82©\82Á\82½\8f\87\82É<code>TSakuraProcess</code>\82Ì\83C\83\93\83X\83^\83\93\83X\82ð\95Ô\82µ\82Ü\82·\81B</dd>
-  <dt>property ProcessByName[Name: String]: <a href="sakuraprocess.html">
-  TSakuraProcess</a>;<br>
-  property ProcessBySetName[Name: String]: <a href="sakuraprocess.html">
-  TSakuraProcess</a>;<br>
-  property ProcessByID[ID: String]: <a href="sakuraprocess.html">TSakuraProcess</a>;</dt>
-  <dd>\8eÀ\8ds\8e\9e\82Ì\82Ý\81A\93Ç\82Ý\8eæ\82è\90ê\97p\82Å\82·\81B\82»\82ê\82¼\82ê\81A<code>TSakuraProcess</code>\82Ì\83C\83\93\83X\83^\83\93\83X\82ð\8c\9f\8dõ\82µ\82Ä\95Ô\82µ\82Ü\82·\81B<br>
-  <code>ProcessByName</code>\82Íname\82ð\83L\81[\82É\8c\9f\8dõ\82µ\82Ü\82·(\97á\81u\82³\82­\82ç\81v)\81B\93¯\82\96¼\91O\82Ì\82à\82Ì\82ª2\82Â\88È\8fã\82 \82é\8fê\8d\87\82É\82Í\8dÅ\8f\89\82É\8c©\82Â\82©\82Á\82½\82à\82Ì\82ª\95Ô\82è\82Ü\82·\81B<br>
-  <code>ProcessBySetName</code>\82Íname,keroname\82Ì\91g\82ð\83L\81[\82É\82µ\82Ü\82·\81B\83R\83\93\83}\82Å\8bæ\90Ø\82è\82Ü\82·(\97á\81u\82³\82­\82ç,\82¤\82É\82ã\82¤\81v)\81B\93¯\82\96¼\91O\82Ì\82à\82Ì\82ª2\82Â\88È\8fã\82 \82é\8fê\8d\87\82É\82Í\8dÅ\8f\89\82É\8c©\82Â\82©\82Á\82½\82à\82Ì\82ª\95Ô\82è\82Ü\82·\81B<br>
-  <code>ProcessByID</code>\82Í\83v\83\8d\83Z\83XID\82ð\83L\81[\82É\82µ\82Ü\82·\81B(\96{\97\88\82Ì\8ed\97l\82Å\82ÍMD5\92l\82Å\82·\82ª\81A\89½\82ç\82©\82Ì\83\86\83j\81[\83N\82È\95\8e\9a\97ñ\82ª\93ü\82è\82Ü\82·)</dd>
-  <dt>property AutoDetect: boolean;</dt>
-  <dd>\83R\83\93\83|\81[\83l\83\93\83g\82Ì\90\90¬\8e\9e\82É\8e©\93®\93I\82É<code>BeginDetect</code>\82·\82é\82©\82Ç\82¤\82©\82ð\90Ý\92è\82µ\82Ü\82·\81B</dd>
-  <dt>property FileMappingTarget: TStrings;</dt>
-  <dd>FMO\8e¯\95Ê\96¼\82ð\90Ý\92è\82µ\82Ü\82·\81B\83f\83t\83H\83\8b\83g\82Í\81uSakura\81v\82Å\82·\81B\95¡\90\94\82Ì\8e¯\95Ê\96¼\82ð\97ñ\8b\93\82·\82é\82±\82Æ\82ª\82Å\81A\82»\82Ì\8fê\8d\87\82É\82Í<code>BeginDetect</code>\82Å\82·\82×\82Ä\82ª\8f\87\82É\89ð\90Í\82³\82ê\82Ü\82·\81B</dd>
-</dl>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83C\83x\83\93\83g</h2>
-<dl>
-  <dt>property OnGetMutexName: TSakuraSeekerGetMutexNameEvent;</dt>
-  <dd><code>TSakuraSeekerGetMutexNameEvent = procedure (Sender: TObject; var 
-  Name: String) of object;</code><br>
-  \94r\91¼\90§\8cä\97p\82Ì\83~\83\85\81[\83e\83b\83N\83X\83I\83u\83W\83F\83N\83g\82Ì\96¼\91O\82ð\83J\83X\83^\83}\83C\83Y\82·\82é\82½\82ß\82Ì\83C\83x\83\93\83g\82Å\82·\81B<code>Name</code>\83p\83\89\83\81\81[\83^\82É\81A\82±\82ê\82©\82ç\89ð\90Í\82µ\82æ\82¤\82Æ\82·\82éFMO\82Ì\8e¯\95Ê\96¼\82ª\93ü\82Á\82Ä\82¢\82é\82Ì\82Å(<code>FileMappingTarget</code>\82ð\83J\83X\83^\83}\83C\83Y\82µ\82È\82¢\8cÀ\82è\82Í\81uSakura\81v\82Å\82·)\81A\82»\82ÌFMO\82ð\95Û\8cì\82·\82é\82½\82ß\82ÌMutex\8e¯\95Ê\96¼\82ð\81AName\82É\91ã\93ü\82µ\82Ä\8fI\97¹\82µ\82Ä\82­\82¾\82³\82¢(\8aî\96{\93I\82É\82Í\81uSakuraFMO\81v)\81B\82±\82Ì\83C\83x\83\93\83g\82ð\8ew\92è\82µ\82È\82¢\8fê\8d\87\82Í\81A\81uSakuraFMO\81v\82Æ\82¢\82¤\82æ\82¤\82É\81AFMO\8e¯\95Ê\96¼\82É\81uFMO\81v\82ª\95t\82¢\82½\82à\82Ì\82ðMutex\8e¯\95Ê\96¼\82Æ\82µ\82Ä\97\98\97p\82µ\82Ü\82·(\95W\8f\80\82Ì\93®\8dì\82Å\82·)\81B<br>
-  \88ê\89\9e\83C\83x\83\93\83g\82Æ\82µ\82Ä\8eÀ\91\95\82µ\82Ä\82 \82è\82Ü\82·\82ª\81A\82±\82ê\82ð\83J\83X\83^\83}\83C\83Y\82·\82é\82Æ\81AMutex\82ð\97\98\97p\82·\82é\88Ó\96¡\8e©\91Ì\82ª\82È\82­\82È\82è\82Ü\82·\82Ì\82Å\81A\96{\93\96\82É\88Ó\96¡\82ª\95ª\82©\82Á\82Ä\82¢\82Ä\81A\95K\97v\82ª\82 \82é\8fê\8d\87\82Ì\82Ý\92è\8b`\82µ\82Ä\82­\82¾\82³\82¢\81B</dd>
-  <dt>property OnAfterDetection: TNotifyEvent;</dt>
-  <dd><code>BeginDetect</code>\8fI\97¹\8cã\82É\8cÄ\82Î\82ê\82Ü\82·\81B</dd>
-  <dt>property OnDetectResultChanged: TNotifyEvent;</dt>
-  <dd><code>BeginDetect</code>\82Ì\8cã\81A\82»\82Ì\89ð\90Í\8c\8b\89Ê\82ª\91O\89ñ\82Ì\8c\8b\89Ê\82Æ\88á\82Á\82Ä\82¢\82½\8fê\8d\87\82É\8cÄ\82Î\82ê\82Ü\82·\81B\82±\82Ì\83C\83x\83\93\83g\82É\89\9e\82\82Ä\81A\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83R\83\93\83g\83\8d\81[\83\8b\82ð\8f\91\82«\8a·\82¦\82½\82è\81A\83\86\81[\83U\82É\83v\83\8d\83Z\83X\82Ì\8bN\93®\81E\8fI\97¹\82ð\92Ê\92m\82µ\82½\82è\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B<br>
-  <code>FileMappingTarget</code>\82Å\8ew\92è\82³\82ê\82é\82¢\82¸\82ê\82©\82ÌFMO\82Ì\92\86\90g\82ª1\83o\83C\83g\82Å\82à\95Ï\82í\82Á\82Ä\82¢\82½\8fê\8d\87\82É\8cÄ\82Î\82ê\82é\82±\82Æ\82É\92\8d\88Ó\82µ\82Ä\82­\82¾\82³\82¢\81B\83T\81[\83t\83B\83X\94Ô\8d\86\82ð\96\88\95b\82Ì\82æ\82¤\82ÉFMO\82É\93o\98^\82·\82é\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ª\82 \82è\82Ü\82·\82Ì\82Å\81A\83v\83\8d\83Z\83X\82Ì\90\94\82â\8bN\93®\82µ\82Ä\82¢\82é\83S\81[\83X\83g\82É\91S\82­\95Ï\89»\82ª\82È\82­\82Ä\82à\82±\82ê\82ª\8cÄ\82Î\82ê\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B</dd>
-</dl>
-<h2>\89ü\94Å\97\9a\97ð</h2>
-<dl>
-  <dt>2003/04/18</dt>
-  <dd>Mutex\83I\83u\83W\83F\83N\83g\82É\82æ\82é\81AFMO\82Ì\93¯\8e\9e\83A\83N\83Z\83X\94r\91¼\90§\8cä\81B</dd>
-</dl>
-
-</body>
-
-</html>
diff --git a/sakurasuite/manual/sakurasuite.css b/sakurasuite/manual/sakurasuite.css
deleted file mode 100644 (file)
index 3ce9028..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-body { background-color: white; margin-left: 2em; font-family: monospace; }
-p { font-size: 10.5pt; margin-top: 0.5em; margin-bottom: 0.5em; }
-li, dd, dt, td, th { font-size: 10.5pt; }
-dt { font-weight: bolder; margin-top: 1em; margin-bottom: 0.3em; }
-h1 { text-align: center; }
-h2 { color: navy; text-decoration: underline; margin-left: -1em; }
-h3 { color: navy; margin-left: -1em;}
-
-code { color: green; font-size: 100%; }
-
-strong { color: red; text-decoration: underline; font-weight: bolder; }
-em { color: red; font-style: normal;}
\ No newline at end of file
diff --git a/sakurasuite/manual/slpp20.html b/sakurasuite/manual/slpp20.html
deleted file mode 100644 (file)
index 33e6e40..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>\90V\82µ\82¢\83y\81[\83W 1</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TIdSlpp20</h1>
-<h2>\8aT\97v</h2>
-
-<p>SSTP Bottle\83T\81[\83r\83X(http://bottle.mikage.to/)\82É\90Ú\91±\82µ\82Ä\83\81\83b\83Z\81[\83W\82ð\8eó\90M\82·\82é\82½\82ß\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B</p>
-
-<p>SLPP/2.0\83v\83\8d\83g\83R\83\8b\82É\91Î\89\9e\82µ\82Ä\82¢\82Ü\82·\81B</p>
-
-<p>\82½\82¾\82µSSTP Bottle\83T\81[\83r\83X\82Í\81A\83\81\83b\83Z\81[\83W\82ð\8eó\90M\82·\82é\82½\82ß\82Ì\90Ú\91±(\89i\91±\93I\82ÈSLPP/2.0)\82Æ\81A\83N\83\89\83C\83A\83\93\83g\91¤\82©\82ç\83R\83}\83\93\83h\82ð\91\97\90M\82·\82é\82½\82ß\82Ì\90Ú\91±(\92f\91±\93I\82È\81A\92P\82È\82éHTTP)\82Ì2\8eí\97Þ\82©\82ç\82È\82è\82Ü\82·\82Ì\82Å\81A\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\92P\91Ì\82Å\82Ì\90Ú\91±\82Í\82Å\82«\82Ü\82¹\82ñ\81B</p>
-
-<p>SSTP Bottle\82Ì\8ed\97l\8fÚ\8d×\82É\82Â\82¢\82Ä\82Í\81A\8cö\8e®\83T\83C\83g\82Ì\8ed\97l\8f\91\83y\81[\83W\82ð\82²\97\97\82­\82¾\82³\82¢\81B</p>
-
-</body>
-
-</html>
diff --git a/sakurasuite/manual/ssparser.html b/sakurasuite/manual/ssparser.html
deleted file mode 100644 (file)
index 34473bc..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<title>\90V\82µ\82¢\83y\81[\83W 0</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TSsParser</h1>
-<h2>\8aT\97v</h2>
-<p>
-\81u\82³\82­\82ç\83X\83N\83\8a\83v\83g\81v\82Ì\91½\8b@\94\\83p\81[\83T\8b@\94\\82ð\8e\9d\82Â\94ñ\83r\83W\83\85\83A\83\8b\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B\92P\88ê\8ds\82Ì\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\8f\88\97\9d\82µ\82Ü\82·\81B\82Â\82Ü\82è\93T\8c^\93I\82É\82Í\t\82©\82ç\8en\82Ü\82è\e\82Å\8fI\82í\82é\81A1\8ds\82Ì\83X\83N\83\8a\83v\83g\82Å\82·\81BEntry\82È\82Ç\82ª\97\8d\82ñ\82¾\95¡\90\94\8ds\83X\83N\83\8a\83v\83g\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82Ü\82¹\82ñ\82ª\81A\95â\8f\95\82Æ\82µ\82Ä\82Í\8eg\82¦\82Ü\82·\81B</p>
-<ul>
-  <li>\93Æ\8e©\82ÌSSTP\83T\81[\83o\82ð\8d\\92z\82·\82é\8fê\8d\87\82Ì\95â\8f\95</li>
-  <li>\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\83G\83f\83B\83^\8dì\90¬\82Ì\82½\82ß\82Ì\95â\8f\95(\90F\95ª\82¯\81A\83^\83O\83`\83F\83b\83N\81Aetc...)</li>
-</ul>
-<p>\82Æ\82¢\82Á\82½\97p\93r\82Ì\97¼\95û\82É\8eg\82¦\82é\82æ\82¤\90Ý\8cv\82³\82ê\82Ä\82¢\82Ü\82·\81B\82Ü\82½\81A\83^\83O\82Ì\83p\83^\81[\83\93\82É\82Â\82¢\82Ä\82Í\8a®\91S\82É\83J\83X\83^\83}\83C\83Y\82ª\89Â\94\\82Å\82·\81B</p>
-<h2>\8aî\96{\93I\82È\8eg\82¢\95û</h2>
-<p><code>TagPattern</code>, <code>MetaPattern</code>\83v\83\8d\83p\83e\83B\82É\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\89ð\90Í\82Ì\8aî\8f\80\82Æ\82È\82é\83p\83^\81[\83\93\82ð\8ew\92è\82µ\82Ü\82·\81B\93Y\95t\82³\82ê\82Ä\82¢\82é\83e\83L\83X\83g\83t\83@\83C\83\8b\82ð\83R\83s\81[\82·\82ê\82Î\88ê\89\9eOK\82Å\82·\81B</p>
-<p><code>InputString</code>\83v\83\8d\83p\83e\83B\82É\81A\83X\83N\83\8a\83v\83g\82ð\8ew\92è\82·\82ê\82Î\81A\83X\83N\83\8a\83v\83g\82ª\89ð\90Í\82³\82ê\81A<code>Count</code>,
-<code>MarkUpType</code>, <code>Str</code>\82Ì\8ae\83v\83\8d\83p\83e\83B\82ð\92Ê\82µ\82Ä\83A\83N\83Z\83X\82Å\82«\82Ü\82·\81B</p>
-<p>\97á\82¦\82Î\81A\81u<code>\t\s[0]\82¢\82ç\82Á\82µ\82á\82¢%\82Ü\82¹\81A%username\82³\82ñ\81A\s[5]\\300\82Ì\82¨\\94\83\82¢\8fã\82°\82É\82È\82è\82Ü\82·\82Ë\e</code>\81v\82Æ\82¢\82¤\95\8e\9a\97ñ\82ð<code>InputString</code>\82É\93ü\82ê\82½\8fê\8d\87\82É\82ͤCount=10\82Æ\82È\82è\81A<code>MarkUpType</code>,
-<code>Str</code>\83v\83\8d\83p\83e\83B\82É\82Í\88È\89º\82Ì\82æ\82¤\82È\92l\82ª\93ü\82è\82Ü\82·\81B</p>
-<p><code>TSsParser</code>\82Å\82Í\81A<code>Index</code>\82Å\8bæ\95Ê\82³\82ê\82é\83X\83N\83\8a\83v\83g\91f\95Ð\81A\82Â\82Ü\82è\89º\82Ì\95\\82É\82¨\82¯\82é\8ae\8ds\82ð<strong>\81u\83}\81[\83N\83A\83b\83v\81v</strong>\82Æ\8cÄ\82Ô\82±\82Æ\82É\82µ\82Ü\82·\81B(\96{\97\88\81A\83^\83O\82â\83\81\83^\95\8e\9a\88È\8aO\82Ì\95\8e\9a\97ñ\82Ü\82Å\83}\81[\83N\83A\83b\83v\82Æ\8cÄ\82Ô\82Ì\82Í\95Ï\82Å\82·\82ª\81c)</p>
-<table border="1">
-  <tr>
-    <th>Index</th>
-    <th>Str[Index]</th>
-    <th>MarkUpType[Index]</th>
-  </tr>
-  <tr>
-    <td>0</td>
-    <td>\t</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>1</td>
-    <td>\s[0]</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>2</td>
-    <td>\82¢\82ç\82Á\82µ\82á\82¢%\82Ü\82¹\81A<em><sup>\81¦</sup></em></td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>3</td>
-    <td>%username</td>
-    <td>mtMeta</td>
-  </tr>
-  <tr>
-    <td>4</td>
-    <td>\82³\82ñ\81A</td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>5</td>
-    <td>\s[5]</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>6</td>
-    <td>\\300\82Ì\82¨<em><sup>\81¦</sup></em></td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>7</td>
-    <td>\\94\83</td>
-    <td>mtTagErr</td>
-  </tr>
-  <tr>
-    <td>8</td>
-    <td>\82¢\8fã\82°\82É\82È\82è\82Ü\82·\82Ë</td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>9</td>
-    <td>\e</td>
-    <td>mtTag</td>
-  </tr>
-</table>
-<ul>
-  <li>
-  \82±\82ê\82Í\83f\83t\83H\83\8b\83g\82Ì\83p\83^\81[\83\93\82ð\8eg\97p\82µ\82½\93T\8c^\93I\82È\89ð\90Í\82Ì\8c\8b\89Ê\82Å\82 \82è\81A\89ð\90Í\8c\8b\89Ê\82Í\83p\83^\81[\83\93\82É\82æ\82Á\82Ä\95Ï\89»\82µ\82Ü\82·\81B\8bÉ\92[\82É\8c¾\82¦\82Î\81A\w8\82ð\83^\83O\82Æ\82µ\82Ä\94F\8e¯\82µ\82È\82¢\81A\82Æ\82¢\82¤\82±\82Æ\82à\89Â\94\\82Å\82·\81B</li>
-  <li><code>Str[2]</code>\82É\82Â\82¢\82Ä\82Í\81A<code>EscapeInvalidMeta</code> = 
-  false\82Ì\8fê\8d\87\82Ì\8c\8b\89Ê\82Å\82·\81Btrue\82Ì\8fê\8d\87\82Í\81A\81u\82¢\82ç\82Á\82µ\82á\82¢\%\82Ü\82¹\81v\82Æ\82È\82è\82Ü\82·\81B</li>
-  <li><code>Str[6</code>]\82É\82Â\82¢\82Ä\82Í\81A<code>LeaveEscape</code> = 
-  true\82Ì\8fê\8d\87\82Ì\8c\8b\89Ê\82Å\82·\81Bfalse\82Ì\8fê\8d\87\82Í\81A\81u\300\82Ì\82¨\81v\82Æ\82È\82è\82Ü\82·\81B</li>
-</ul>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83v\83\8d\83p\83e\83B</h2>
-<dl>
-  <dt>LeaveEscape: boolean [\8eÀ/\90Ý][\93Ç/\8f\91]</dt>
-  <dd>\83f\83t\83H\83\8b\83g\82Ítrue\82Å\82·\81BmtStr\82Å\90Ø\82è\8fo\82³\82ê\82½\92Ê\8fí\95\8e\9a\97ñ\82É\8aÜ\82Ü\82ê\82é\81A<code>\\</code> \82â <code>\%</code> 
-  \82Ì\95\8e\9a\97ñ\82ð\95Ï\8a·\82¹\82¸\82É\8ec\82·\82©\82Ç\82¤\82©\90Ý\92è\82µ\82Ü\82·\81Bfalse\82É\82·\82é\82±\82Æ\82Å\81A<code>\\</code> \82â <code>\%</code> \82Í1\95\8e\9a\82É\95Ï\8a·\82³\82ê\82ÄmtStr\83}\81[\83N\83A\83b\83v\82É\91ã\93ü\82³\82ê\82Ü\82·\81B<br>
-  TSsParser\82ð\83X\83N\83\8a\83v\83g\82Ì\90F\95ª\82¯\82â\81A\8aë\8c¯\83^\83O\83`\83F\83b\83N\82È\82Ç\82É\8eg\97p\82·\82é\8fê\8d\87\82Í\81A\95\8e\9a\97ñ\92·\82â\83X\83N\83\8a\83v\83g\82»\82Ì\82à\82Ì\82ª\95Ï\82í\82ç\82È\82¢\82æ\82¤\82Étrue\82É\82µ\82Ü\82·\81B\93Æ\8e©SSTP\83T\81[\83o\8aJ\94­\82Ì\8fê\8d\87\82È\82Ç\82Í\81Afalse\82É\82·\82é\82±\82Æ\82Å\95Ï\8a·\82Ì\8eè\8aÔ\82ð\8fÈ\82¯\82Ü\82·\81B<br>
-  \95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</dd>
-  <dt>EscapeInvalidMeta: boolean [\8eÀ/\90Ý][\93Ç/\8f\91]</dt>
-  <dd>\83f\83t\83H\83\8b\83g\82Ífalse\82Å\82·\81B<code>MetaPattern</code>\82É\82æ\82Á\82Ä\81A%\95\8e\9a\88È\8d~\82ª\83\81\83^\95\8e\9a\97ñ\82Æ\94»\92f\82Å\82«\82È\82¢\8fê\8d\87\81A%\95\8e\9a\82ð\81u\%\81v\82É\83G\83X\83P\81[\83v\82·\82é\82©\82Ç\82¤\82©\90Ý\92è\82µ\82Ü\82·\81B<br>
-  <code>TSsParser</code>\82ð\83X\83N\83\8a\83v\83g\82Ì\90F\95ª\82¯\82È\82Ç\82É\8eg\97p\82·\82é\8fê\8d\87\82Í\81A\95\8e\9a\97ñ\92·\82ª\95Ï\82í\82ç\82È\82¢\82æ\82¤\82Éfalse\82É\82µ\82Ü\82·\81B\8c\98\98S\82È\83X\83N\83\8a\83v\83g\8dì\90¬\82Ì\82½\82ß\82Ì\95\96@\83`\83F\83b\83N\82Ì\82½\82ß\82É\82Ítrue\82É\82µ\82Ü\82·\81B<br>
-  \95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</dd>
-  <dt>TagPattern: TStrings [\8eÀ/\90Ý][\93Ç/\8f\91]<br>
-  MetaPattern: TStrings [\8eÀ/\90Ý][\93Ç/\8f\91]</dt>
-  <dd>
-  \82»\82ê\82¼\82ê\81A\83^\83O\90Ø\82è\8fo\82µ\82Ì\82½\82ß\82Ì\83p\83^\81[\83\93\81A\83\81\83^\95\8e\9a\97ñ\90Ø\82è\8fo\82µ\82Ì\82½\82ß\82Ì\83p\83^\81[\83\93\82Å\82·\81B\95Ê\8d\80\81u\83p\83^\81[\83\93\82É\82Â\82¢\82Ä\81v\8eQ\8fÆ\81B\95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</dd>
-  <dt>InputString: String [\8eÀ\82Ì\82Ý][\93Ç/\8f\91]</dt>
-  <dd>\82±\82Ì\83v\83\8d\83p\83e\83B\82É\8f\91\82«\8d\9e\82ñ\82Å\81A\89ð\90Í\82·\82×\82«\83X\83N\83\8a\83v\83g\82ð\90Ý\92è\82µ\82Ü\82·\81B\93Ç\82Ý\8fo\82µ\82Ì\8fê\8d\87\82Í\8dÅ\8cã\82É\89ð\90Í\82µ\82½\83X\83N\83\8a\83v\83g\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B</dd>
-  <dt>Count: integer [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</dt>
-  <dd>\83X\83N\83\8a\83v\83g\89ð\90Í\8cã\82Ì\83}\81[\83N\83A\83b\83v\91\8d\90\94\82ð\95Ô\82µ\82Ü\82·\81B\83X\83N\83\8a\83v\83g\83}\81[\83N\83A\83b\83v\82ð\83\8b\81[\83v\8f\88\97\9d\82·\82é\8fê\8d\87\82Ì\8fã\8cÀ\92l\82Æ\82µ\82Ä\8eg\97p\82µ\82Ü\82·\81B</dd>
-  <dt>Str[Index: integer]: String [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</dt>
-  <dd>\89ð\90Í\8cã\82Ì\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B\8dÅ\8f\89\82Ì\83}\81[\83N\83A\83b\83v\82Í<code>Str[0]</code>\81A\8dÅ\8cã\82Ì\83}\81[\83N\83A\83b\83v\82Í<code>Str[Count-1]</code>\82Å\82·\81B<code>LeaveExcape</code>,
-  <code>EscapeInavlidMeta</code>\82Ì\97¼\83v\83\8d\83p\83e\83B\82Ì\89e\8b¿\82ð\8eó\82¯\82Ü\82·\81B</dd>
-  <dt>Extra[Index: integer]: String [\8eÀ\82Ì\82Ý][\93Ç/\8f\91]</dt>
-  <dd>\82²\8e©\97R\82É\82¨\8eg\82¢\82­\82¾\82³\82¢\81A\82Ì\95\8e\9a\97ñ\82Å\82·\81B\89ð\90Í\8c\8b\89Ê\82É\83\81\83\82\82ð\82Â\82¯\82½\82è\82·\82é\97p\93r\82É\82Ç\82¤\82¼\81B</dd>
-  <dt>MarkUpType[Index: integer]: TSsMarkUpType [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</dt>
-  <dd><code>type TSsMarkUpType = (mtTag, mtMeta, mtTagErr, mtStr);<br>
-  </code>\83}\81[\83N\83A\83b\83v\82Ì\8eí\97Þ\82ð\95Ô\82µ\82Ü\82·\81B\8dÅ\8f\89\82Ì\83}\81[\83N\83A\83b\83v\82ÍMarkUpType[0]\81A\8dÅ\8cã\82Ì\83}\81[\83N\83A\83b\83v\82ÍMarkUpType[Count-1]\82Å\82·\81B</dd>
-</dl>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83C\83x\83\93\83g</h2>
-<dl>
-  <dt>OnSsParse: TSsParseEvent</dt>
-  <dd>
-  <p><code>TSsParseEvent = procedure (Sender: TObject; const Script: 
-  String;<br>
-  var Len: integer; var MarkType: TSsMarkUpType; var Extra: String) of object;<br>
-  </code>\83^\83O\82Ü\82½\82Í\83\81\83^\95\8e\9a\97ñ\82Ì\83p\83^\81[\83\93\83}\83b\83`\8e\8e\8ds\82Ì\91O\82É\8cÄ\82Ñ\8fo\82³\82ê\82Ü\82·\81B\82±\82Ì\83C\83x\83\93\83g\82ð\8eg\97p\82·\82é\82Æ\81A<code>TagPattern</code>,
-  <code>MetaPattern</code>\82Ì\8ed\97l\82Å\82Í\90Ø\82è\8fo\82¹\82È\82¢\83}\81[\83N\83A\83b\83v\82ª\8f«\97\88\82Å\82«\82½\8fê\8d\87\82É\81A\83X\83N\83\8a\83v\83g\82©\82ç\82Ì\83^\83O\82â\83\81\83^\95\8e\9a\97ñ\82Ì\90Ø\82è\8fo\82µ\82ð\8e©\97R\82É\83R\81[\83f\83B\83\93\83O\82Å\82«\82Ü\82·\81B<br>
-  <code>Script</code>\82Í\89ð\90Í\93r\92\86\82Ì\83X\83N\83\8a\83v\83g\82Å\82·\81B1\95\8e\9a\96Ú\82Í\95K\82¸\81u\\81v\82Ü\82½\82Í\81u%\81v\82Æ\82È\82Á\82Ä\82¢\82Ü\82·\81B<code>Len</code>\82Í\8cÄ\82Ñ\8fo\82µ\8e\9e\82É\82Í0\82ª\91ã\93ü\82³\82ê\82Ä\82¢\82Ü\82·\81B<br>
-  \82±\82Ì\83C\83x\83\93\83g\83n\83\93\83h\83\89\93à\82Å\81A<code>Script</code>\82Ì\90æ\93ª\82©\82ç\8en\82Ü\82é\95\94\95ª\82ð\89ð\90Í\82µ\82Ü\82·\81B\83}\81[\83N\83A\83b\83v\82ð\89ð\8eß\82Å\82«\82½\8fê\8d\87\82Í\82»\82Ì\83}\81[\83N\83A\83b\83v\82Ì\92·\82³(\83o\83C\83g\90\94)\82ð<code>Len</code>(&gt;2)\82É\81A\83^\83C\83v\82ð<code>MarkType</code>\82É\81A\95K\97v\82È\82çExtra\82É\95\8e\9a\97ñ\82ð\93ü\82ê\82Ä\81A\83C\83x\83\93\83g\83n\83\93\83h\83\89\82ð\8fI\97¹\82µ\82Ä\82­\82¾\82³\82¢\81B\89ð\8eß\82Å\82«\82È\82¢\8fê\8d\87\82ÍLen=0\82Ì\82Ü\82Ü\8fI\97¹\82·\82ê\82Î\81A\82»\82Ì\82Ü\82Ü\92Ê\8fí\82Ì\83p\83^\81[\83\93\83}\83b\83`\8e\8e\8ds\82É\93ü\82è\82Ü\82·\81B<br>
-  \97v\82Í\81A\95\8e\9a\97ñ\90æ\93ª\82©\82ç\82±\82±\82Ü\82Å\82ª\83^\83O(\83\81\83^\95\8e\9a\97ñ)\82¾\82æ\81A\82Æ\82¢\82¤\82Ì\82ð\8c©\82Â\82¯\82Ä\95Ô\82µ\82Ä\82­\82ê\81A\82Æ\82¢\82¤\82±\82Æ\82Å\82·\81B<br>
-  <code>Len&gt;1</code>\82Å\82 \82Á\82Ä\82à\81A<code>Script</code>\82Ì1\95\8e\9a\96Ú\82ª\\82È\82Ì\82É<code>MarkUpType</code>\82ª<code>mtTag</code>\82Å\82à<code>mtTagErr</code>\82Å\82à\82È\82¢\8fê\8d\87\81A\82 \82é\82¢\82ÍScript\82Ì1\95\8e\9a\96Ú\82ª%\82È\82Ì\82ÉMarkUpType\82ªmtMeta\82Å\82È\82¢\8fê\8d\87\82Í\97á\8aO\82ª\94­\90\82µ\82Ü\82·\81B</dd>
-</dl>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83\81\83\\83b\83h</h2>
-<dl>
-  <dt>function Match(Str, Pattern: String): integer;</dt>
-  <dd>SSTP\89ð\90Í\97p\82Ì\83p\83^\81[\83\93\83}\83b\83`\83\93\83O\82ð\8ds\82¢\82Ü\82·\81B<code>Str</code>\82Ì\90æ\93ª\95\94\95ª\81A<code>Pattern</code>\82Å\8e¦\82³\82ê\82é\83p\83^\81[\83\93\82ª\91\8dÝ\82·\82ê\82Î\81A\83}\83b\83`\82µ\82½\95\94\95ª\82Ì\83o\83C\83g\90\94(\95\8e\9a\90\94\82Å\82Í\82È\82¢)\82ð\95Ô\82µ\82Ü\82·\81B\83}\83b\83`\83\93\83O\82ª\8e¸\94s\82µ\82½\8fê\8d\87\82Í0\82ð\95Ô\82µ\82Ü\82·\81B<br>
-  \97á\82¦\82Î\81A<code><br>
-  Match('ABC', 'AB') = 2<br>
-  Match('ABC', 'A%.%.') = 3<br>
-  Match('A20BC', 'A%D') = 3<br>
-  Match('\s[20]', '\s%b') = 6<br>
-  Match('\s2', '\s%b') = 0</code></dd>
-  <dt>function MatchP(PStr, PPattern: PChar): integer;</dt>
-  <dd>
-  Match\82Æ\8aî\96{\93I\82É\93¯\8b@\94\\82Å\82·\82ª\81A\88ø\90\94\82É\95\8e\9a\83|\83C\83\93\83^\82ð\8eg\97p\82µ\82Ü\82·\81B\95s\95K\97v\82È\95\8e\9a\97ñ\82Ì\83R\83s\81[\82ª\94ð\82¯\82ç\82ê\82é\82½\82ß\81A\8cJ\82è\95Ô\82µ\8cÄ\82Ô\8fê\8d\87\82â\81A\82Æ\82 \82é\95\8e\9a\97ñ\82Ì\93r\92\86\82©\82ç\89ð\90Í\82µ\82½\82è\82·\82é\8fê\8d\87\82É\82Í\8d\82\91¬\82Å\82·\81B</dd>
-  <dt>function MarkUpAt(const Pos: integer): integer;</dt>
-  <dd>Pos\83o\83C\83g\96Ú(Pos\95\8e\9a\96Ú\82Å\82Í\82 \82è\82Ü\82¹\82ñ)\82É\82 \82é\83}\81[\83N\83A\83b\83v\82Ì\83C\83\93\83f\83b\83N\83X\82ð\95Ô\82µ\82Ü\82·\81B</dd>
-  <dt>function GetParam(Tag: String; const Index: integer): String;</dt>
-  <dd><code>\s[3]</code> \82â <code>\_c[\82±\82ñ\82É\82¿\82Í]</code> , <code>\q1[#cancel][\83L\83\83\83\93\83Z\83\8b]</code> 
-  \82Æ\82¢\82Á\82½\83}\81[\83N\83A\83b\83v\82©\82ç\81A\83X\83N\83E\83F\83A\83u\83\89\83P\83b\83g\82É\88Í\82Ü\82ê\82½\83p\83\89\83\81\81[\83^\82ð\8eæ\82è\8fo\82µ\82Ü\82·\81BTag\82Í\8eæ\82è\8fo\82µ\82½\82¢\83^\83O\91S\91Ì\81A<code>Index</code>\82Í\89½\94Ô\96Ú\82Ì\83p\83\89\83\81\81[\83^\82ð\8eæ\82è\8fo\82·\82©\81A\82Å\81A1\82©\82ç\8en\82Ü\82è\82Ü\82·\81B<code>\\</code> 
-  \82â <code>\]</code> \82É\82æ\82é\83G\83X\83P\81[\83v\82É\91Î\89\9e\82µ\81A\82±\82ê\82ç\82Ì\83G\83X\83P\81[\83v\82Í\8e©\93®\93I\82É\8c³\82Ì\8c`\82É\96ß\82³\82ê\82Ü\82·\81B<br>
-  Index\82ª\83[\83\8d\88È\89º\82Ì\8fê\8d\87\81A\83p\83\89\83\81\81[\83^\82ª\8eæ\82è\8fo\82¹\82È\82©\82Á\82½\8fê\8d\87\82È\82Ç\82É\82Í\81A\8bó\95\8e\9a\97ñ\82ª\95Ô\82è\82Ü\82·\81B<code><br>
-  GetParam('\s[3]', 1) = '3';<br>
-  GetParam('\s[3]', 2) = '';<br>
-  GetParam('\j[http://www.yahoo.co.jp/index[1\].html]', 1) = 'http://www.yahoo.co.jp/index[1].html'</code></dd>
-  <dt>function EscapeParam(const Param: String): String;</dt>
-  <dd>\j[] \82Ì\92\86\82É\88À\91S\82É\91ã\93ü\82Å\82«\82é\82æ\82¤\82É\81A<code>\</code> \82ð <code>\\</code> \82É\81A<code>]</code> \82ð 
-  <code>\]</code> \82É\95Ï\8a·\82µ\82½\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B\8c\98\98S\82È\83X\83N\83\8a\83v\83g\8dì\90¬\82Ì\82½\82ß\82É\82Í\90¥\94ñ\97\98\97p\82·\82é\82æ\82¤\82É\82µ\82Ä\82­\82¾\82³\82¢\81B</dd>
-</dl>
-<h2>\83p\83^\81[\83\93\82É\82Â\82¢\82Ä</h2>
-<p><code>TagPattern</code>, <code>MetaPattern</code>\83v\83\8d\83p\83e\83B\82É\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\89ð\90Í\82·\82é\82Æ\82«\82Ì\83p\83^\81[\83\93\82ð\8ew\92è\82µ\82Ü\82·\81B</p>
-<p>
-\83A\81[\83J\83C\83u\93¯\8d«\82Ì\83e\83L\83X\83g\83t\83@\83C\83\8b\82©\82ç\83R\83s\81[\82·\82é\82±\82Æ\82à\82Å\82«\82Ü\82·\82ª\81A\8f«\97\88\82Ì\83^\83O\8ag\92£\93\99\82Ì\82½\82ß\82É\82±\82Ì\8ed\97l\82ª\91\8dÝ\82µ\82Ü\82·\81B\82±\82Ì\83p\83^\81[\83\93\83\8a\83X\83g\8e©\90g\82ð\83e\83L\83X\83g\83t\83@\83C\83\8b\82È\82Ç\82©\82ç\93Ç\82Ý\8d\9e\82Þ\82æ\82¤\82É\82·\82é\82±\82Æ\82Å\81A\8eÀ\8ds\83t\83@\83C\83\8b\82ð\8dX\90V\82¹\82¸\82É\83^\83O\89ð\90Í\95\94\82Ì\82Ý\82ð\8dX\90V\82·\82é\82±\82Æ\82à\89Â\94\\82Å\82·\81B</p>
-<p>\81u\83^\83O\82ª\\82Å\8en\82Ü\82é\81v\81u\83\81\83^\95\8e\9a\97ñ\82ª%\82Å\8en\82Ü\82é\81v\81u\\\82â\%\82Í\83G\83X\83P\81[\83v\81v\82È\82Ç\82Æ\82¢\82Á\82½\8aî\96{\93I\82È\8ed\97l\82ª\95Ï\8dX\82É\82È\82ç\82È\82¢\8cÀ\82è\81A\83^\83O\82Ì\92Ê\8fí\82Ì\91\9d\8c¸\82É\8aÖ\82µ\82Ä\82Í\81A<code>Pattern</code>\83v\83\8d\83p\83e\83B\82ð\95Ï\8dX\82·\82é\82±\82Æ\82Å\81A\91å\92ï\91Î\89\9e\82Å\82«\82é\82Æ\8ev\82¢\82Ü\82·\81B\93Á\8eê\82È\8f\91\82«\95û\82Ì\8fê\8d\87\81A\83C\83x\83\93\83g\82ð\97\98\97p\82·\82é\95û\96@\82à\82 \82è\82Ü\82·\81B</p>
-<h3>\83p\83^\81[\83\93\82Ì\8f\91\82«\95û\8aT\97ª</h3>
-<p><code>TagPattern</code>\82Ì\8ae\8ds\82ª\81A1\82Â\82Ì\83^\83O\82É\89\9e\93\9a\82·\82é\83p\83^\81[\83\93\82Å\82·\81B\97á\82¦\82Î\81A\81u<code>\e</code>\81v\82Æ\82¢\82¤\8ds\82ð<code>TagPattern</code>\83v\83\8d\83p\83e\83B\82É\92Ç\89Á\82·\82é\82±\82Æ\82Å\81A\81u<code>\e</code>\81v\82Æ\82¢\82¤\83^\83O\82É\94½\89\9e\82Å\82«\82é\82æ\82¤\82É\82È\82è\81A\81u<code>!_c</code>\81v\82Æ\82¢\82¤\8ds\82ð\92Ç\89Á\82·\82ê\82Î\81A\81u<code>\_c</code>\81v\82Æ\82¢\82¤\83^\83O\82Í\83G\83\89\81[\82Å\82 \82é\81A\82Æ\89ð\90Í\82·\82é\82æ\82¤\82É\82È\82è\82Ü\82·\81B</p>
-<p>
-(\82±\82Ì\82æ\82¤\82É\83G\83\89\81[\82É\82È\82Á\82½\83^\83O\82ð\96³\8e\8b\82·\82é\82Ì\82©\81A\82 \82é\82¢\82Í\82Ç\82¤\8f\88\97\9d\82·\82é\82Ì\82©\82Ç\82¤\82©\82È\82Ç\82É\82Â\82¢\82Ä\82Í\81A\89ð\90Í\8eÒ\82Ì\8eÀ\91\95\82É\82©\82©\82Á\82Ä\82¢\82Ü\82·\81BTSsParser\82Å\82Í\81A\82»\82Ì\83^\83O\82ð\83G\83\89\81[\82Æ\82µ\82Ä\91®\90«\82Ã\82¯\82é\82¾\82¯\82Å\82·\81B)</p>
-<p>\83p\83^\81[\83\93\82Í\8fã\82©\82ç\8f\87\94Ô\82É\8e\8e\8ds\82³\82ê\81A\83}\83b\83`\82µ\82½\8e\9e\93_\82Å\8e\8e\8ds\82ð\92\86\8e~\82µ\82Ü\82·\81B</p>
-<p><code>TagPattern</code>\82Ì\8ae\8ds\82Í\81A<code>\</code>\8bL\8d\86\82Ü\82½\82Í<code>!</code>\8bL\8d\86\82Å\8en\82ß\82Ä\82­\82¾\82³\82¢\81B<code>\</code>\8bL\8d\86\82Å\8en\82Ü\82é\83p\83^\81[\83\93\82Í\81A\83}\83b\83`\82µ\82½\8fê\8d\87\82»\82ê\82ð\90³\93\96\82È\83^\83O\82ð\82µ\82Ä\8f\88\97\9d\82µ\82Ü\82·\81B<code>!</code>\8bL\8d\86\82Å\8en\82Ü\82é\83p\83^\81[\83\93\82Í\81A\83}\83b\83`\82µ\82½\8fê\8d\87\82»\82ê\82ð\83^\83O\82Ì\83G\83\89\81[\82Æ\82µ\82Ä\8f\88\97\9d\82µ\82Ü\82·\81B</p>
-<p>\97á\82¦\82Î\81A\81u<code>\w</code>\81v\83^\83O\82Ì\8f\88\97\9d\82Ì\82½\82ß\82É\82Í\81A</p>
-<blockquote>
-  <p><code>\w%d<br>
-  !w%.</code></p>
-</blockquote>
-<p>\82Æ\82¢\82¤2\8ds\82ðTagPattern\82É\89Á\82¦\82é\82Æ\82æ\82¢\82Å\82µ\82å\82¤\81B\82±\82ê\82Å\81A<code>\w9</code> \93\99\82Í\90³\93\96\82È\83^\83O\82Å\81A\90\94\8e\9a\88È\8aO\82ªw\82Ì\8cã\82É\82«\82½\8fê\8d\87\82Í 
-<code>\w\82 </code> \82Æ\82¢\82Á\82½\91S\91Ì\82ð\83^\83O\83G\83\89\81[\82Æ\82µ\82Ä\8f\88\97\9d\82·\82é\81A\82Æ\82¢\82¤\88Ó\96¡\82É\82È\82è\82Ü\82·\81B</p>
-<p><code>MetaPattern</code>\82Ì\8ae\8ds\82ª\81A1\82Â\82Ì\83\81\83^\95\8e\9a\97ñ\82É\89\9e\93\9a\82·\82é\83p\83^\81[\83\93\82Å\82·\81B\97á\82¦\82Î\81uselfname\81v\82Æ\82¢\82¤\8ds\82ðMetaPattern\83v\83\8d\83p\83e\83B\82É\92Ç\89Á\82·\82é\82±\82Æ\82Å\81A\81u<code>%selfname</code>\81v\82Æ\82¢\82¤\83\81\83^\95\8e\9a\97ñ\82É\94½\89\9e\82µ\82Ü\82·\81B<code>MetaPattern</code>\82Ì\8fê\8d\87\82Í\81A<code>%</code>\88È\8d~\82É\91±\82­\95\8e\9a\97ñ\82ð\82»\82Ì\82Ü\82Ü\8bL\8fq\82·\82é\82æ\82¤\82È\8ai\8dD\82Å\91å\8fä\95v\82Å\82·\81B(\83p\83^\81[\83\93\82à\8eg\82¦\82Ü\82·)</p>
-<p>\83}\83b\83`\8e\8e\8ds\82Í\83p\83^\81[\83\93\83\8a\83X\83g\82Ì\8fã\82©\82ç\8f\87\94Ô\82É\8ds\82í\82ê\82é\82½\82ß\81A<code>MetaPattern</code>\83v\83\8d\83p\83e\83B\82Å\81A\97á\82¦\82Π<code>selfname2</code> 
-\82Æ\82¢\82¤\8ds\82Í <code>selfname</code> \82æ\82è\8fã\82É\94z\92u\82³\82ê\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B</p>
-<h3>\83p\83^\81[\83\93\82Ì\8bL\8fq\95û\96@</h3>
-<p>\90³\8bK\95\\8c»\82Ý\82½\82¢\82È\82à\82Ì\82Å\82·\82ª\81A\82»\82±\82Ü\82Å\8d\82\8b@\94\\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B\8bt\82É\90³\8bK\95\\8c»\82Å\82Í\95\\8c»\82µ\82Ã\82ç\82¢\95\\8bL\82É\91Î\89\9e\82µ\82Ä\82½\82è\82à\82µ\82Ü\82·\82ª\81B</p>
-<ul>
-  <li><code>%d</code> \82Í\94C\88Ó\82Ì\90®\90\941\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B<code>\s%d</code> \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A<code>\s0</code> 
-  \82â <code>\s3</code> \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%D</code> \82Í\94C\88Ó\82Ì\90®\90\94\97ñ\82É\8dÅ\92·\83}\83b\83`\82µ\82Ü\82·\81B<code>\s[%D]</code> \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A<code>\s[0]</code> 
-  \82â <code>\s[10]</code> \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%b</code> \82Í[]\82Å\88Í\82Ü\82ê\82½\95\8e\9a\97ñ\82É\83}\83b\83`\82µ\82Ü\82·\81B<code>\]</code> \82â <code>\\</code> 
-  \82É\82æ\82é\83G\83X\83P\81[\83v\82É\91Î\89\9e\82µ\82Ü\82·\81B<code>\j%b</code> \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A <code>\j[http://www.a.com/index[1\].html]</code> 
-  \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%.</code> \82Í\94C\88Ó\82Ì1\95\8e\9a(\83V\83\93\83O\83\8b\83o\83C\83g\81E\83}\83\8b\83`\83o\83C\83g\96â\82í\82¸)\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%m</code> \82Í\94C\88Ó\82Ì\83V\83\93\83O\83\8b\83o\83C\83g\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%M</code> \82Í\94C\88Ó\82Ì\83}\83\8b\83`\83o\83C\83g\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%%</code> \82Í\81u%\81v\8bL\8d\86\82»\82Ì\82à\82Ì\82É\83}\83b\83`\82µ\82Ü\82·\81B\8eg\97p\82µ\82È\82¢\82Æ\82¢\82¯\82È\82¢\8b@\89ï\82Í\82¨\82»\82ç\82­\8f«\97\88\82à\82 \82è\82Ü\82¹\82ñ\81B</li>
-  <li>%\82Ì\92¼\8cã\82ª\81A\8fã\8bL\82Ì\82¢\82¸\82ê\82Å\82à\82È\82¢\95\8e\9a\82Å\82 \82é\8fê\8d\87\81A\82Æ\82è\82 \82¦\82¸ <code>%%</code> \82Æ\82µ\82Ä\89ð\8eß\82µ\82Ü\82·\82ª\81A\82±\82Ì\82æ\82¤\82È\8eg\82¢\95û\82Í\82µ\82È\82¢\82Å\82­\82¾\82³\82¢\81B</li>
-  <li>\82»\82ê\88È\8aO\82Ì\95\8e\9a\82Í\82·\82×\82Ä\82»\82Ì\95\8e\9a\82»\82Ì\82à\82Ì\82É\83}\83b\83`\82µ\82Ü\82·\81B\\82à\8aÜ\82ß\81B</li>
-</ul>
-<h3>\83}\83b\83`\83\93\83O\8fÚ\8d×</h3>
-<p>\83}\83b\83`\83\93\83O\82Í\88È\89º\82Ì\82æ\82¤\82É\8ds\82í\82ê\82Ü\82·\81B</p>
-<ol>
-  <li>
-  \83}\81[\83N\83A\83b\83v\82Æ\8ev\82í\82ê\82é\81u\\81v\82Ü\82½\82Í\81u%\81v\82ð\90æ\93ª\82©\82ç\92T\82µ\82Ü\82·\81B\81u\\\81v\82â\81u\%\81v\82Í\83G\83X\83P\81[\83v\82Å\82·\82Ì\82Å\93Ç\82Ý\94ò\82Î\82³\82ê\82Ü\82·\81B\82»\82Ì\95\94\95ª\82Ü\82Å\82Í\81A\83}\81[\83N\83A\83b\83v\82Å\82Í\82È\82¢\92Ê\8fí\82Ì\95\8e\9a\97ñ\82Å\82·\81B</li>
-  <li>
-  <p>
-  \81u%\81v\82ð\8c©\82Â\82¯\82½\8fê\8d\87\82Í\83\81\83^\95\8e\9a\97ñ\82Ì\89Â\94\\90«\82ª\82 \82é\82Ì\82Å\81A\83}\83b\83`\83\93\83O\82ð\8aJ\8en\82µ\82Ü\82·\81B%\88È\89º\82ª\97L\8cø\82È\83\81\83^\95\8e\9a\97ñ\82Æ\82µ\82Ä\89ð\8eß\82Å\82«\82È\82¢\8fê\8d\87\82Í\81A\81u%\81v\82Í\88Ó\96¡\82ð\82È\82³\82È\82¢\92Ê\8fí\82Ì%\95\8e\9a\97ñ\82Æ\82µ\82Ä\81A\%\82É\83G\83X\83P\81[\83v\82³\82ê\82Ä(<code>EscapeInvalidMeta</code>\82Å\90§\8cä\89Â\94\)\91O\82Ì<code>mtStr</code>\83}\81[\83N\83A\83b\83v\82É\82­\82Á\82Â\82«\82Ü\82·\81B</li>
-  <li>\81u\\81v\82ð\8c©\82Â\82¯\82½\8fê\8d\87\82Ì\83}\83b\83`\83\93\83O\82ð\8aJ\8en\82µ\82Ü\82·\81B\\88È\89º\82ª\90³\8bK\82Ì\83^\83O\82Æ\82µ\82Ä\89ð\8eß\82Å\82«\82½\8fê\8d\87\82Í<code>mtTag</code>\83^\83C\83v\82Æ\82µ\82Ä\81A\83G\83\89\81[\83^\83O\82Æ\82È\82Á\82½\8fê\8d\87\82ÍmtTagErr\82Æ\82µ\82Ä\90Ø\82è\8fo\82µ\82Ü\82·\81B<code>TagPattern</code>\82Ì\82Ç\82Ì\8ds\82É\82à\83}\83b\83`\82µ\82È\82©\82Á\82½\8fê\8d\87\82Í\81A\\82Ì\8e\9f\82Ì1\95\8e\9a\82ð\8aÜ\82ß\82Ä\81A\83G\83\89\81[\83^\83O\82Æ\82µ\82Ä\90Ø\82è\8fo\82µ\82Ü\82·\81B</li>
-  <li>\8dÅ\8f\89\82É\96ß\82è\82Ü\82·\81B</li>
-</ol>
-<h2>\8eg\97p\97á</h2>
-<h3>SSTP\83T\81[\83o</h3>
-<p>\93Æ\8e©SSTP\83T\81[\83o\8d\\92z\95â\8f\95\82É\97\98\97p\82·\82é\8fê\8d\87\82Í\81A<code>LeaveEscape := false; EscapeInvalidMeta := false;</code> 
-\82Æ\82·\82é\82Æ\8aÈ\92P\82Å\82·\81B</p>
-<p><code>SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; case SsParser.MarkUpType[i] of<br>
-&nbsp;&nbsp;&nbsp; mtStr: Memo1.Lines.Add(SsParser.Str[i]);<br>
-&nbsp;&nbsp;&nbsp; mtTag: {\83^\83O\8aÖ\98A\82Ì\8f\88\97\9d}<br>
-&nbsp;&nbsp;&nbsp; mtTagErr: Memo1.Lines.Add(SsParser.Str[i]); //\8f\88\97\9d\82¹\82¸\82É\82»\82Ì\82Ü\82Ü\95\\8e¦<br>
-&nbsp;&nbsp;&nbsp; mtMeta: {\83\81\83^\95\8e\9a\97ñ\95Ï\8a·\8cê\95\\8e¦}<br>
-&nbsp; end;<br>
-end;</code></p>
-<h3>\83X\83N\83\8a\83v\83g\90F\95ª\82¯HTML\8dì\90¬</h3>
-<p>\90F\95ª\82¯\82ª\96Ú\93I\82Ì\8fê\8d\87\81A\83X\83N\83\8a\83v\83g\82ª\95Ï\82í\82é\90S\94z\82Ì\82È\82¢\82æ\82¤\81A<code>LeaveEscape := true; EscapeInvalidMeta := 
-false;</code> \82Æ\82µ\82Ü\82·\81B</p>
-<p>\88È\89º\82Í\81A\83^\83O\95\94\95ª\82É\90F\82ð\90Ý\92è\82·\82éHTML\83}\81[\83N\83A\83b\83v\82Å\82·\81B</p>
-<p><code>var Html: String;<br>
-//<br>
-SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; case SsParser.MarkUpType[i] of<br>
-&nbsp;&nbsp;&nbsp; mtStr:&nbsp;&nbsp;&nbsp; Html := Html + SsParser.Str[i];<br>
-&nbsp;&nbsp;&nbsp; mtTag:&nbsp;&nbsp;&nbsp; Html := Html + '&lt;font 
-color=&quot;green&quot;&gt;' + SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp;&nbsp;&nbsp; mtTagErr: Html := Html + '&lt;font color=&quot;red&quot;&gt;' + 
-SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp;&nbsp;&nbsp; mtMeta:&nbsp;&nbsp; Html := Html + '&lt;font color=&quot;blue&quot;&gt;' + 
-SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp; end;<br>
-end;<br>
-Edit2.Text := Html;</code></p>
-<h3>OnSsParse\8eg\97p\97á</h3>
-<p>\88È\89º\82Í\81AOnSsParse\83C\83x\83\93\83g\82Ì\8eg\97p\97á\82Å\82·\81B\82à\82Á\82Æ\82à\92P\8f\83\82É\81A\u\83^\83O\82ð\94»\92è\82µ\82Ü\82·\81BTagPattern\82Ì1\8ds\96Ú\82É <code>\u</code> 
-\82Æ\8f\91\82¢\82½\8fê\8d\87\82Æ\93¯\82\93®\8dì\82Æ\82È\82è\82Ü\82·\81B</p>
-<p><code>procedure TForm1.SsParser1SsParse(Sender: TObject; const Script: 
-String;<br>
-&nbsp; var Len: integer; var MarkType: TSsMarkUpType; var Extra: String)<br>
-begin<br>
-&nbsp; if Pos('\u', Script) = 1 then begin<br>
-&nbsp;&nbsp;&nbsp; Len := Length('\u');<br>
-&nbsp;&nbsp;&nbsp; MarkType := mtTag;<br>
-&nbsp; end;<br>
-end;</code></p>
-<h2>\8eg\97p\97á - \83T\81[\83t\83B\83X\94»\92è</h2>
-<p>\88ê\94Ô\8dÅ\8cã\82Ì\83T\81[\83t\83B\83X\82ª\89½\82É\82È\82é\82©\82ð\94»\92è\82µ\82Ü\82·\81B\82½\82¾\82µ\96{\97\88\82Í\81A\0, 
-\1\82É\82æ\82é\83X\83R\81[\83v\90Ø\82è\91Ö\82¦\8f\88\97\9d\82â\81A\_s\82É\82æ\82é\83V\83\93\83N\83\8d\83i\83C\83Y\83h\83Z\83b\83V\83\87\83\93\82Ì\8f\88\97\9d\82ª\95K\97v\82Å\82µ\82å\82¤\81B</p>
-<p><code>var Last: integer;<br>
-//<br>
-SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; if SsParser.Match(SsParser.Str[i], '\s%b') &gt; 0 then begin<br>
-&nbsp;&nbsp;&nbsp; try<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last := StrToInt(SsParser.GetParam(SsParser.Str[i]));<br>
-&nbsp;&nbsp;&nbsp; except<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on EConvertError do<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;<br>
-&nbsp;&nbsp;&nbsp; end;<br>
-&nbsp; end;<br>
-end;</code></p>
-<h2>\8f\94\92\8d\88Ó</h2>
-<h3>\8dÄ\89ð\90Í\82É\82Â\82¢\82Ä</h3>
-<p><code>with SsParser1 do InputString := InputString;</code></p>
-<p>\82Æ\82·\82é\82±\82Æ\82Å\81A<code>EscapeInvalidMeta</code>\93\99\82Ì\89ð\90Í\83I\83v\83V\83\87\83\93\82â\81A<code>MetaPattern</code>\93\99\82Ì\89ð\90Í\83p\83^\81[\83\93\82ª\95Ï\89»\82µ\82½\82Æ\82«\82É\8dÄ\89ð\90Í\82ð\8ds\82¦\82Ü\82·\81B\95Ï\82È\8f\91\82«\95û\82Å\82·\82ª\81B</p>
-<h3>\89ü\8ds\95\8e\9a\82É\82Â\82¢\82Ä</h3>
-<p><code>InputString</code>\82É\89ü\8ds\95\8e\9a\82â\82»\82Ì\91¼\82Ì\8bó\94\92\95\8e\9a\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82½\8fê\8d\87\81A\92Ê\8fí\82Ì\95\8e\9a\82Æ\93¯\82\82æ\82¤\82É\88µ\82¢\82Ü\82·\81B\82Â\82Ü\82è\81A\89ü\8ds\95\8e\9a\82¾\82©\82ç\82Æ\82¢\82Á\82Ä\93Á\82É\89½\82ç\82©\82Ì\8f\88\97\9d\82ª\8ds\82í\82ê\82½\82è\81A\8bt\82É\8f\88\97\9d\82Ì\8e×\96\82\82É\82È\82Á\82½\82è\82·\82é\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81B\89ü\8ds\82ð 
-<code>\n</code> \82É\95Ï\8dX\82µ\82½\82¢\81A\82È\82Ç\82Ì\8fê\8d\87\82Í\82 \82ç\82©\82\82ß StringReplace \82È\82Ç\82ð\97\98\97p\82µ\82Ä\8e©\95ª\82Å\95Ï\8a·\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h3>\83^\83O\83G\83\89\81[\82Ì\97\98\97p\82É\82Â\82¢\82Ä</h3>
-<p><code>TagPattern</code>\82Å\8ds\93ª\82ª <code>!</code> \82Å\8en\82Ü\82é\83p\83^\81[\83\93\82ð\8ew\92è\82·\82é\82±\82Æ\82â\81AOnSsParse\83C\83x\83\93\83g\82Å<code>mtTagErr</code>\83}\81[\83N\83A\83b\83v\82ð\95Ô\82·\8e\96\82Å\81A\\82Å\8en\82Ü\82é\94C\88Ó\82Ì\95\8e\9a\97ñ\82ð\83^\83O\83G\83\89\81[\82Æ\8c©\82È\82·\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\82Ü\82½\81A<code>TagPattern</code>\82Å\83}\83b\83`\82µ\82È\82©\82Á\82½\8fê\8d\87\82Í\81A\\8bL\8d\86\82Ì\8e\9f\82Ì1\95\8e\9a\82Ü\82Å\82ð\8aÜ\82ß\82Ä\83^\83O\83G\83\89\81[\82Æ\82µ\82Ä2\95\8e\9a\95ª\90Ø\82è\8fo\82µ\82Ü\82·\81B\82±\82Ì\97\98\97p\95û\96@\82Å\82·\82ª\81A</p>
-<ul>
-  <li>\83X\83N\83\8a\83v\83g\82Ì\83`\83F\83b\83N\82É\97\98\97p\82·\82é\8fê\8d\87\81A<code>TagPattern</code>\82ð\95Ï\8dX\82·\82é\8e\96\82Å\81ASSTP\8c \8cÀ\82Å\93®\82©\82È\82¢\83^\83O\82Ì\83`\83F\83b\83N\82ð\8ds\82¤\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B</li>
-  <li>
-  SSTP\83T\81[\83o\8d\\92z\82Ì\8fê\8d\87\81A\83G\83\89\81[\83^\83O\82Í\82»\82Ì\82Ü\82Ü\83Z\83\8a\83t\82Æ\93¯\82\8c`\82Å\8fo\97Í\82·\82é\82æ\82¤\82É\82·\82ê\82Î\81A\83^\83O\82Ì\83}\81[\83N\83A\83b\83v\83G\83\89\81[\82É\8aÖ\82µ\82Ä\8f_\93î\82È\95\9c\8bA\82ª\82Å\82«\82Ü\82·(\8fã\82Ì\97á\8eQ\8fÆ)\81B</li>
-</ul>
-<h2>\89ü\94Å\97\9a\97ð</h2>
-<dl>
-  <dt>2003/04/01</dt>
-  <dd>\93à\95\94\82ð\8f\91\82«\92¼\82µ\82Ä\81A10\94{\81`100\94{\82Ù\82Ç\8d\82\91¬\89»\81B\8aJ\94­\83}\83V\83\93(PentiumIII 
-  1GHz)\82Å\82Í\81A2KB\82Ì\92·\95\83X\83N\83\8a\83v\83g\82ð0.01\95b\88È\93à\82É\89ð\90Í\82·\82é\82æ\82¤\82É\82È\82è\82Ü\82µ\82½\81B</dd>
-  <dt>2003/04/03</dt>
-  <dd><code>Position</code>\81A<code>MarkUpAt</code>\82ð\92Ç\89Á\81B</dd>
-</dl>
-
-</body>
-
-</html>
diff --git a/sakurasuite/manual/ssplaytime.html b/sakurasuite/manual/ssplaytime.html
deleted file mode 100644 (file)
index 2a10245..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<title>\90V\82µ\82¢\83y\81[\83W 0</title>
-<link rel="stylesheet" type="text/css" href="sakurasuite.css">
-</head>
-
-<body>
-
-<h1>TSsPlayTime, TSsPlayTimeParams</h1>
-<h2>\8aT\97v</h2>
-<p>\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\8dÄ\90\8e\9e\8aÔ\82ð\97\\91ª\82µ\82Ü\82·\81B\95\8e\9a\90\94\82ª\91½\82¢\8fê\8d\87\82â\81A\83E\83F\83C\83g\83^\83O\82ª\91½\82¢\8fê\8d\87\82É\82Í\8dÄ\90\8e\9e\8aÔ\82ª\92·\82­\82È\82è\82Ü\82·\81B</p>
-<p>\83x\81[\83X\83E\83F\83A\82â\8dÄ\90\8aÂ\8b«\81A\82Ü\82½\82»\82Ì\90Ý\92è\82É\82æ\82Á\82Ä\82Í\8dÄ\90\8e\9e\8aÔ\82É\82Î\82ç\82Â\82«\82ª\90\82\82Ü\82·\81B\82»\82ê\82ç\82Ì\92è\90\94\82ÍTSsPlayTimeParams\83R\83\93\83|\81[\83l\83\93\83g\82ª\95Û\8e\9d\82µ\82Ü\82·\81BTSsPlayTimeParams\82ð\95¡\90\94\94z\92u\82µ\82Ä\93K\8bX\90Ø\82è\91Ö\82¦\82é\82±\82Æ\82Å\81A\82¢\82ë\82¢\82ë\82È\8dÄ\90\8aÂ\8b«\82Å\82Ì\8dÄ\90\8e\9e\8aÔ\82ð\97\\91ª\89Â\94\\82Å\82·\81B</p>
-<h2>\8aî\96{\82Ì\8eg\82¢\95û</h2>
-<p>TSsPlayTime\82ÆTSsPlayTimeParams\81A\82»\82µ\82ÄTSsParser\82Ì\8ae\83R\83\93\83|\81[\83l\83\93\83g\82ð1\8cÂ\82¸\82Â\83t\83H\81[\83\80\82É\94z\92u\82µ\82Ü\82·\81B</p>
-<p>TSsParser\82Ì\90à\96¾\82ð\8eQ\8dl\82É\81A\90³\82µ\82­SsParser\82ÌMetaPattern, TagPattern\82ð\90Ý\92è\82µ\82Ü\82·\81B</p>
-<p>\83I\83u\83W\83F\83N\83g\83C\83\93\83X\83y\83N\83^\82æ\82è\81ATSsPlayTime\82ÌSsParser\83v\83\8d\83p\83e\83B\82ÆPlayTimeParams\83v\83\8d\83p\83e\83B\82É\81A\82»\82ê\82¼\82ê\8d¡\92u\82¢\82½\83R\83\93\83|\81[\83l\83\93\83g\82ð\90Ý\92è\82µ\82Ü\82·\81B</p>
-<p>SsPlayTime.PlayTime \8aÖ\90\94\82É\83X\83N\83\8a\83v\83g\82ð\93n\82·\82±\82Æ\82Å\81A\8dÄ\90\8e\9e\8aÔ\82ð\8cv\8eZ\82µ\82Ä\81A\83~\83\8a\95b\92P\88Ê\82Å\95Ô\82µ\82Ü\82·\81B</p>
-<h2>\8cp\8f³</h2>
-<p>TObject - TPersistent - TComponent - TSsPlayTime<br>
-TObject - TPersistent - TComponent - TSsPlayTimeParams</p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X - TSsPlayTime\82Ì\83\81\83\\83b\83h\82Æ\83v\83\8d\83p\83e\83B</h2>
-<dl>
-  <dt>property PlayTimeParams: TSsPlayTimeParams</dt>
-  <dd>\8cv\8eZ\82É\8eg\97p\82·\82éTSsPlayTimeParams\83R\83\93\83|\81[\83l\83\93\83g\82ð\8aÖ\98A\82Ã\82¯\82Ü\82·\81B</dd>
-  <dt>property SsParser: TSsParser</dt>
-  <dd>
-  \82³\82­\82ç\83X\83N\83\8a\83v\83g\83p\81[\83T\82ð\8aÖ\98A\82Ã\82¯\82Ü\82·\81BPlayTime\83\81\83\\83b\83h\82É\93n\82é\89Â\94\\90«\82Ì\82 \82é\83X\83N\83\8a\83v\83g\82ð\90³\82µ\82­\89ð\8eß\82Å\82«\82é\82æ\82¤\82É\81AMetaPattern\81ATagPattern\82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\82Ü\82½\81A\82±\82ÌSsParser<strong>\83R\83\93\83|\81[\83l\83\93\83g\82Ì\93à\97e\82ÍTSsPlayTime\82É\82æ\82Á\82Ä\8f\91\82«\8a·\82¦\82ç\82ê\82Ü\82·\81B</strong></dd>
-  <dt>function PlayTime(const Script: String): integer;</dt>
-  <dd>\8aÖ\98A\82Ã\82¯\82ç\82ê\82½SsParser\82ÆPlayTimeParams\82ð\8eg\82Á\82Ä\81A\93n\82³\82ê\82½\83X\83N\83\8a\83v\83g\82Ì\8dÄ\90\8e\9e\8aÔ(\83~\83\8a\95b)\82ð\97\\91ª\82µ\82Ä\95Ô\82µ\82Ü\82·\81B\83X\83N\83\8a\83v\83g\82ð\89ð\90Í\82µ\82Ä\83E\83F\83C\83g\82Ì\90\94\81A\83T\81[\83t\83B\83X\95Ï\8dX\82Ì\90\94\82È\82Ç\82ð\83J\83E\83\93\83g\82µ\81ASsPlayTimeParams\82Ì\8ae\90Ý\92è\8d\80\96Ú\82ð\8cW\90\94\82Æ\82µ\82½\92P\8f\83\82È1\8e\9f\8c\8b\8d\87(\90ü\8c`\8c\8b\8d\87)\82É\82æ\82Á\82Ä\8dÄ\90\8e\9e\8aÔ\82ð\97\\91ª\82µ\82Ü\82·\81B</dd>
-  <h2>\83\8a\83t\83@\83\8c\83\93\83X - TSsPlayTimeParams\82Ì\83v\83\8d\83p\83e\83B</h2>
-  <p>\8e\9e\8aÔ\82ð\8ew\92è\82·\82é\8fê\8d\87\82Í\81A\92P\88Ê\82Í\82·\82×\82Ä\83~\83\8a\95b(1/1000\95b)\82Å\82·\81B</p>
-  <dl>
-    <dt>property ProfileName: String;</dt>
-    <dd>
-    \82±\82Ì\83p\83\89\83\81\81[\83^\82Ì\83Z\83b\83g\82É\94C\88Ó\82Ì\96¼\91O\82ð\95t\82¯\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\81umateria\95W\8f\80\91¬\93x\81v\82È\82Ç\81A\82í\82©\82è\82â\82·\82¢\96¼\91O\82ð\95t\82¯\82Ä\82­\82¾\82³\82¢\81B\83R\83\93\83|\81[\83l\83\93\83g\8e©\91Ì\82Ì\93®\8dì\82É\89e\8b¿\82Í\82 \82è\82Ü\82¹\82ñ\81B</dd>
-    <dt>property CostConst: integer;</dt>
-    <dd>
-    \92P\8f\83\82É\83X\83N\83\8a\83v\83g\8dÄ\90\97\\91ª\8e\9e\8aÔ\82É\91«\82³\82ê\82é\92è\90\94\92l\82Å\82·\81B\97á\82¦\82Î\8eÀ\8dÛ\82Ì1\95\8e\9a\96Ú\82Ì\8dÄ\90\8aJ\8en\82Ü\82Å\82É\82©\82È\82è\82Ì\92x\89\84\82ª\90\82\82é\82æ\82¤\82È\8fê\8d\87\82É\81A\90³\82Ì\92l\82ð\8ew\92è\82µ\82Ä\82¨\82­\82Æ\81ATSsPlayTime.PlayTime\82Ì\96ß\82è\92l\82É\82»\82Ì\92l\82ª\89Á\82í\82è\82Ü\82·\81B\83f\83t\83H\83\8b\83g\82Å\82Í0\82Å\82·\81B</dd>
-    <dt>property CostWait: integer read FCostWait;</dt>
-    <dd>
-    \83E\83F\83C\83g\83^\83O(\w1\81`\w9)\82É\82Â\82¢\82Ä\81A\w1\82Ì1\8cÂ\95ª\82Ì\83E\83F\83C\83g\97Ê\82ð\8ew\92è\82µ\82Ü\82·\81B\96{\97\88\82Ì\92è\8b`\82Å\82Í\w1\82Í50ms\82Ì\83E\83F\83C\83g\82Æ\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82·\82ª\81A\8dÄ\90\8aÂ\8b«\82â\90Ý\92è\82É\82æ\82Á\82Ä\81A\83E\83F\83C\83g\97Ê\82Í\88Ù\82È\82è\82Ü\82·\81B\82È\82¨\81A\w2\81`\w9\82Í\81A\82»\82ê\82¼\82ê\w1\82Ì\90³\8am\82É2\81`9\94{\82Ì\83E\83F\83C\83g\97Ê\82Å\82 \82é\82Æ\89¼\92è\82³\82ê\82Ä\82¢\82Ü\82·\81B</dd>
-    <dt>property CostHiResWait: integer;</dt>
-    <dd>\8d\82\90¸\93x\83E\83F\83C\83g\_w[1]\82Ì\83E\83F\83C\83g\97Ê\82Å\82·\81B\_w[n]\82Í\_w[1]\82Ìn\94{\82Ì\83E\83F\83C\83g\97Ê\82Æ\82È\82è\82Ü\82·\81B\92è\8b`\82©\82ç\82µ\82Ä1ms\82É\82È\82é\82Æ\8ev\82¢\82Ü\82·\82ª\94O\82Ì\82½\82ß\97p\88Ó\82³\82ê\82Ä\82¢\82Ü\82·\81B</dd>
-    <dt>property CostSurface: integer;</dt>
-    <dd>
-    \83T\81[\83t\83B\83X\82Ì1\8cÂ\82Ì\90Ø\82è\91Ö\82¦\82É\82©\82©\82é\8e\9e\8aÔ\82Å\82·\81B\82È\82¨\81A\83V\83\93\83N\83\8d\83i\83C\83Y\83h\83Z\83N\83V\83\87\83\93\82Ì\8fê\8d\87\81A2\82Â\82Ì\83T\81[\83t\83B\83X\82ª\93¯\8e\9e\82É\90Ø\82è\91Ö\82í\82é\82±\82Æ\82É\82È\82è\82Ü\82·\82ª\81A\82»\82ê\82Í\8dl\97\82³\82ê\82Ü\82¹\82ñ\81B\82Ü\82½\82±\82Ì\92l\82Í\81A\8dÄ\90\82·\82é\83}\83V\83\93\82Ì\8aÂ\8b«\82É\82æ\82Á\82Ä\8dÅ\82à\91å\82«\82­\8d\89E\82³\82ê\82ª\82¿\82È\83p\83\89\83\81\81[\83^\82Å\82·\82Ì\82Å\81A\90T\8fd\82É\8c\88\92è\82µ\82Ä\82­\82¾\82³\82¢(\83T\81[\83t\83B\83X\82Ì\95Ï\8dX\82ª\8c\83\82µ\82¢\92·\95\83X\83N\83\8a\83v\83g\82Å\82È\82¢\8cÀ\82è\8dÅ\8fI\8c\8b\89Ê\82É\91å\82«\82È\89e\8b¿\82Í\82È\82¢\82©\82à\82µ\82ê\82Ü\82¹\82ñ\82ª)</dd>
-    <dt>property CostChar: integer;</dt>
-    <dd>\94¼\8ap\95\8e\9a1\95\8e\9a\95ª\82Ì\8dÄ\90¶(SpecialChars\82É\8ew\92è\82³\82ê\82Ä\82¢\82é\82à\82Ì\82ð\8f\9c\82­)\82É\82©\82©\82é\8e\9e\8aÔ\82Å\82·\81B</dd>
-    <dt>property CostDBChar: integer;</dt>
-    <dd>\91S\8ap\95\8e\9a1\95\8e\9a\95ª\82Ì\8dÄ\90¶(SpecialChars\82É\8ew\92è\82³\82ê\82Ä\82¢\82é\82à\82Ì\82ð\8f\9c\82­)\82É\82©\82©\82é\8e\9e\8aÔ\82Å\82·\81B\8c»\8dÝ\82Ì\82Æ\82±\82ë\81A\82±\82Ì\92l\82ðCostChar\82Æ\93¯\82\82Æ\82·\82é\82×\82«\8dÄ\90\8aÂ\8b«\82Æ\81ACostDBChar\82Ì2\94{\82Ì\8dÄ\90\8e\9e\8aÔ\82ð\82©\82¯\82é\8dÄ\90\8aÂ\8b«\82ª\91\8dÝ\82µ\82Ä\82¢\82é\82æ\82¤\82Å\82·\81B\91O\8eÒ\82Ì\82æ\82¤\82È\8dÄ\90\8aÂ\8b«\82Å\82Í\81A\89p\95\93\99\82Ì\8dÄ\90\82ª\94ä\8ar\93I\92x\82­\8c©\82¦\82é\82±\82Æ\82É\82È\82è\82Ü\82·\81B</dd>
-    <dt>property CostQuickChar: integer;</dt>
-    <dd>
-    \83N\83C\83b\83N\83Z\83N\83V\83\87\83\93\82Ì\8fê\8d\87\82É1\95\8e\9a\82Ì\8dÄ\90\82É\82©\82¯\82é\8e\9e\8aÔ\82Å\82·\81B\82±\82ê\82Í\91S\8ap\81E\94¼\8ap\82ð\8bæ\95Ê\82µ\82Ü\82¹\82ñ\81B\97\9d\91z\93I\82É\82Í\83N\83C\83b\83N\83Z\83N\83V\83\87\83\93\93à\82Å\82Ì\95\8e\9a\8dÄ\90\8e\9e\8aÔ\82Í\83[\83\8d\82Å\82·\82ª\81A\8aÂ\8b«\82É\82æ\82Á\82Ä\82Í\8f¬\82³\82È\90³\82Ì\92l\82ð\8ew\92è\82·\82é\82±\82Æ\82Å\81A\97\\91ª\90¸\93x\82ª\8d\82\82Ü\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B</dd>
-    <dt>property SpecialChars: TSsPlayTimeSpecialChars;</dt>
-    <dd>
-    \8fã\8bL\82Ì\94¼\8ap\95\8e\9a\81E\91S\8ap\95\8e\9a\82Ì\97\\91ª\82Ì\97á\8aO\82ð\8ew\92è\82µ\82Ü\82·\81B\82¢\82­\82Â\82©\82Ì\8dÄ\90\8aÂ\8b«\82Å\82Í\81A\8bå\93Ç\93_\82É\8e©\93®\93I\82É\92·\82ß\82Ì\83E\83F\83C\83g\82ð\82Æ\82é\82à\82Ì\82ª\91\8dÝ\82µ\82Ü\82·\82Ì\82Å\81A\82»\82Ì\82æ\82¤\82È\82à\82Ì\82ð\82±\82±\82Å\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\90Ý\92è\82·\82é\82Ì\82Í\81ATSsPlayTimeSpecialChar\8c^\82Ì\83R\83\8c\83N\83V\83\87\83\93\82Å\82 \82è\81AChar\82É\95\8e\9a\82ð\81AWait\82É\82»\82Ì\95\8e\9a\82ð\8dÄ\90\82·\82é\8fê\8d\87\82Ì\8e\9e\8aÔ\82ð\8ew\92è\82µ\82Ü\82·\81BChar\82Í1\95\8e\9a(\83_\83u\83\8b\83o\83C\83g\95\8e\9a\89Â)\82Å\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B</dd>
-  </dl>
-</dl>
-<h2>\92\8d\88Ó</h2>
-<h3>\83x\81[\83X\83E\83F\83A\82É\82æ\82é\8dÄ\90\8e\9e\8aÔ\92²\90®\82Ì\95û\90j</h3>
-<p>(\8bL\8fq\82Í\81A2003\94N8\8c\8e\8c»\8dÝ\82Ì\8fó\8bµ\82ð\8c³\82É\82µ\82Ä\82¢\82Ü\82·)</p>
-<p>
-\82Ù\82Æ\82ñ\82Ç\82Ì\8dÄ\90\8aÂ\8b«\82Å\82Í\81A\83X\83N\83\8a\83v\83g\82Í\8eÀ\8e\9e\8aÔ\82Æ\82Í\93¯\8aú\82¹\82¸\82É\8dÄ\90\82³\82ê\82Ü\82·\81B\97á\82¦\82ÎPC\82Ì\95\89\89×\82ª\8d\82\82Ü\82Á\82½\82½\82ß\81A1\95\8e\9a\95\\8e¦\82·\82é\8aÔ\82É\90\94\95b\82Ì\83\89\83O\82ª\90\82\82½\81A\82Æ\82¢\82¤\8fê\8d\87\82Å\82à\81A\82»\82Ì\92x\82ê\82ð\8eæ\82è\96ß\82·\82æ\82¤\82È\8f\88\97\9d\82Í\82È\82­\81A\92W\81X\82Æ\81A1\95\8e\9a\95\\8e¦\82µ\82Ä\82Í\8bK\92è\82Ì\83E\83F\83C\83g\95ª\91Ò\82¿\81A1\89ñ\83T\81[\83t\83B\83X\82ð\90Ø\82è\91Ö\82¦\82Ä\81A1\95\8e\9a\95\\8e¦\82µ\82Ä\82Í\8bK\92è\82Ì\83E\83F\83C\83g\95ª\91Ò\82¿\81c\82Æ\82¢\82¤\82æ\82¤\82É\8dÄ\90\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
-<p>\82»\82ê\82É\91Î\82µ\82Ä\81Amateria\8cÝ\8a·\83x\81[\83X\83E\83F\83A\82Ì\88ê\82Â\82Å\82 \82éSSP\82Å\82Í\81A\97\9d\91z\82Ì\83^\83C\83\80\83\89\83C\83\93\82æ\82è\92x\82ê\82½\8fê\8d\87\82É\81A\82»\82Ì\92x\82ê\82ð\8eæ\82è\96ß\82·\82æ\82¤\82È\8f\88\97\9d\82ª\91g\82Ý\8d\9e\82Ü\82ê\82Ä\82¢\82Ü\82·\81B\97\9d\91z\82Ì\83^\83C\83\80\83\89\83C\83\93\82Í\81A\83N\83C\83b\83N\83Z\83N\83V\83\87\83\93\82â\83T\81[\83t\83B\83X\95Ï\8dX\82Ì\83R\83X\83g\82ð\83[\83\8d\82Æ\82µ\81A\83E\83F\83C\83g\83^\83O\82Æ\92Ê\8fí\82Ì\94­\98b\82Å\82Ì\82Ý\8e\9e\8aÔ\82ª\90i\82Þ\82à\82Ì\82Æ\82µ\82Ä\8cv\8eZ\82³\82ê\82Ä\82¢\82Ü\82·\81BMIDI\83v\83\8c\81[\83\84\81[\82ª\91S\82Ä\82Ì\83m\81[\83g\82Ì\83^\83C\83~\83\93\83O\82ð\90§\8cä\82µ\82Ä\83e\83\93\83|\82ª\82¸\82ê\82È\82¢\82Ì\82Æ\93¯\97l\82É\81ASSP\82Å\82Í\82»\82ê\82¼\82ê\82Ì\94­\98b\82Ì\95\8e\9a\8fo\8c»\8e\9e\8d\8f\82Í\8a®\91S\82É\90§\8cä\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
-<p>TSsPlayTime\82Ì\8dÄ\90\8e\9e\8d\8f\97\\91ª\82Í\81ASSP\82Ì\82æ\82¤\82È\95û\90j\82Å\8eÀ\91\95\82³\82ê\82Ä\82¢\82é\8dÄ\90\8aÂ\8b«\82É\82Â\82¢\82Ä\82Í\81A\97\9d\98_\8fã100%\90³\8am\82È\82à\82Ì\82É\82·\82é\82±\82Æ\82ª\89Â\94\\82Å\82·\81B\8bt\82É\81A\82»\82Ì\91¼\91½\82­\82Ì\8dÄ\90\8aÂ\8b«\82É\82¨\82¢\82Ä\82Í\81A\83T\81[\83t\83B\83X\95Ï\8dX\82Ì\83^\83O\82ª\8eÀ\8ds\82³\82ê\82é\82±\82Æ\82Å\95½\8bÏ\82Ç\82Ì\92ö\93x\82Ì\8e\9e\8aÔ\82ð\8eg\82¤\82Ì\82©\81A\83N\83C\83b\83N\83Z\83N\83V\83\87\83\93\82Å\82Í1\95\8e\9a\95\\8e¦\82·\82é\82Ì\82É\95½\8bÏ\82Ç\82Ì\92ö\93x\82©\82©\82Á\82Ä\82¢\82é\82Ì\82©\81A\82È\82Ç\82ð\8eÀ\91ª\82É\8aî\82Ã\82¢\82Ä\8c\88\92è\82·\82é\82±\82Æ\82Å\81ATSsPlayTimeParams\82Ì\8ae\83v\83\8d\83p\83e\83B\82ð\8c\88\92è\82µ\82Ä\82¢\82­\95K\97v\82ª\82 \82è\81APC\8aÂ\8b«\82Ì\8d·\82È\82Ç\82ð\8dl\97\82·\82é\95K\97v\82à\82 \82é\82½\82ß\81A\82 \82é\92ö\93x\82Ì\8cë\8d·\82ª\94­\90\82µ\82Ü\82·\81B</p>
-
-</body>
-
-</html>
diff --git a/sakurasuite/sample_editor/Project1.dpr b/sakurasuite/sample_editor/Project1.dpr
deleted file mode 100644 (file)
index 513a1dd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-program Project1;
-
-uses
-  Forms,
-  Unit1 in 'Unit1.pas' {Form1};
-
-{$R *.res}
-
-begin
-  Application.Initialize;
-  Application.CreateForm(TForm1, Form1);
-  Application.Run;
-end.
diff --git a/sakurasuite/sample_editor/Project1.res b/sakurasuite/sample_editor/Project1.res
deleted file mode 100644 (file)
index 5ac562e..0000000
Binary files a/sakurasuite/sample_editor/Project1.res and /dev/null differ
diff --git a/sakurasuite/sample_editor/Unit1.dfm b/sakurasuite/sample_editor/Unit1.dfm
deleted file mode 100644 (file)
index 8792371..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-object Form1: TForm1
-  Left = 281
-  Top = 541
-  Width = 531
-  Height = 418
-  Caption = 'SakuraScript Editor Test'
-  Color = clBtnFace
-  Font.Charset = SHIFTJIS_CHARSET
-  Font.Color = clWindowText
-  Font.Height = -12
-  Font.Name = #65325#65331' '#65328#12468#12471#12483#12463
-  Font.Style = []
-  OldCreateOrder = False
-  Position = poDesktopCenter
-  OnResize = FormResize
-  PixelsPerInch = 96
-  TextHeight = 12
-  object Editor1: TEditor
-    Left = 0
-    Top = 0
-    Width = 338
-    Height = 391
-    Cursor = crIBeam
-    Align = alClient
-    Caret.AutoCursor = True
-    Caret.AutoIndent = False
-    Caret.BackSpaceUnIndent = True
-    Caret.Cursors.DefaultCursor = crIBeam
-    Caret.Cursors.DragSelCursor = crDrag
-    Caret.Cursors.DragSelCopyCursor = 2
-    Caret.Cursors.InSelCursor = crDefault
-    Caret.Cursors.LeftMarginCursor = 1
-    Caret.Cursors.TopMarginCursor = crDefault
-    Caret.FreeCaret = False
-    Caret.FreeRow = False
-    Caret.InTab = False
-    Caret.KeepCaret = True
-    Caret.LockScroll = False
-    Caret.NextLine = True
-    Caret.PrevSpaceIndent = False
-    Caret.RowSelect = True
-    Caret.SelDragMode = dmAutomatic
-    Caret.SelMove = True
-    Caret.SoftTab = True
-    Caret.Style = csDefault
-    Caret.TabIndent = False
-    Caret.TabSpaceCount = 8
-    Color = clWindow
-    Fountain = SakuraScriptFountain1
-    Font.Charset = SHIFTJIS_CHARSET
-    Font.Color = clBlack
-    Font.Height = -12
-    Font.Name = #65325#65331' '#12468#12471#12483#12463
-    Font.Style = []
-    HitStyle = hsSelect
-    Imagebar.DigitWidth = 8
-    Imagebar.LeftMargin = 2
-    Imagebar.MarkWidth = 0
-    Imagebar.RightMargin = 2
-    Imagebar.Visible = False
-    Lines.Strings = (
-      '\t\h\s[5]\_s'#12362#12399#12424#12358#12394#65374#12290'<br>\e')
-    Marks.EofMark.Color = clGray
-    Marks.EofMark.Visible = False
-    Marks.RetMark.Color = clGray
-    Marks.RetMark.Visible = False
-    Marks.WrapMark.Color = clGray
-    Marks.WrapMark.Visible = False
-    Marks.HideMark.Color = clGray
-    Marks.HideMark.Visible = False
-    Marks.Underline.Color = clGray
-    Marks.Underline.Visible = False
-    Margin.Character = 0
-    Margin.Left = 2
-    Margin.Line = 0
-    Margin.Top = 2
-    Leftbar.BkColor = clSilver
-    Leftbar.Color = clBlack
-    Leftbar.Column = 1
-    Leftbar.Edge = True
-    Leftbar.LeftMargin = 2
-    Leftbar.RightMargin = 2
-    Leftbar.ShowNumber = True
-    Leftbar.ShowNumberMode = nmRow
-    Leftbar.Visible = False
-    Leftbar.ZeroBase = False
-    Leftbar.ZeroLead = True
-    ReadOnly = False
-    Ruler.BkColor = clSilver
-    Ruler.Color = clBlack
-    Ruler.Edge = True
-    Ruler.GaugeRange = 10
-    Ruler.MarkColor = clBlack
-    Ruler.Visible = True
-    ScrollBars = ssBoth
-    Speed.CaretVerticalAc = 2
-    Speed.InitBracketsFull = False
-    Speed.PageVerticalRange = 2
-    Speed.PageVerticalRangeAc = 2
-    TabOrder = 0
-    UndoListMax = 64
-    View.Brackets = <>
-    View.Colors.Ank.BkColor = clNone
-    View.Colors.Ank.Color = clNone
-    View.Colors.Ank.Style = []
-    View.Colors.Comment.BkColor = clNone
-    View.Colors.Comment.Color = clNone
-    View.Colors.Comment.Style = []
-    View.Colors.DBCS.BkColor = clNone
-    View.Colors.DBCS.Color = clNone
-    View.Colors.DBCS.Style = []
-    View.Colors.Hit.BkColor = clNone
-    View.Colors.Hit.Color = clNone
-    View.Colors.Hit.Style = []
-    View.Colors.Int.BkColor = clNone
-    View.Colors.Int.Color = clNone
-    View.Colors.Int.Style = []
-    View.Colors.Mail.BkColor = clNone
-    View.Colors.Mail.Color = clNone
-    View.Colors.Mail.Style = []
-    View.Colors.Reserve.BkColor = clNone
-    View.Colors.Reserve.Color = clNone
-    View.Colors.Reserve.Style = []
-    View.Colors.Select.BkColor = clNavy
-    View.Colors.Select.Color = clWhite
-    View.Colors.Select.Style = []
-    View.Colors.Str.BkColor = clNone
-    View.Colors.Str.Color = clNone
-    View.Colors.Str.Style = []
-    View.Colors.Symbol.BkColor = clNone
-    View.Colors.Symbol.Color = clNone
-    View.Colors.Symbol.Style = []
-    View.Colors.Url.BkColor = clNone
-    View.Colors.Url.Color = clNone
-    View.Colors.Url.Style = []
-    View.ControlCode = False
-    View.Mail = False
-    View.Url = False
-    WantReturns = True
-    WantTabs = True
-    WordWrap = True
-    WrapOption.FollowRetMark = False
-    WrapOption.FollowPunctuation = False
-    WrapOption.FollowStr = #12289#12290#65292#65294#12539#65311#65281#12443#12444#12541#12542#12445#12446#12293#12540#65289#65341#65373#12301#12303'!),.:;?]}'#65377#65379#65380#65381#65392#65438#65439
-    WrapOption.Leading = False
-    WrapOption.LeadStr = #65288#65339#65371#12300#12302'([{'#65378
-    WrapOption.PunctuationStr = #12289#12290#65292#65294',.'#65377#65380
-    WrapOption.WordBreak = False
-    WrapOption.WrapByte = 40
-  end
-  object Memo1: TMemo
-    Left = 338
-    Top = 0
-    Width = 185
-    Height = 391
-    Align = alRight
-    Lines.Strings = (
-      'Memo1')
-    TabOrder = 1
-    OnClick = Memo1Click
-  end
-  object SakuraScriptFountain1: TSakuraScriptFountain
-    Brackets = <>
-    Reserve.BkColor = clNone
-    Reserve.Color = clNone
-    Reserve.Style = []
-    Scope0Color.BkColor = clNone
-    Scope0Color.Color = clNavy
-    Scope0Color.Style = []
-    Scope1Color.BkColor = clNone
-    Scope1Color.Color = clOlive
-    Scope1Color.Style = []
-    TagColor.BkColor = clNone
-    TagColor.Color = clLime
-    TagColor.Style = []
-    TagErrorColor.BkColor = clNone
-    TagErrorColor.Color = clRed
-    TagErrorColor.Style = [fsBold]
-    MetaWordColor.BkColor = clNone
-    MetaWordColor.Color = clBlue
-    MetaWordColor.Style = [fsBold]
-    SynchronizedColor.BkColor = clNone
-    SynchronizedColor.Color = clFuchsia
-    SynchronizedColor.Style = []
-    SakuraScriptParser = SsParser1
-    Left = 16
-    Top = 320
-  end
-  object SsParser1: TSsParser
-    TagPattern.Strings = (
-      '\h'
-      '\u'
-      '\s[%D]'
-      '\s[-%D]'
-      '\s%d'
-      '!s%b'
-      '!s%.'
-      '!b%b'
-      '!b%.'
-      '!f%b'
-      '\n[half]'
-      '!n%b'
-      '\n'
-      '\w%d'
-      '!w%.'
-      '\e'
-      '\t'
-      '\_s'
-      '\_q'
-      '!j%b'
-      '!j'
-      '\c'
-      '\URL%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b'
-      '\URL%b%b%b%b%b%b%b%b%b%b%b%b%b'
-      '\URL%b%b%b%b%b%b%b%b%b%b%b'
-      '\URL%b%b%b%b%b%b%b%b%b'
-      '\URL%b%b%b%b%b%b%b'
-      '\URL%b%b%b%b%b'
-      '\URL%b%b%b'
-      '\URL%b'
-      '!x'
-      '!l%b'
-      '!q%d%b%b'
-      '!q%d%b'
-      '!q%d'
-      '!z'
-      '!y'
-      '!*'
-      '!v'
-      '!_v%b'
-      '!_V'
-      '!8%b'
-      '!8'
-      '!m%b'
-      '!m'
-      '!i[%D]'
-      '!i%.'
-      '!_i'
-      '!a'
-      '!_c%b'
-      '!_c'
-      '!__c'
-      '!__t'
-      '!-'
-      '!+'
-      '!_b%b'
-      '!1'
-      '!2'
-      '!3'
-      '!4'
-      '!5'
-      '!6'
-      '!7'
-      '!|'
-      '!_w%b'
-      '!_+')
-    MetaPattern.Strings = (
-      'selfname2'
-      'selfname'
-      'keroname'
-      'username'
-      'screenwidth'
-      'screenheight'
-      'month'
-      'day'
-      'hour'
-      'minute'
-      'second'
-      'wronghour'
-      'songname'
-      'j%b'
-      'exh'
-      'by'
-      'bm'
-      'bd'
-      'et'
-      'ms'
-      'mz'
-      'ml'
-      'mc'
-      'mh'
-      'mt'
-      'me'
-      'mp'
-      'm?'
-      'dms'
-      'c'
-      '0'
-      '1')
-    Left = 16
-    Top = 288
-  end
-  object HTMLFountain1: THTMLFountain
-    FileExtList.Strings = (
-      '.htm'
-      '.html')
-    Brackets = <
-      item
-        ItemColor.BkColor = clNone
-        ItemColor.Color = clPurple
-        ItemColor.Style = []
-        LeftBracket = '<!--'
-        RightBracket = '-->'
-      end>
-    Reserve.BkColor = clNone
-    Reserve.Color = clNone
-    Reserve.Style = []
-    Ampersand.BkColor = clNone
-    Ampersand.Color = clNone
-    Ampersand.Style = []
-    Mail.BkColor = clNone
-    Mail.Color = clGray
-    Mail.Style = []
-    Str.BkColor = clNone
-    Str.Color = clNone
-    Str.Style = []
-    TagAttribute.BkColor = clNone
-    TagAttribute.Color = clFuchsia
-    TagAttribute.Style = []
-    TagAttributeValue.BkColor = clNone
-    TagAttributeValue.Color = clYellow
-    TagAttributeValue.Style = []
-    TagColor.BkColor = clNone
-    TagColor.Color = clOlive
-    TagColor.Style = []
-    TagElement.BkColor = clNone
-    TagElement.Color = clGreen
-    TagElement.Style = [fsBold]
-    Url.BkColor = clNone
-    Url.Color = clNone
-    Url.Style = []
-    Left = 16
-    Top = 216
-  end
-  object DelphiFountain1: TDelphiFountain
-    FileExtList.Strings = (
-      '.dpr'
-      '.inc'
-      '.pas')
-    Brackets = <
-      item
-        ItemColor.BkColor = clNone
-        ItemColor.Color = clOlive
-        ItemColor.Style = []
-        LeftBracket = '{'
-        RightBracket = '}'
-      end
-      item
-        ItemColor.BkColor = clNone
-        ItemColor.Color = clOlive
-        ItemColor.Style = []
-        LeftBracket = '(*'
-        RightBracket = '*)'
-      end>
-    Reserve.BkColor = clNone
-    Reserve.Color = clBlue
-    Reserve.Style = [fsBold]
-    ReserveWordList.Strings = (
-      'absolute'
-      'abstract'
-      'and'
-      'array'
-      'as'
-      'asm'
-      'assembler'
-      'automated'
-      'begin'
-      'case'
-      'cdecl'
-      'class'
-      'const'
-      'constructor'
-      'default'
-      'destructor'
-      'dispid'
-      'dispinterface'
-      'div'
-      'do'
-      'downto'
-      'dynamic'
-      'else'
-      'end'
-      'except'
-      'export'
-      'exports'
-      'external'
-      'far'
-      'file'
-      'finalization'
-      'finally'
-      'for'
-      'forward'
-      'function'
-      'goto'
-      'if'
-      'implementation'
-      'in'
-      'inherited'
-      'initialization'
-      'inline'
-      'interface'
-      'is'
-      'label'
-      'library'
-      'message'
-      'mod'
-      'near'
-      'nil'
-      'nodefault'
-      'not'
-      'object'
-      'of'
-      'or'
-      'out'
-      'overload'
-      'override'
-      'packed'
-      'pascal'
-      'private'
-      'procedure'
-      'program'
-      'property'
-      'protected'
-      'public'
-      'published'
-      'raise'
-      'readonly'
-      'record'
-      'register'
-      'repeat'
-      'resident'
-      'resourcestring'
-      'safecall'
-      'set'
-      'shl'
-      'shr'
-      'stdcall'
-      'stored'
-      'string'
-      'then'
-      'threadvar'
-      'to'
-      'try'
-      'type'
-      'unit'
-      'until'
-      'uses'
-      'var'
-      'virtual'
-      'while'
-      'with'
-      'writeonly'
-      'xor')
-    Ank.BkColor = clNone
-    Ank.Color = clBlack
-    Ank.Style = []
-    AsmBlock.BkColor = clNone
-    AsmBlock.Color = clNone
-    AsmBlock.Style = []
-    Comment.BkColor = clNone
-    Comment.Color = clOlive
-    Comment.Style = []
-    DBCS.BkColor = clNone
-    DBCS.Color = clNone
-    DBCS.Style = []
-    Int.BkColor = clNone
-    Int.Color = clNone
-    Int.Style = []
-    Str.BkColor = clNone
-    Str.Color = clNone
-    Str.Style = []
-    Symbol.BkColor = clNone
-    Symbol.Color = clNone
-    Symbol.Style = []
-    Left = 16
-    Top = 248
-  end
-end
diff --git a/sakurasuite/sample_editor/Unit1.pas b/sakurasuite/sample_editor/Unit1.pas
deleted file mode 100644 (file)
index 73dd57c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-unit Unit1;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
-  Dialogs, heClasses, heFountain, SakuraScriptFountain, HEditor, SsParser,
-  HTMLFountain, StdCtrls, DelphiFountain;
-
-type
-  TForm1 = class(TForm)
-    Editor1: TEditor;
-    SakuraScriptFountain1: TSakuraScriptFountain;
-    SsParser1: TSsParser;
-    HTMLFountain1: THTMLFountain;
-    Memo1: TMemo;
-    DelphiFountain1: TDelphiFountain;
-    procedure Memo1Click(Sender: TObject);
-    procedure FormResize(Sender: TObject);
-  private
-    { Private \90é\8c¾ }
-  public
-    { Public \90é\8c¾ }
-  end;
-
-var
-  Form1: TForm1;
-
-implementation
-
-{$R *.dfm}
-
-procedure TForm1.Memo1Click(Sender: TObject);
-begin
-  Memo1.Lines.Clear;
-end;
-
-procedure TForm1.FormResize(Sender: TObject);
-begin
-  Editor1.WrapOption.WrapByte := (Editor1.Width - 30) div 6;
-end;
-
-end.
diff --git a/sakurasuite/sample_parser/Project1.dpr b/sakurasuite/sample_parser/Project1.dpr
deleted file mode 100644 (file)
index dfa3f13..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-program Project1;
-
-uses
-  Forms,
-  Unit1 in 'Unit1.pas' {Form1};
-
-{$R *.RES}
-
-begin
-  Application.Initialize;
-  Application.CreateForm(TForm1, Form1);
-  Application.Run;
-end.
diff --git a/sakurasuite/sample_parser/Project1.res b/sakurasuite/sample_parser/Project1.res
deleted file mode 100644 (file)
index 90e5abf..0000000
Binary files a/sakurasuite/sample_parser/Project1.res and /dev/null differ
diff --git a/sakurasuite/sample_parser/Unit1.dfm b/sakurasuite/sample_parser/Unit1.dfm
deleted file mode 100644 (file)
index 155d630..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-object Form1: TForm1
-  Left = 228
-  Top = 248
-  Width = 467
-  Height = 360
-  Caption = 'Test'
-  Color = clBtnFace
-  Font.Charset = SHIFTJIS_CHARSET
-  Font.Color = clWindowText
-  Font.Height = -12
-  Font.Name = #65325#65331' '#65328#12468#12471#12483#12463
-  Font.Style = []
-  OldCreateOrder = False
-  DesignSize = (
-    459
-    333)
-  PixelsPerInch = 96
-  TextHeight = 12
-  object Edit1: TEdit
-    Left = 8
-    Top = 16
-    Width = 448
-    Height = 20
-    Anchors = [akLeft, akTop, akRight]
-    TabOrder = 0
-    Text = '\t'#12362#12399#12424#12358'\e'
-  end
-  object Button1: TButton
-    Left = 8
-    Top = 80
-    Width = 75
-    Height = 25
-    Caption = 'Parse'
-    TabOrder = 1
-    OnClick = Button1Click
-  end
-  object ListView1: TListView
-    Left = 0
-    Top = 139
-    Width = 459
-    Height = 194
-    Align = alBottom
-    Anchors = [akLeft, akTop, akRight, akBottom]
-    Columns = <
-      item
-        Caption = #12479#12452#12503
-        Width = 100
-      end
-      item
-        Caption = 'Index'
-      end
-      item
-        Caption = #25991#23383#21015
-        Width = 150
-      end
-      item
-        Alignment = taRightJustify
-        Caption = #12458#12501#12475#12483#12488
-        Width = 100
-      end>
-    TabOrder = 2
-    ViewStyle = vsReport
-  end
-  object Edit2: TEdit
-    Left = 8
-    Top = 48
-    Width = 448
-    Height = 20
-    Anchors = [akLeft, akTop, akRight]
-    TabOrder = 3
-    Text = '\t'
-  end
-  object Button2: TButton
-    Left = 88
-    Top = 80
-    Width = 75
-    Height = 25
-    Caption = 'Match'
-    TabOrder = 4
-    OnClick = Button2Click
-  end
-  object CheckBox1: TCheckBox
-    Left = 16
-    Top = 112
-    Width = 137
-    Height = 17
-    Caption = 'EscapeInvalidMeta'
-    TabOrder = 5
-    OnClick = CheckBox1Click
-  end
-  object CheckBox2: TCheckBox
-    Left = 184
-    Top = 113
-    Width = 97
-    Height = 15
-    Caption = 'LeaveEscape'
-    Checked = True
-    State = cbChecked
-    TabOrder = 6
-    OnClick = CheckBox2Click
-  end
-  object Button3: TButton
-    Left = 168
-    Top = 80
-    Width = 75
-    Height = 25
-    Caption = 'GetParam'
-    TabOrder = 7
-    OnClick = Button3Click
-  end
-  object Button4: TButton
-    Left = 248
-    Top = 80
-    Width = 75
-    Height = 25
-    Caption = 'Benchmark'
-    TabOrder = 8
-    OnClick = Button4Click
-  end
-  object SsParser: TSsParser
-    TagPattern.Strings = (
-      '\h '
-      '\u'
-      '\s[%D]'
-      '\s%d'
-      '!s%b'
-      '!s%.'
-      '\b[%D]'
-      '\b%d'
-      '!b%b'
-      '!b%.'
-      '\n'
-      '\w%d'
-      '!w%.'
-      '\e'
-      '\t'
-      '\j%b'
-      '!j'
-      '\c'
-      '\x'
-      '\q%d%b%b'
-      '\z'
-      '\y'
-      '\*'
-      '\v'
-      '\8%b'
-      '\m%b'
-      '\i[%D]'
-      '\i%d'
-      '!i%b'
-      '!i%.'
-      '\_i '
-      '\a'
-      '\_c%b'
-      '\__c'
-      '\-'
-      '\1'
-      '\2'
-      '\3'
-      '\4'
-      '\|')
-    MetaPattern.Strings = (
-      'selfname2'
-      'selfname'
-      'keroname'
-      'username'
-      'screenwidth'
-      'screenheight'
-      'month'
-      'day'
-      'hour'
-      'minute'
-      'second'
-      'j%b'
-      'exh'
-      'by'
-      'bm'
-      'bd'
-      'o'
-      'd'
-      'h'
-      'm'
-      's'
-      'c'
-      '0'
-      '1'
-      'et'
-      'ms'
-      'mz'
-      'mc'
-      'mh'
-      'mt'
-      'me'
-      'mp'
-      'm?'
-      'dms')
-    Left = 376
-    Top = 80
-  end
-end
diff --git a/sakurasuite/sample_parser/Unit1.pas b/sakurasuite/sample_parser/Unit1.pas
deleted file mode 100644 (file)
index 68c04f5..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-unit Unit1;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  SsParser, ComCtrls, StdCtrls;
-
-type
-  TForm1 = class(TForm)
-    Edit1: TEdit;
-    Button1: TButton;
-    ListView1: TListView;
-    SsParser: TSsParser;
-    Edit2: TEdit;
-    Button2: TButton;
-    CheckBox1: TCheckBox;
-    CheckBox2: TCheckBox;
-    Button3: TButton;
-    Button4: TButton;
-    procedure Button1Click(Sender: TObject);
-    procedure Button2Click(Sender: TObject);
-    procedure CheckBox2Click(Sender: TObject);
-    procedure CheckBox1Click(Sender: TObject);
-    procedure Button3Click(Sender: TObject);
-    procedure Button4Click(Sender: TObject);
-  private
-    { Private \90é\8c¾ }
-  public
-    { Public \90é\8c¾ }
-  end;
-
-var
-  Form1: TForm1;
-
-implementation
-
-{$R *.DFM}
-
-procedure TForm1.Button1Click(Sender: TObject);
-var i: integer;
-    Li: TListItem;
-begin
-  ListView1.Items.Clear;
-  SsParser.InputString := Edit1.Text;
-  for i := 0 to SsParser.Count-1 do begin
-    Li := ListView1.Items.Add;
-    case SsParser.MarkUpType[i] of
-      mtTag:    Li.Caption := 'Tag';
-      mtTagErr: Li.Caption := 'TagErr';
-      mtMeta:   Li.Caption := 'Meta';
-      mtStr:    Li.Caption := 'Str';
-    end;
-    Li.SubItems.Add(IntToStr(i));
-    Li.SubItems.Add(SsParser[i]);
-    Li.SubItems.Add(IntToStr(SsParser.Position[i]));
-  end;
-end;
-
-procedure TForm1.Button2Click(Sender: TObject);
-var i: integer;
-    Str: String;
-begin
-  i := SsParser.Match(Edit1.Text, Edit2.Text);
-  Str := Copy(Edit1.Text, 1, i);
-  ShowMessage(IntToStr(i) + #13#10 + Str);
-end;
-
-procedure TForm1.CheckBox2Click(Sender: TObject);
-begin
-  SsParser.LeaveEscape := CheckBox2.Checked;
-end;
-
-procedure TForm1.CheckBox1Click(Sender: TObject);
-begin
-  SsParser.EscapeInvalidMeta := CheckBox1.Checked;
-end;
-
-procedure TForm1.Button3Click(Sender: TObject);
-begin
-  try
-    ShowMessage(SsParser.GetParam(Edit1.Text, StrToInt(Edit2.Text)));
-  except
-    on EConvertError do ShowMessage('Edit2 is not Integer');
-  end;
-end;
-
-procedure TForm1.Button4Click(Sender: TObject);
-var i: integer;
-    from: Int64;
-const
-    loop = 100;
-begin
-  from := GetTickCount;
-  for i := 1 to loop do
-    SsParser.InputString := Edit1.Text;
-  ShowMessage(Format('%d loops, %d ms.', [loop, GetTickCount - from]));
-end;
-
-end.
diff --git a/sakurasuite/sample_parser/pattern.txt b/sakurasuite/sample_parser/pattern.txt
deleted file mode 100644 (file)
index 493153c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-\88È\89º\82Í\81ASsParser\82ÌTagPattern\82É\8eg\82¦\82é\83p\83^\81[\83\93\95\8e\9a\97ñ\97á\82Å\82·\81B
-2001\94N3\8c\8e31\93ú\8c»\8dÝ\82Ì\8dÅ\90V\94Å\82É\91Î\89\9e\82µ\82Ä\82¢\82é\82Æ\8ev\82¢\82Ü\82·\81B
-\8cÃ\82¢\83}\81[\83N\83A\83b\83v\82à\8ec\82Á\82Ä\82¢\82Ü\82·\82Ì\82Å\8e©\95ª\82Å\82æ\82­\8am\82©\82ß\82Ä\82­\82¾\82³\82¢\81A\8aJ\94­\8eÒ\82È\82ç\81c
-
-\83X\83N\83\8a\83v\83g\82Ì\96Ú\93I\82É\82æ\82Á\82Ä\82à\88È\89º\82Ì\83p\83^\81[\83\93\82Í\95Ï\82í\82Á\82Ä\82­\82é\82Å\82µ\82å\82¤\82µ\81A
-\82Ü\82½\8f«\97\88\83^\83O\82ª\91\9d\82¦\82½\82è\8c¸\82Á\82½\82è\82·\82é\82±\82Æ\82ð\8dl\82¦\82é\82Æ\81A
-\8aO\95\94\83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8d\9e\82Þ\82æ\82¤\82È\8c`\8e®\82É\82µ\82Ä\82¨\82­\82Æ\82¢\82¢\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B
-
-===============\88È\89ºTagPattern===========
-\h
-\u
-\s[%D]
-\s%d
-!s%b
-!s%.
-\b[%D]
-\b%d
-!b%b
-!b%.
-\n
-\w%d
-!w%.
-\e 
-\t
-\j%b
-!j
-\c
-\x
-\q%d%b%b
-\z
-\y
-\*
-\v
-\8%b
-\m%b
-\i[%D]
-\i%d
-!i%b
-!i%.
-\_i 
-\a
-\_c%b
-\__c
-\-
-\1
-\2
-\3
-\4
-\|
-
-================\88È\89ºMetaPattern==================
-selfname2
-selfname
-keroname
-username
-screenwidth
-screenheight
-month
-day
-hour
-minute
-second
-j%b
-exh
-by
-bm
-bd
-o
-d
-h
-m
-s
-c
-0
-1
-et
-ms
-mz
-mc
-mh
-mt
-me
-mp
-m?
-dms
\ No newline at end of file
diff --git a/sakurasuite/sample_seeker/Project1.dpr b/sakurasuite/sample_seeker/Project1.dpr
deleted file mode 100644 (file)
index dfa3f13..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-program Project1;
-
-uses
-  Forms,
-  Unit1 in 'Unit1.pas' {Form1};
-
-{$R *.RES}
-
-begin
-  Application.Initialize;
-  Application.CreateForm(TForm1, Form1);
-  Application.Run;
-end.
diff --git a/sakurasuite/sample_seeker/Project1.res b/sakurasuite/sample_seeker/Project1.res
deleted file mode 100644 (file)
index 90e5abf..0000000
Binary files a/sakurasuite/sample_seeker/Project1.res and /dev/null differ
diff --git a/sakurasuite/sample_seeker/Unit1.dfm b/sakurasuite/sample_seeker/Unit1.dfm
deleted file mode 100644 (file)
index 9f661d6..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-object Form1: TForm1
-  Left = 286
-  Top = 205
-  Width = 393
-  Height = 241
-  Caption = 'SakuraSeeker Test Program'
-  Color = clBtnFace
-  Font.Charset = SHIFTJIS_CHARSET
-  Font.Color = clWindowText
-  Font.Height = -12
-  Font.Name = '\82l\82\82o\83S\83V\83b\83N'
-  Font.Style = []
-  Menu = MainMenu1
-  OldCreateOrder = False
-  OnCreate = FormCreate
-  PixelsPerInch = 96
-  TextHeight = 12
-  object ListView1: TListView
-    Left = 0
-    Top = 0
-    Width = 385
-    Height = 152
-    Align = alClient
-    Columns = <
-      item
-        Caption = 'ID'
-        Width = 150
-      end
-      item
-        Caption = 'HWND'
-        Width = 80
-      end
-      item
-        Caption = 'Name'
-        Width = 150
-      end>
-    HideSelection = False
-    ReadOnly = True
-    TabOrder = 0
-    ViewStyle = vsReport
-  end
-  object StatusBar1: TStatusBar
-    Left = 0
-    Top = 176
-    Width = 385
-    Height = 19
-    Panels = <>
-    SimplePanel = True
-  end
-  object Panel1: TPanel
-    Left = 0
-    Top = 152
-    Width = 385
-    Height = 24
-    Align = alBottom
-    BevelOuter = bvNone
-    TabOrder = 2
-    object Button1: TButton
-      Left = 8
-      Top = 0
-      Width = 105
-      Height = 25
-      Caption = '&Send DirectSSTP'
-      TabOrder = 0
-      OnClick = Button1Click
-    end
-    object Button2: TButton
-      Left = 152
-      Top = 0
-      Width = 75
-      Height = 25
-      Caption = 'Test2'
-      TabOrder = 1
-      OnClick = Button2Click
-    end
-  end
-  object SakuraSeeker1: TSakuraSeeker
-    OnAfterDetection = SakuraSeeker1AfterDetection
-    OnDetectResultChanged = SakuraSeeker1DetectResultChanged
-    FileMappingTarget.Strings = (
-      'Sakura'
-      'Usagi'
-      'UmiUmi')
-    Left = 16
-    Top = 32
-  end
-  object MainMenu1: TMainMenu
-    Left = 176
-    Top = 96
-    object File1: TMenuItem
-      Caption = '&File'
-      object Update1: TMenuItem
-        Caption = '&Update'
-        OnClick = Update1Click
-      end
-      object Exit1: TMenuItem
-        Caption = '&Exit'
-        OnClick = Exit1Click
-      end
-    end
-  end
-  object Timer1: TTimer
-    Enabled = False
-    OnTimer = Timer1Timer
-    Left = 48
-    Top = 32
-  end
-  object TestDSstp1: TTestDSstp
-    Left = 176
-    Top = 32
-  end
-end
diff --git a/sakurasuite/sample_seeker/Unit1.pas b/sakurasuite/sample_seeker/Unit1.pas
deleted file mode 100644 (file)
index 09ce047..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-unit Unit1;
-
-interface
-
-uses
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  SakuraSeeker, ComCtrls, Menus, ExtCtrls, StdCtrls, TestDSstp;
-
-type
-  TForm1 = class(TForm)
-    ListView1: TListView;
-    StatusBar1: TStatusBar;
-    SakuraSeeker1: TSakuraSeeker;
-    MainMenu1: TMainMenu;
-    File1: TMenuItem;
-    Update1: TMenuItem;
-    Exit1: TMenuItem;
-    Timer1: TTimer;
-    Panel1: TPanel;
-    Button1: TButton;
-    TestDSstp1: TTestDSstp;
-    Button2: TButton;
-    procedure FormCreate(Sender: TObject);
-    procedure Exit1Click(Sender: TObject);
-    procedure Update1Click(Sender: TObject);
-    procedure SakuraSeeker1AfterDetection(Sender: TObject);
-    procedure SakuraSeeker1DetectResultChanged(Sender: TObject);
-    procedure Timer1Timer(Sender: TObject);
-    procedure Button1Click(Sender: TObject);
-    procedure Button2Click(Sender: TObject);
-  private
-    { Private \90é\8c¾ }
-  protected
-    procedure GetMessage(var Message: TWMCopyData); message WM_COPYDATA;
-  public
-    { Public \90é\8c¾ }
-    procedure Update;
-  end;
-
-var
-  Form1: TForm1;
-
-implementation
-
-{$R *.DFM}
-
-procedure TForm1.FormCreate(Sender: TObject);
-var SakuraSeeker: TSakuraSeeker;
-begin
-  SakuraSeeker := TSakuraSeeker.Create(Self);
-  SakuraSeeker.BeginDetect;
-end;
-
-procedure TForm1.Exit1Click(Sender: TObject);
-begin
-  Close;
-end;
-
-procedure TForm1.Update1Click(Sender: TObject);
-begin
-  SakuraSeeker1.BeginDetect;
-  Update;
-end;
-
-procedure TForm1.Update;
-var i: integer;
-    Item: TListItem;
-begin
-  ListView1.Items.Clear;
-  for i := 0 to SakuraSeeker1.Count-1 do begin
-    Item := ListView1.Items.Add;
-    Item.Caption := SakuraSeeker1[i].ProcessID;
-    Item.SubItems.Add(IntToStr(SakuraSeeker1[i].HWnd));
-    Item.SubItems.Add(SakuraSeeker1[i].Name);
-  end;
-end;
-
-procedure TForm1.SakuraSeeker1AfterDetection(Sender: TObject);
-begin
-  StatusBar1.SimpleText := IntToStr(SakuraSeeker1.Count) + '\8c\8f   ' +
-  DateTimeToStr(Now);
-  Update;
-end;
-
-procedure TForm1.SakuraSeeker1DetectResultChanged(Sender: TObject);
-begin
-  ShowMessage('Status Changed!');
-end;
-
-procedure TForm1.Timer1Timer(Sender: TObject);
-begin
-  SakuraSeeker1.BeginDetect;
-end;
-
-procedure TForm1.Button1Click(Sender: TObject);
-var Target: THandle;
-    Dat: TCopyDataStruct;
-    Str: String;
-begin
-  if ListView1.Selected = nil then Exit;
-  Target := SakuraSeeker1[ListView1.Selected.Index].HWnd;
-
-  Str := 'SEND SSTP/1.4'#13#10'HWnd: '+IntToStr(Form1.Handle)+#13#10'Charset: Shift_JIS'#13#10 +
-         'Sender: Tester'#13#10'Script: \t\82Ä\82·\82Ä\82·\81B\e'#13#10#13#10;
-
-  Dat.dwData := 9801;
-  Dat.cbData := Length(Str);
-  Dat.lpData := PChar(Str);
-
-  SendMessage(Target, WM_COPYDATA, Form1.Handle, LPARAM(@Dat));
-
-end;
-
-procedure TForm1.GetMessage(var Message: TWMCopyData);
-begin
-  inherited;
-  ShowMessage(PChar(Message.CopyDataStruct^.lpData));
-end;
-
-procedure TForm1.Button2Click(Sender: TObject);
-begin
-  if SakuraSeeker1.Count > 0 then
-    TestDSstp1.Go(SakuraSeeker1[0].HWnd);
-end;
-
-end.
diff --git a/sakurasuite/ssparser.dcr b/sakurasuite/ssparser.dcr
deleted file mode 100644 (file)
index e6ec789..0000000
Binary files a/sakurasuite/ssparser.dcr and /dev/null differ
diff --git a/sakurasuite/ssparser.html b/sakurasuite/ssparser.html
deleted file mode 100644 (file)
index 0ce8269..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="ja">
-<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
-<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>TSsParser</title>
-<style>
-<!--
-body         { background-color: #FFFFFF; font-family: \82l\82\83S\83V\83b\83N; color: #000000; 
-               font-size: 9pt; margin-left: 20px }
-td, th       { font-size: 9pt }
-h1, h2, h3, h4, h5, h6 { margin-left: -10px }
-p            { margin-top: 4px; margin-bottom: 4px }
-h1           { border: 2pt solid black }
-h2           { background-color: silver; border: 1pt solid gray }
-strong       { text-decoration: underline; font-weight: bolder; color: brown }
-em           { color: brown; font-style: normal }
-code         { font-size: 100%; font-family: \82l\82\83S\83V\83b\83N; color: green }
--->
-</style>
-</head>
-
-<body>
-
-<h1>TSsParser</h1>
-<p>\81u\82³\82­\82ç\83X\83N\83\8a\83v\83g\81v\82Ì\91½\8b@\94\\83p\81[\83T\8b@\94\\82ð\8e\9d\82Â\94ñ\83r\83W\83\85\83A\83\8b\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\81B\92P\88ê\8ds\82Ì\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\8f\88\97\9d\82µ\82Ü\82·\81B\82Â\82Ü\82è\93T\8c^\93I\82É\82Í\t\82©\82ç\8en\82Ü\82è\e\82Å\8fI\82í\82é\81A1\8ds\82Ì\83X\83N\83\8a\83v\83g\82Å\82·\81BEntry\82È\82Ç\82ª\97\8d\82ñ\82¾\95¡\90\94\8ds\83X\83N\83\8a\83v\83g\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82Ü\82¹\82ñ\82ª\81A\95â\8f\95\82Æ\82µ\82Ä\82Í\8eg\82¦\82Ü\82·\81B</p>
-<h2>\8eå\82È\97p\93r</h2>
-<ul>
-  <li>\93Æ\8e©\82ÌSSTP\83T\81[\83o\82ð\8d\\92z\82·\82é\8fê\8d\87\82Ì\95â\8f\95</li>
-  <li>\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\83G\83f\83B\83^\8dì\90¬\82Ì\82½\82ß\82Ì\95â\8f\95(\90F\95ª\82¯\81A\83^\83O\83`\83F\83b\83N\81Aetc...)</li>
-  <li>SSTP\83N\83\89\83C\83A\83\93\83g\82ð\8d\\92z\82·\82é\8fê\8d\87\82Ì\81A\8e\96\91O\82Ì\83^\83O\83`\83F\83b\83N</li>
-</ul>
-<h2>\8eg\97p\8fð\8c\8f</h2>
-<ul>
-  <li>\82¢\82í\82ä\82é\83t\83\8a\81[\82Ì\94Íáe\82É\8aÜ\82Ü\82ê\82é\83\\83t\83g\82Å\82·\81B\92\98\8dì\8c \82Í\95ú\8aü\82µ\82Ä\82¢\82Ü\82¹\82ñ\81B\88È\89º\82Ì\8fð\8c\8f\82É\82µ\82½\82ª\82Á\82Ä\82¨\8eg\82¢\82­\82¾\82³\82¢\81B</li>
-  <li>\8e\8e\97p\82Í\82à\82¿\82ë\82ñ\8e©\97R\82Å\82·\82ª\81A<strong>\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82ð\8eg\97p\82µ\82½\83v\83\8d\83O\83\89\83\80\82ð\8cö\8aJ\82·\82é\8fê\8d\87\82Í\81A\8dì\8eÒ\82É\88ê\95ñ\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B</strong>\82±\82ê\82Í\81A\83o\83O\82ª\94­\8c©\82³\82ê\82½\8fê\8d\87\82È\82Ç\82É\98A\97\8d\82·\82é\82½\82ß\82Æ\81A\92P\82É\8dì\8eÒ\82ª\94c\88¬\82µ\82Ä\82¨\82«\82½\82¢\82©\82ç\81A\82Å\82·\81B</li>
-  <li>\8e©\8dì\83v\83\8d\83O\83\89\83\80\82Å\8eg\97p\82·\82é\8fê\8d\87\82É\82¨\82¢\82Ä\82Ì\89ü\95Ï\81E\89ü\91¢\82Í\82²\8e©\97R\82É\82Ç\82¤\82¼\81B</li>
-  <li>\83R\83\93\83|\81[\83l\83\93\83g\8e©\91Ì\82Æ\82µ\82Ä\82Ì\8dÄ\94z\95z\82Í\81A\89ü\95Ï/\96¢\89ü\95Ï\82Ì\95Ê\82â\8c`\91Ô(\83\\81[\83X/\83o\83C\83i\83\8a)\82É\8aÖ\82í\82ç\82¸\81A\8c´\91¥\8bÖ\8e~\82µ\82Ü\82·\81B</li>
-  <li>\83h\83L\83\85\83\81\83\93\83g\82È\82Ç\82É\82±\82Ì\83R\83\93\83|\81[\83l\83\93\83g\82Ì\92\98\8dì\8c \95\\8e¦\82µ\82ë\81A\82Æ\82¢\82Á\82½\96Ê\93|\82È\82±\82Æ\82ð\8b­\90§\82Í\82µ\82Ü\82¹\82ñ\81B\8f\91\82¢\82Ä\82­\82ê\82ê\82Î\8aì\82Ñ\82Ü\82·\82ª\81B</li>
-  <li>\82¨\96ñ\91©\82Å\82·\82ª\81A\83R\83\93\83|\81[\83l\83\93\83g\82ð\8eg\97p\82µ\82½/\82µ\82È\82©\82Á\82½\82±\82Æ\82É\82æ\82Á\82Ä\94­\90\82·\82é\82 \82ç\82ä\82é\90Ó\94C\82Í\82Æ\82ê\82Ü\82¹\82ñ\81B\8e©\8cÈ\90Ó\94C\82Å\82¨\8eg\82¢\82­\82¾\82³\82¢\81B</li>
-</ul>
-<h2>SYNOPSIS - \8aî\96{\93I\82È\8eg\82¢\95û</h2>
-<p>TagPattern, MetaPattern\83v\83\8d\83p\83e\83B\82É\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82Ì\89ð\90Í\82Ì\8aî\8f\80\82Æ\82È\82é\83p\83^\81[\83\93\82ð\8ew\92è\82µ\82Ü\82·\81B\93Y\95t\82³\82ê\82Ä\82¢\82é\83e\83L\83X\83g\83t\83@\83C\83\8b\82ð\83R\83s\81[\82·\82ê\82Î\88ê\89\9eOK\82Å\82·\81B</p>
-<p>InputString\83v\83\8d\83p\83e\83B\82É\81A\83X\83N\83\8a\83v\83g\82ð\8ew\92è\82·\82ê\82Î\81A\83X\83N\83\8a\83v\83g\82ª\89ð\90Í\82³\82ê\81ACount, 
-MarkUpType, Str\82Ì\8ae\83v\83\8d\83p\83e\83B\82ð\92Ê\82µ\82Ä\83A\83N\83Z\83X\82Å\82«\82Ü\82·\81B</p>
-<p>\97á\82¦\82Î\81A\81u<code>\t\s[0]\82¢\82ç\82Á\82µ\82á\82¢%\82Ü\82¹\81A%username\82³\82ñ\81A\s[5]\\300\82Ì\82¨\\94\83\82¢\8fã\82°\82É\82È\82è\82Ü\82·\82Ë\e</code>\81v\82Æ\82¢\82¤\95\8e\9a\97ñ\82ðInputString\82É\93ü\82ê\82½\8fê\8d\87\82É\82ͤCount=10\82Æ\82È\82è\81AMarkUpType, 
-Str\83v\83\8d\83p\83e\83B\82É\82Í\88È\89º\82Ì\82æ\82¤\82È\92l\82ª\93ü\82è\82Ü\82·\81B</p>
-<p>TSsParser\82Å\82Í\81AIndex\82Å\8bæ\95Ê\82³\82ê\82é\83X\83N\83\8a\83v\83g\91f\95Ð\81A\82Â\82Ü\82è\89º\82Ì\95\\82É\82¨\82¯\82é\8ae\8ds\82ð<strong>\81u\83G\83\8c\83\81\83\93\83g\81v</strong>\82Æ\8cÄ\82Ô\82±\82Æ\82É\82µ\82Ü\82·\81B</p>
-<table border="1">
-  <tr>
-    <th>Index</th>
-    <th>Str[Index]</th>
-    <th>MarkUpType[Index]</th>
-  </tr>
-  <tr>
-    <td>0</td>
-    <td>\t</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>1</td>
-    <td>\s[0]</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>2</td>
-    <td>\82¢\82ç\82Á\82µ\82á\82¢%\82Ü\82¹\81A<em><sup>\81¦</sup></em></td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>3</td>
-    <td>%username</td>
-    <td>mtMeta</td>
-  </tr>
-  <tr>
-    <td>4</td>
-    <td>\82³\82ñ\81A</td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>5</td>
-    <td>\s[5]</td>
-    <td>mtTag</td>
-  </tr>
-  <tr>
-    <td>6</td>
-    <td>\\300\82Ì\82¨<em><sup>\81¦</sup></em></td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>7</td>
-    <td>\\94\83</td>
-    <td>mtTagErr</td>
-  </tr>
-  <tr>
-    <td>8</td>
-    <td>\82¢\8fã\82°\82É\82È\82è\82Ü\82·\82Ë</td>
-    <td>mtStr</td>
-  </tr>
-  <tr>
-    <td>9</td>
-    <td>\e</td>
-    <td>mtTag</td>
-  </tr>
-</table>
-<ul>
-  <li>\82±\82ê\82Í\83f\83t\83H\83\8b\83g\82Ì\83p\83^\81[\83\93\82ð\8eg\97p\82µ\82½\93T\8c^\93I\82È\89ð\90Í\82Ì\8c\8b\89Ê\82Å\82 \82è\81A\89ð\90Í\8c\8b\89Ê\82Í\83p\83^\81[\83\93\82É\82æ\82Á\82Ä\95Ï\89»\82µ\82Ü\82·\81B\8bÉ\92[\82É\8c¾\82¦\82Î\81A\w8\82ð\83^\83O\82Æ\82µ\82Ä\94F\8e¯\82µ\82È\82¢\81A\82Æ\82¢\82¤\82±\82Æ\82à\89Â\94\\82Å\82·\81B</li>
-  <li>Str[2]\82É\82Â\82¢\82Ä\82Í\81AEscapeInvalidMeta = false\82Ì\8fê\8d\87\82Ì\8c\8b\89Ê\82Å\82·\81Btrue\82Ì\8fê\8d\87\82Í\81A\81u\82¢\82ç\82Á\82µ\82á\82¢\%\82Ü\82¹\81v\82Æ\82È\82è\82Ü\82·\81B</li>
-  <li>Str[6]\82É\82Â\82¢\82Ä\82Í\81ALeaveEscape = true\82Ì\8fê\8d\87\82Ì\8c\8b\89Ê\82Å\82·\81Bfalse\82Ì\8fê\8d\87\82Í\81A\81u\300\82Ì\82¨\81v\82Æ\82È\82è\82Ü\82·\81B</li>
-</ul>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83v\83\8d\83p\83e\83B</h2>
-<h3>LeaveEscape: boolean [\8eÀ/\90Ý][\93Ç/\8f\91]</h3>
-<p>\83f\83t\83H\83\8b\83g\82Ítrue\82Å\82·\81BmtStr\82Å\90Ø\82è\8fo\82³\82ê\82½\92Ê\8fí\95\8e\9a\97ñ\82É\8aÜ\82Ü\82ê\82é\81A<code>\\</code> 
-\82â <code>\%</code> 
-\82Ì\95\8e\9a\97ñ\82ð\95Ï\8a·\82¹\82¸\82É\8ec\82·\82©\82Ç\82¤\82©\90Ý\92è\82µ\82Ü\82·\81Bfalse\82É\82·\82é\82±\82Æ\82Å\81A<code>\\</code> 
-\82â <code>\%</code> \82Í1\95\8e\9a\82É\95Ï\8a·\82³\82ê\82ÄmtStr\83G\83\8c\83\81\83\93\83g\82É\91ã\93ü\82³\82ê\82Ü\82·\81B</p>
-<p>TSsParser\82ð\83X\83N\83\8a\83v\83g\82Ì\90F\95ª\82¯\82â\81A\8aë\8c¯\83^\83O\83`\83F\83b\83N\82È\82Ç\82É\8eg\97p\82·\82é\8fê\8d\87\82Í\81A\95\8e\9a\97ñ\92·\82â\83X\83N\83\8a\83v\83g\82»\82Ì\82à\82Ì\82ª\95Ï\82í\82ç\82È\82¢\82æ\82¤\82Étrue\82É\82µ\82Ü\82·\81B\93Æ\8e©SSTP\83T\81[\83o\8aJ\94­\82Ì\8fê\8d\87\82È\82Ç\82Í\81Afalse\82É\82·\82é\82±\82Æ\82Å\95Ï\8a·\82Ì\8eè\8aÔ\82ð\8fÈ\82¯\82Ü\82·\81B</p>
-<p>\95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</p>
-<h3>EscapeInvalidMeta: boolean [\8eÀ/\90Ý][\93Ç/\8f\91]</h3>
-<p>\83f\83t\83H\83\8b\83g\82Ífalse\82Å\82·\81BMetaPattern\82É\82æ\82Á\82Ä\81A%\95\8e\9a\88È\8d~\82ª\83\81\83^\95\8e\9a\97ñ\82Æ\94»\92f\82Å\82«\82È\82¢\8fê\8d\87\81A%\95\8e\9a\82ð\81u\%\81v\82É\83G\83X\83P\81[\83v\82·\82é\82©\82Ç\82¤\82©\90Ý\92è\82µ\82Ü\82·\81B</p>
-<p>TSsParser\82ð\83X\83N\83\8a\83v\83g\82Ì\90F\95ª\82¯\82È\82Ç\82É\8eg\97p\82·\82é\8fê\8d\87\82Í\81A\95\8e\9a\97ñ\92·\82ª\95Ï\82í\82ç\82È\82¢\82æ\82¤\82Éfalse\82É\82µ\82Ü\82·\81B\8c\98\98S\82È\83X\83N\83\8a\83v\83g\8dì\90¬\82Ì\82½\82ß\82Ì\95\96@\83`\83F\83b\83N\82Ì\82½\82ß\82É\82Ítrue\82É\82µ\82Ü\82·\81B</p>
-<p>\95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</p>
-<h3>TagPattern: TStrings [\8eÀ/\90Ý][\93Ç/\8f\91]<br>
-MetaPattern: TStrings [\8eÀ/\90Ý][\93Ç/\8f\91]</h3>
-<p>\82»\82ê\82¼\82ê\81A\83^\83O\90Ø\82è\8fo\82µ\82Ì\82½\82ß\82Ì\83p\83^\81[\83\93\81A\83\81\83^\95\8e\9a\97ñ\90Ø\82è\8fo\82µ\82Ì\82½\82ß\82Ì\83p\83^\81[\83\93\82Å\82·\81B\95Ê\8d\80\81u\83p\83^\81[\83\93\82É\82Â\82¢\82Ä\81v\8eQ\8fÆ\81B\95Ï\8dX\82µ\82½\8fê\8d\87\81A\82»\82Ì\8c\8b\89Ê\82Í\8e\9f\89ñ\82Ì\89ð\90Í\82©\82ç\94½\89f\82³\82ê\82Ü\82·\81B</p>
-<h3>InputString: String [\8eÀ\82Ì\82Ý][\93Ç/\8f\91]</h3>
-<p>\82±\82Ì\83v\83\8d\83p\83e\83B\82É\8f\91\82«\8d\9e\82ñ\82Å\81A\89ð\90Í\82·\82×\82«\83X\83N\83\8a\83v\83g\82ð\90Ý\92è\82µ\82Ü\82·\81B\93Ç\82Ý\8fo\82µ\82Ì\8fê\8d\87\82Í\8dÅ\8cã\82É\89ð\90Í\82µ\82½\83X\83N\83\8a\83v\83g\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B</p>
-<h3>Count: integer [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</h3>
-<p>\83X\83N\83\8a\83v\83g\89ð\90Í\8cã\82Ì\83G\83\8c\83\81\83\93\83g\91\8d\90\94\82ð\95Ô\82µ\82Ü\82·\81B\83X\83N\83\8a\83v\83g\83G\83\8c\83\81\83\93\83g\82ð\83\8b\81[\83v\8f\88\97\9d\82·\82é\8fê\8d\87\82Ì\8fã\8cÀ\92l\82Æ\82µ\82Ä\8eg\97p\82µ\82Ü\82·\81B</p>
-<h3>Str[Index: integer]: String [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</h3>
-<p>\89ð\90Í\8cã\82Ì\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B\8dÅ\8f\89\82Ì\83G\83\8c\83\81\83\93\83g\82ÍStr[0]\81A\8dÅ\8cã\82Ì\83G\83\8c\83\81\83\93\83g\82ÍStr[Count-1]\82Å\82·\81BLeaveExcape, 
-EscapeInavlidMeta\82Ì\97¼\83v\83\8d\83p\83e\83B\82Ì\89e\8b¿\82ð\8eó\82¯\82Ü\82·\81B</p>
-<h3>Extra[Index: integer]: String [\8eÀ\82Ì\82Ý][\93Ç/\8f\91]</h3>
-<p>\82²\8e©\97R\82É\82¨\8eg\82¢\82­\82¾\82³\82¢\81A\82Ì\95\8e\9a\97ñ\82Å\82·\81B\89ð\90Í\8c\8b\89Ê\82É\83\81\83\82\82ð\82Â\82¯\82½\82è\82·\82é\97p\93r\82É\82Ç\82¤\82¼\81B</p>
-<h3>MarkUpType[Index: integer]: TSsMarkUpType [\8eÀ\82Ì\82Ý][\93Ç\82Ì\82Ý]</h3>
-<p><code>type TSsMarkUpType = (mtTag, mtMeta, mtTagErr, mtStr);</code></p>
-<p>\83G\83\8c\83\81\83\93\83g\82Ì\8eí\97Þ\82ð\95Ô\82µ\82Ü\82·\81B\8dÅ\8f\89\82Ì\83G\83\8c\83\81\83\93\83g\82ÍMarkUpType[0]\81A\8dÅ\8cã\82Ì\83G\83\8c\83\81\83\93\83g\82ÍMarkUpType[Count-1]\82Å\82·\81B</p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83C\83x\83\93\83g</h2>
-<h3>OnSsParse: TSsParseEvent</h3>
-<p><code>TSsParseEvent = procedure (Sender: TObject; const Script: String;<br>
-var Len: integer; var MarkType: TSsMarkUpType; var Extra: String) of object;</code></p>
-<p>\83^\83O\82Ü\82½\82Í\83\81\83^\95\8e\9a\97ñ\82Ì\83p\83^\81[\83\93\83}\83b\83`\8e\8e\8ds\82Ì\91O\82É\8cÄ\82Ñ\8fo\82³\82ê\82Ü\82·\81B\82±\82Ì\83C\83x\83\93\83g\82ð\8eg\97p\82·\82é\82Æ\81ATagPattern, 
-MetaPattern\82Ì\8ed\97l\82Å\82Í\90Ø\82è\8fo\82¹\82È\82¢\83}\81[\83N\83A\83b\83v\82ª\8f«\97\88\82Å\82«\82½\8fê\8d\87\82É\81A\83X\83N\83\8a\83v\83g\82©\82ç\82Ì\83^\83O\82â\83\81\83^\95\8e\9a\97ñ\82Ì\90Ø\82è\8fo\82µ\82ð\8e©\97R\82É\83R\81[\83f\83B\83\93\83O\82Å\82«\82Ü\82·\81B</p>
-<p>Script\82Í\89ð\90Í\93r\92\86\82Ì\83X\83N\83\8a\83v\83g\82Å\82·\81B1\95\8e\9a\96Ú\82Í\95K\82¸\81u\\81v\82Ü\82½\82Í\81u%\81v\82Æ\82È\82Á\82Ä\82¢\82Ü\82·\81BLen\82Í\8cÄ\82Ñ\8fo\82µ\8e\9e\82É\82Í0\82ª\91ã\93ü\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
-<p>\82±\82Ì\83C\83x\83\93\83g\83n\83\93\83h\83\89\93à\82Å\81AScript\82Ì\90æ\93ª\82©\82ç\8en\82Ü\82é\95\94\95ª\82ð\89ð\90Í\82µ\82Ü\82·\81B\83G\83\8c\83\81\83\93\83g\82ð\89ð\8eß\82Å\82«\82½\8fê\8d\87\82Í\82»\83G\83\8c\83\81\83\93\83g\82Ì\92·\82³(\83o\83C\83g\90\94)\82ðLen(&gt;2)\82É\81A\83^\83C\83v\82ðMarkType\82É\81A\95K\97v\82È\82çExtra\82É\95\8e\9a\97ñ\82ð\93ü\82ê\82Ä\81A\83C\83x\83\93\83g\83n\83\93\83h\83\89\82ð\8fI\97¹\82µ\82Ä\82­\82¾\82³\82¢\81B\89ð\8eß\82Å\82«\82È\82¢\8fê\8d\87\82ÍLen=0\82Ì\82Ü\82Ü\8fI\97¹\82·\82ê\82Î\81A\82»\82Ì\82Ü\82Ü\92Ê\8fí\82Ì\83p\83^\81[\83\93\83}\83b\83`\8e\8e\8ds\82É\93ü\82è\82Ü\82·\81B</p>
-<p>\97v\82Í\81A\95\8e\9a\97ñ\90æ\93ª\82©\82ç\82±\82±\82Ü\82Å\82ª\83^\83O(\83\81\83^\95\8e\9a\97ñ)\82¾\82æ\81A\82Æ\82¢\82¤\82Ì\82ð\8c©\82Â\82¯\82Ä\95Ô\82µ\82Ä\82­\82ê\81A\82Æ\82¢\82¤\82±\82Æ\82Å\82·\81B</p>
-<p>Len&gt;1\82Å\82 \82Á\82Ä\82à\81AScript\82Ì1\95\8e\9a\96Ú\82ª\\82È\82Ì\82ÉMarkUpType\82ªmtTag\82Å\82àmtTagErr\82Å\82à\82È\82¢\8fê\8d\87\81A\82 \82é\82¢\82ÍScript\82Ì1\95\8e\9a\96Ú\82ª%\82È\82Ì\82ÉMarkUpType\82ªmtMeta\82Å\82È\82¢\8fê\8d\87\82Í\97á\8aO\82ª\94­\90\82µ\82Ü\82·\81B</p>
-<h2>\83\8a\83t\83@\83\8c\83\93\83X-\83\81\83\\83b\83h</h2>
-<h3>function Match(Str, Pattern: String): integer;</h3>
-<p>SSTP\89ð\90Í\97p\82Ì\83p\83^\81[\83\93\83}\83b\83`\83\93\83O\82ð\8ds\82¢\82Ü\82·\81BStr\82Ì\90æ\93ª\95\94\95ª\81APattern\82Å\8e¦\82³\82ê\82é\83p\83^\81[\83\93\82ª\91\8dÝ\82·\82ê\82Î\81A\83}\83b\83`\82µ\82½\95\94\95ª\82Ì\83o\83C\83g\90\94(\95\8e\9a\90\94\82Å\82Í\82È\82¢)\82ð\95Ô\82µ\82Ü\82·\81B\83}\83b\83`\83\93\83O\82ª\8e¸\94s\82µ\82½\8fê\8d\87\82Í0\82ð\95Ô\82µ\82Ü\82·\81B</p>
-<p>\97á\82¦\82Î\81A</p>
-<p><code>Match('ABC', 'AB') = 2<br>
-Match('ABC', 'A%.%.') = 3<br>
-Match('A20BC', 'A%D') = 3<br>
-Match('\s[20]', '\s%b') = 6<br>
-Match('\s2', '\s%b') = 0</code></p>
-<h3>function GetParam(Tag: String; const Index: integer): String;</h3>
-<p><code>\s[3]</code> \82â <code>\_c[\82±\82ñ\82É\82¿\82Í]</code> , <code>\q1[#cancel][\83L\83\83\83\93\83Z\83\8b]</code> 
-\82Æ\82¢\82Á\82½\83}\81[\83N\83A\83b\83v\82©\82ç\81A\83X\83N\83E\83F\83A\83u\83\89\83P\83b\83g\82É\88Í\82Ü\82ê\82½\83p\83\89\83\81\81[\83^\82ð\8eæ\82è\8fo\82µ\82Ü\82·\81BTag\82Í\8eæ\82è\8fo\82µ\82½\82¢\83^\83O\91S\91Ì\81AIndex\82Í\89½\94Ô\96Ú\82Ì\83p\83\89\83\81\81[\83^\82ð\8eæ\82è\8fo\82·\82©\81A\82Å\81A1\82©\82ç\8en\82Ü\82è\82Ü\82·\81B<code>\\</code> 
-\82â <code>\]</code> 
-\82É\82æ\82é\83G\83X\83P\81[\83v\82É\91Î\89\9e\82µ\81A\82±\82ê\82ç\82Ì\83G\83X\83P\81[\83v\82Í\8e©\93®\93I\82É\8c³\82Ì\8c`\82É\96ß\82³\82ê\82Ü\82·\81B</p>
-<p>Index\82ª\83[\83\8d\88È\89º\82Ì\8fê\8d\87\81A\83p\83\89\83\81\81[\83^\82ª\8eæ\82è\8fo\82¹\82È\82©\82Á\82½\8fê\8d\87\82È\82Ç\82É\82Í\81A\8bó\95\8e\9a\97ñ\82ª\95Ô\82è\82Ü\82·\81B</p>
-<p><code>GetParam('\s[3]', 1) = '3';<br>
-GetParam('\s[3]', 2) = '';<br>
-GetParam('\j[http://www.yahoo.co.jp/index[1\].html]', 1) = 
-'http://www.yahoo.co.jp/index[1].html'</code></p>
-<h3>function EscapeParam(const Param: String): String;</h3>
-<p>\j[] \82Ì\92\86\82É\88À\91S\82É\91ã\93ü\82Å\82«\82é\82æ\82¤\82É\81A<code>\</code> \82ð <code>\\</code> 
-\82É\81A<code>]</code> \82ð <code>\]</code> 
-\82É\95Ï\8a·\82µ\82½\95\8e\9a\97ñ\82ð\95Ô\82µ\82Ü\82·\81B\8c\98\98S\82È\83X\83N\83\8a\83v\83g\8dì\90¬\82Ì\82½\82ß\82É\82Í\90¥\94ñ\97\98\97p\82·\82é\82æ\82¤\82É\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h2>\83p\83^\81[\83\93\82É\82Â\82¢\82Ä</h2>
-<p>TagPattern, MetaPattern\83v\83\8d\83p\83e\83B\82É\81A\82³\82­\82ç\83X\83N\83\8a\83v\83g\82ð\89ð\90Í\82·\82é\82Æ\82«\82Ì\83p\83^\81[\83\93\82ð\8ew\92è\82µ\82Ü\82·\81B</p>
-<p>\92Ê\8fí\82Í\83A\81[\83J\83C\83u\93¯\8d«\82Ì\83e\83L\83X\83g\83t\83@\83C\83\8b\82©\82ç\83R\83s\81[\82·\82ê\82Î\96â\91è\82Í\82 \82è\82Ü\82¹\82ñ\82ª\81A\8f«\97\88\82Ì\83^\83O\8ag\92£\93\99\82Ì\82½\82ß\82É\82±\82Ì\8ed\97l\82ª\91\8dÝ\82µ\82Ü\82·\81B\82±\82Ì\83p\83^\81[\83\93\83\8a\83X\83g\8e©\90g\82ð\83e\83L\83X\83g\83t\83@\83C\83\8b\82È\82Ç\82©\82ç\93Ç\82Ý\8d\9e\82Þ\82æ\82¤\82É\82·\82é\82±\82Æ\82Å\81A\8eÀ\8ds\83t\83@\83C\83\8b\82ð\8dX\90V\82¹\82¸\82É\83^\83O\89ð\90Í\95\94\82ð\8dX\90V\82·\82é\82±\82Æ\82à\89Â\94\\82Å\82·\81B</p>
-<p>\81u\83^\83O\82ª\\82Å\8en\82Ü\82é\81v\81u\83\81\83^\95\8e\9a\97ñ\82ª%\82Å\8en\82Ü\82é\81v\81u\\\82â\%\82Í\83G\83X\83P\81[\83v\81v\82È\82Ç\82Æ\82¢\82Á\82½\8aî\96{\93I\82È\8ed\97l\82ª\95Ï\8dX\82É\82È\82ç\82È\82¢\8cÀ\82è\81A\83^\83O\82Ì\92Ê\8fí\82Ì\91\9d\8c¸\82É\8aÖ\82µ\82Ä\82Í\81APattern\83v\83\8d\83p\83e\83B\82ð\95Ï\8dX\82·\82é\82±\82Æ\82Å\81A\91å\92ï\91Î\89\9e\82Å\82«\82é\82Æ\8ev\82¢\82Ü\82·\81B\93Á\8eê\82È\8f\91\82«\95û\82Ì\8fê\8d\87\81A\83C\83x\83\93\83g\82ð\97\98\97p\82·\82é\95û\96@\82à\82 \82è\82Ü\82·\81B</p>
-<h3>\83p\83^\81[\83\93\82Ì\8f\91\82«\95û\8aT\97ª</h3>
-<p>TagPattern\82Ì\8ae\8ds\82ª\81A1\82Â\82Ì\83^\83O\82É\89\9e\93\9a\82·\82é\83p\83^\81[\83\93\82Å\82·\81B\97á\82¦\82Î\81A\81u\e\81v\82Æ\82¢\82¤\8ds\82ðTagPattern\83v\83\8d\83p\83e\83B\82É\92Ç\89Á\82·\82é\82±\82Æ\82Å\81A\81u\e\81v\82Æ\82¢\82¤\83^\83O\82É\94½\89\9e\82Å\82«\82é\82æ\82¤\82É\82È\82è\81A\81u!_c\81v\82Æ\82¢\82¤\8ds\82ð\92Ç\89Á\82·\82ê\82Î\81A\81u\_c\81v\82Æ\82¢\82¤\83^\83O\82Í\83G\83\89\81[\82Å\82 \82é\81A\82Æ\89ð\90Í\82·\82é\82æ\82¤\82É\82È\82è\82Ü\82·\81B</p>
-<p>\83p\83^\81[\83\93\82Í\8fã\82©\82ç\8f\87\94Ô\82É\8e\8e\8ds\82³\82ê\81A\83}\83b\83`\82µ\82½\8e\9e\93_\82Å\8e\8e\8ds\82ð\92\86\8e~\82µ\82Ü\82·\81B</p>
-<p>TagPattern\82Ì\8ae\8ds\82Í\81A\\8bL\8d\86\82Ü\82½\82Í!\8bL\8d\86\82Å\8en\82ß\82Ä\82­\82¾\82³\82¢\81B\\8bL\8d\86\82Å\8en\82Ü\82é\83p\83^\81[\83\93\82Í\81A\83}\83b\83`\82µ\82½\8fê\8d\87\82»\82ê\82ð\90³\93\96\82È\83^\83O\82ð\82µ\82Ä\8f\88\97\9d\82µ\82Ü\82·\81B!\8bL\8d\86\82Å\8en\82Ü\82é\83p\83^\81[\83\93\82Í\81A\83}\83b\83`\82µ\82½\8fê\8d\87\82»\82ê\82ð\83^\83O\82Ì\83G\83\89\81[\82Æ\82µ\82Ä\8f\88\97\9d\82µ\82Ü\82·\81B</p>
-<p>\97á\82¦\82Î\81A\81u\w\81v\83^\83O\82Ì\8f\88\97\9d\82Ì\82½\82ß\82É\82Í\81A</p>
-<blockquote>
-  <p><code>\w%d<br>
-  !w%.</code></p>
-</blockquote>
-<p>\82Æ\82¢\82¤2\8ds\82ðTagPattern\82É\89Á\82¦\82é\82Æ\82æ\82¢\82Å\82µ\82å\82¤\81B\82±\82ê\82Å\81A<code>\w9</code> 
-\93\99\82Í\90³\93\96\82È\83^\83O\82Å\81A\90\94\8e\9a\88È\8aO\82ªw\82Ì\8cã\82É\82«\82½\8fê\8d\87\82Í <code>\w\82 </code> 
-\82Æ\82¢\82Á\82½\91S\91Ì\82ð\83^\83O\83G\83\89\81[\82Æ\82µ\82Ä\8f\88\97\9d\82·\82é\81A\82Æ\82¢\82¤\88Ó\96¡\82É\82È\82è\82Ü\82·\81B</p>
-<p>MetaPattern\82Ì\8ae\8ds\82ª\81A1\82Â\82Ì\83\81\83^\95\8e\9a\97ñ\82É\89\9e\93\9a\82·\82é\83p\83^\81[\83\93\82Å\82·\81B\97á\82¦\82Î\81uselfname\81v\82Æ\82¢\82¤\8ds\82ðMetaPattern\83v\83\8d\83p\83e\83B\82É\92Ç\89Á\82·\82é\82±\82Æ\82Å\81A\81u%selfname\81v\82Æ\82¢\82¤\83\81\83^\95\8e\9a\97ñ\82É\94½\89\9e\82µ\82Ü\82·\81BMetaPattern\82Ì\8fê\8d\87\82Í\81A%\88È\8d~\82É\91±\82­\95\8e\9a\97ñ\82ð\82»\82Ì\82Ü\82Ü\8bL\8fq\82·\82é\82æ\82¤\82È\8ai\8dD\82Å\91å\8fä\95v\82Å\82·\81B</p>
-<p>\83}\83b\83`\8e\8e\8ds\82Í\83p\83^\81[\83\93\83\8a\83X\83g\82Ì\8fã\82©\82ç\8f\87\94Ô\82É\8ds\82í\82ê\82é\82½\82ß\81AMetaPattern\83v\83\8d\83p\83e\83B\82Å\81A\97á\82¦\82Π
-<code>selfname2</code> \82Æ\82¢\82¤\8ds\82Í <code>selfname</code> 
-\82æ\82è\8fã\82É\94z\92u\82³\82ê\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B</p>
-<h3>\83p\83^\81[\83\93\82Ì\8bL\8fq\95û\96@</h3>
-<p>\90³\8bK\95\\8c»\82Ý\82½\82¢\82È\82à\82Ì\82Å\82·\82ª\81A\82»\82±\82Ü\82Å\8d\82\8b@\94\\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B\8bt\82É\90³\8bK\95\\8c»\82Å\82Í\95\\8c»\82Å\82«\82È\82¢\95\\8bL\82É\91Î\89\9e\82µ\82Ä\82½\82è\82à\82µ\82Ü\82·\82ª\81B</p>
-<ul>
-  <li><code>%d</code> \82Í\94C\88Ó\82Ì\90®\90\941\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B<code>\s%d</code> 
-    \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A<code>\s0</code> \82â <code>\s3</code> 
-    \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%D</code> \82Í\94C\88Ó\82Ì\90®\90\94\97ñ\82É\83}\83b\83`\82µ\82Ü\82·\81B<code>\s[%D]</code> 
-    \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A<code>\s[0]</code> \82â <code>\s[10]</code> 
-    \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%b</code> \82Í[]\82Å\88Í\82Ü\82ê\82½\95\8e\9a\97ñ\82É\83}\83b\83`\82µ\82Ü\82·\81B<code>\]</code> 
-    \82â <code>\\</code> \82É\82æ\82é\83G\83X\83P\81[\83v\82É\91Î\89\9e\82µ\82Ü\82·\81B<code>\j%b</code> 
-    \82Æ\82¢\82¤\83p\83^\81[\83\93\82Í\81A <code>\j[http://www.a.com/index[1\].html]</code> 
-    \82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%.</code> \82Í\94C\88Ó\82Ì1\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%m</code> 
-    \82Í\94C\88Ó\82Ì\83V\83\93\83O\83\8b\83o\83C\83g\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%M</code> 
-    \82Í\94C\88Ó\82Ì\83}\83\8b\83`\83o\83C\83g\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B</li>
-  <li><code>%%</code> \82Í\81u%\81v\8bL\8d\86\82»\82Ì\82à\82Ì\82É\83}\83b\83`\82µ\82Ü\82·\81B\8eg\97p\82µ\82È\82¢\82Æ\82¢\82¯\82È\82¢\8b@\89ï\82Í\82¨\82»\82ç\82­\8f«\97\88\82à\82 \82è\82Ü\82¹\82ñ\81B</li>
-  <li>%\82Ì\92¼\8cã\82ª\81A\8fã\8bL\82Ì\82¢\82¸\82ê\82Å\82à\82È\82¢\95\8e\9a\82Å\82 \82é\8fê\8d\87\81A\82Æ\82è\82 \82¦\82¸ 
-    <code>%%</code> 
-    \82Æ\82µ\82Ä\89ð\8eß\82µ\82Ü\82·\82ª\81A\82±\82Ì\82æ\82¤\82È\8eg\82¢\95û\82Í\82µ\82È\82¢\82Å\82­\82¾\82³\82¢\81B</li>
-  <li>\82»\82ê\88È\8aO\82Ì\95\8e\9a\82Í\82·\82×\82Ä\82»\82Ì\95\8e\9a\82»\82Ì\82à\82Ì\82É\83}\83b\83`\82µ\82Ü\82·\81B\\82à\8aÜ\82ß\81B</li>
-</ul>
-<h3>\83}\83b\83`\83\93\83O\8fÚ\8d×</h3>
-<p>\83}\83b\83`\83\93\83O\82Í\88È\89º\82Ì\82æ\82¤\82É\8ds\82í\82ê\82Ü\82·\81B</p>
-<ol>
-  <li>\83}\81[\83N\83A\83b\83v\82Æ\8ev\82í\82ê\82é\81u\\81v\82Ü\82½\82Í\81u%\81v\82ð\90æ\93ª\82©\82ç\92T\82µ\82Ü\82·\81B\81u\\\81v\82â\81u\%\81v\82Í\83G\83X\83P\81[\83v\82Å\82·\82Ì\82Å\93Ç\82Ý\94ò\82Î\82³\82ê\82Ü\82·\81B\82»\82Ì\95\94\95ª\82Ü\82Å\82Í\81A\83}\81[\83N\83A\83b\83v\82Å\82Í\82È\82¢\92Ê\8fí\82Ì\95\8e\9a\97ñ\82Å\82·\81B</li>
-  <li>\81u%\81v\82Å\8en\82Ü\82é\8fê\8d\87\82Í\83\81\83^\95\8e\9a\97ñ\82Ì\89Â\94\\90«\82ª\82 \82é\82Ì\82Å\81A\83}\83b\83`\83\93\83O\82ð\8aJ\8en\82µ\82Ü\82·\81B%\88È\89º\82ª\97L\8cø\82È\83\81\83^\95\8e\9a\97ñ\82Æ\82µ\82Ä\89ð\8eß\82Å\82«\82È\82¢\8fê\8d\87\82Í\81A\81u%\81v\82Í\88Ó\96¡\82ð\82È\82³\82È\82¢\92Ê\8fí\82Ì%\95\8e\9a\97ñ\82Æ\82µ\82Ä\81A\%\82É\83G\83X\83P\81[\83v\82³\82ê\82Ä(EscapeInvalidMeta\82Å\90§\8cä\89Â\94\)\91O\82ÌmtStr\83G\83\8c\83\81\83\93\83g\82É\82­\82Á\82Â\82«\82Ü\82·\81B</li>
-  <li>\81u\\81v\82Å\8en\82Ü\82é\8fê\8d\87\82Ì\83}\83b\83`\83\93\83O\82ð\8aJ\8en\82µ\82Ü\82·\81B\\88È\89º\82ª\90³\8bK\82Ì\83^\83O\82Æ\82µ\82Ä\89ð\8eß\82Å\82«\82½\8fê\8d\87\82ÍmtTag\83^\83C\83v\82Æ\82µ\82Ä\81A\83G\83\89\81[\83^\83O\82Æ\82È\82Á\82½\8fê\8d\87\82ÍmtTagErr\82Æ\82µ\82Ä\90Ø\82è\8fo\82µ\82Ü\82·\81BTagPattern\82Ì\82Ç\82Ì\8ds\82É\82à\83}\83b\83`\82µ\82È\82©\82Á\82½\8fê\8d\87\82Í\81A\\82Ì\8e\9f\82Ì1\95\8e\9a\8aÜ\82ß\82Ä\81A\83G\83\89\81[\83^\83O\82Æ\82µ\82Ä\90Ø\82è\8fo\82µ\82Ü\82·\81B</li>
-  <li>\8dÅ\8f\89\82É\96ß\82è\82Ü\82·\81B</li>
-</ol>
-<h2>\8eg\97p\97á - SSTP\83T\81[\83o</h2>
-<p>\93Æ\8e©SSTP\83T\81[\83o\8d\\92z\95â\8f\95\82É\97\98\97p\82·\82é\8fê\8d\87\82Í\81ALeaveEscape := 
-false; EscapeInvalidMeta := false; \82Æ\82·\82é\82Æ\8aÈ\92P\82Å\82·\81B</p>
-<p><code>SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; case SsParser.MarkUpType[i] of<br>
-&nbsp;&nbsp;&nbsp; mtStr: Memo1.Lines.Add(SsParser.Str[i]);<br>
-&nbsp;&nbsp;&nbsp; mtTag: {\83^\83O\8aÖ\98A\82Ì\8f\88\97\9d}<br>
-&nbsp;&nbsp;&nbsp; mtTagErr: Memo1.Lines.Add(SsParser.Str[i]); //\8f\88\97\9d\82¹\82¸\82É\82»\82Ì\82Ü\82Ü\95\\8e¦<br>
-&nbsp;&nbsp;&nbsp; mtMeta: {\83\81\83^\95\8e\9a\97ñ\95Ï\8a·\8cê\95\\8e¦}<br>
-&nbsp; end;<br>
-end;</code></p>
-<h2>\8eg\97p\97á - \83X\83N\83\8a\83v\83g\90F\95ª\82¯HTML\8dì\90¬</h2>
-<p>\90F\95ª\82¯\82ª\96Ú\93I\82Ì\8fê\8d\87\81A\83X\83N\83\8a\83v\83g\82ª\95Ï\82í\82é\90S\94z\82Ì\82È\82¢\82æ\82¤\81ALeaveEscape 
-:= true; EscapeInvalidMeta := false;\82Æ\82µ\82Ü\82·\81B</p>
-<p>\88È\89º\82Í\81A\83^\83O\95\94\95ª\82É\90F\82ð\90Ý\92è\82·\82éHTML\83}\81[\83N\83A\83b\83v\82Å\82·\81B</p>
-<p><code>var Html: String;<br>
-//<br>
-SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; case SsParser.MarkUpType[i] of<br>
-&nbsp;&nbsp;&nbsp; mtStr: Html := Html + SsParser.Str[i];<br>
-&nbsp;&nbsp;&nbsp; mtTag: Html := Html + '&lt;font color=&quot;green&quot;&gt;' 
-+ SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp;&nbsp;&nbsp; mtTagErr: Html := Html + '&lt;font color=&quot;red&quot;&gt;' 
-+ SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp;&nbsp;&nbsp; mtMeta: Html + '&lt;font color=&quot;blue&quot;&gt;' + 
-SsParser.Str[i] + '&lt;/font&gt;';<br>
-&nbsp; end;<br>
-end;<br>
-Edit2.Text := Html;</code></p>
-<h2>\8eg\97p\97á - OnSsParse\8eg\97p\97á</h2>
-<p>\88È\89º\82Í\81AOnSsParse\83C\83x\83\93\83g\82Ì\8eg\97p\97á\82Å\82·\81B\82à\82Á\82Æ\82à\92P\8f\83\82É\81A\u\83^\83O\82ð\94»\92è\82µ\82Ü\82·\81BTagPattern\82Ì1\8ds\96Ú\82É 
-<code>\u</code> \82Æ\8f\91\82¢\82½\8fê\8d\87\82Æ\93¯\82\93®\8dì\82Æ\82È\82è\82Ü\82·\81B</p>
-<p><code>procedure TForm1.SsParser1SsParse(Sender: TObject; const Script: 
-String;<br>
-&nbsp; var Len: integer; var MarkType: TSsMarkUpType; var Extra: String)<br>
-begin<br>
-&nbsp; if Pos('\u', Script) = 1 then begin<br>
-&nbsp;&nbsp;&nbsp; Len := Length('\u');<br>
-&nbsp;&nbsp;&nbsp; MarkType := mtTag;<br>
-&nbsp; end;<br>
-end;</code></p>
-<h2>\8eg\97p\97á - \83T\81[\83t\83B\83X\94»\92è</h2>
-<p>\88ê\94Ô\8dÅ\8cã\82Ì\83T\81[\83t\83B\83X\82ª\89½\82É\82È\82é\82©\82ð\94»\92è\82µ\82Ü\82·\81B\82½\82¾\82µ\96{\97\88\82Í\81A\h, 
-\u\82É\82æ\82é\90Ø\82è\91Ö\82¦\82È\82Ç\82ª\95K\97v\82Å\82µ\82å\82¤\81B</p>
-<p><code>var Last: integer;<br>
-//<br>
-SsParser1.InputString := Edit1.Text;<br>
-for i := 0 to SsParser1.Count-1 do begin<br>
-&nbsp; if SsParser.Match(SsParser.Str[i], '\s%b') &gt; 0 then begin<br>
-&nbsp;&nbsp;&nbsp; try<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last := 
-StrToInt(SsParser.GetParam(SsParser.Str[i]));<br>
-&nbsp;&nbsp;&nbsp; except<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on EConvertError do begin end;<br>
-&nbsp;&nbsp;&nbsp; end;<br>
-&nbsp; end;<br>
-end;</code></p>
-<h2>\8f\94\92\8d\88Ó</h2>
-<h3>\8dÄ\89ð\90Í\82É\82Â\82¢\82Ä</h3>
-<p><code>with SsParser1 do InputString := InputString;</code></p>
-<p>\82Æ\82·\82é\82±\82Æ\82Å\81AEscapeInvalidMeta\93\99\82Ì\89ð\90Í\83I\83v\83V\83\87\83\93\82â\81AMetaPattern\93\99\82Ì\89ð\90Í\83p\83^\81[\83\93\82ª\95Ï\89»\82µ\82½\82Æ\82«\82É\8dÄ\89ð\90Í\82ð\8ds\82¦\82Ü\82·\81B\95Ï\82È\8f\91\82«\95û\82Å\82·\82ª\81B</p>
-<h3>\89ü\8ds\95\8e\9a\82É\82Â\82¢\82Ä</h3>
-<p>InputString\82É\89ü\8ds\95\8e\9a\82â\82»\82Ì\91¼\82Ì\8bó\94\92\95\8e\9a\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82½\8fê\8d\87\81A\92Ê\8fí\82Ì\95\8e\9a\82Æ\93¯\82\82æ\82¤\82É\88µ\82¢\82Ü\82·\81B\82Â\82Ü\82è\81A\89ü\8ds\95\8e\9a\82¾\82©\82ç\82Æ\82¢\82Á\82Ä\93Á\82É\89½\82ç\82©\82Ì\8f\88\97\9d\82ª\8ds\82í\82ê\82½\82è\81A\8bt\82É\8f\88\97\9d\82Ì\8e×\96\82\82É\82È\82Á\82½\82è\82·\82é\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81B\89ü\8ds\82ð 
-<code>\n</code> \82É\95Ï\8dX\82µ\82½\82¢\81A\82È\82Ç\82Ì\8fê\8d\87\82Í\82 \82ç\82©\82\82ß 
-StringReplace \82È\82Ç\82ð\97\98\97p\82µ\82Ä\8e©\95ª\82Å\95Ï\8a·\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<h3>\83^\83O\83G\83\89\81[\82Ì\97\98\97p\82É\82Â\82¢\82Ä</h3>
-<p>TagPattern\82Å\8ds\93ª\82ª <code>!</code> 
-\82Å\8en\82Ü\82é\83p\83^\81[\83\93\82ð\8ew\92è\82·\82é\82±\82Æ\82â\81AOnSsParse\83C\83x\83\93\83g\82ÅmtTagErr\83G\83\8c\83\81\83\93\83g\82ð\95Ô\82·\8e\96\82Å\81A\\82Å\8en\82Ü\82é\94C\88Ó\82Ì\95\8e\9a\97ñ\82ð\83^\83O\83G\83\89\81[\82Æ\8c©\82È\82·\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\82Ü\82½\81ATagPattern\82Å\83}\83b\83`\82µ\82È\82©\82Á\82½\8fê\8d\87\82Í\81A\\8bL\8d\86\82Ì\8e\9f\82Ì1\95\8e\9a\82Ü\82Å\82ð\8aÜ\82ß\82Ä\83^\83O\83G\83\89\81[\82Æ\82µ\82Ä2\95\8e\9a\95ª\90Ø\82è\8fo\82µ\82Ü\82·\81B\82±\82Ì\97\98\97p\95û\96@\82Å\82·\82ª\81A</p>
-<ul>
-  <li>\83X\83N\83\8a\83v\83g\82Ì\83`\83F\83b\83N\82É\97\98\97p\82·\82é\8fê\8d\87\81ATagPattern\82ð\95Ï\8dX\82·\82é\8e\96\82Å\81ASSTP\8c \8cÀ\82Å\93®\82©\82È\82¢\83^\83O\82Ì\83`\83F\83b\83N\82ð\8ds\82¤\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B</li>
-  <li>SSTP\83T\81[\83o\8d\\92z\82Ì\8fê\8d\87\81A\83G\83\89\81[\83^\83O\82Í\82»\82Ì\82Ü\82Ü\83Z\83\8a\83t\82Æ\93¯\82\8c`\82Å\8fo\97Í\82·\82é\82æ\82¤\82É\82·\82ê\82Î\81A\83^\83O\82Ì\83}\81[\83N\83A\83b\83v\83G\83\89\81[\82É\8aÖ\82µ\82Ä\8f_\93î\82È\95\9c\8bA\82ª\82Å\82«\82Ü\82·(\8fã\82Ì\97á\8eQ\8fÆ)\81B</li>
-</ul>
-<h2>\89ð\90Í\82É\82Â\82¢\82Ä\82Ì\92\8d\88Ó</h2>
-<h3>\81u\94C\88Ó\81vphase 40.01\88È\91O\82Ì\89ð\90Í\96â\91è</h3>
-<p>\81u\82 \82ê\88È\8aO\82Ì\89½\82© with \94C\88Ó phase 40\81v\82É\82Í\81A\83X\83N\83\8a\83v\83g\89ð\90Í\82É\8aÖ\82µ\82Ä\81A\88È\89º\82É\8b\93\82°\82é\96â\91è\82ª\82 \82è\82Ü\82·\81B\8c´\88ö\82Í\96Ê\93|\82È\82Ì\82Å\8b\93\82°\82Ü\82¹\82ñ\82ª\81B</p>
-<ul>
-  <li>[SSTP\82Ì\8fê\8d\87] <code>\\30</code><code> </code>\82Æ\82¢\82Á\82½\95\8e\9a\97ñ\82Í\96{\97\88 
-    <code>\\ </code>\82ð\83G\83X\83P\81[\83v\82Æ\89ð\8eß\82·\82é\82×\82«\82Å\82·\82ª\81A<code>\3</code><code> 
-    </code>\82ª\8aë\8c¯\83^\83O\82Ì\82½\82ß\81A<code>\\30 </code>\82ª <code>\0 </code>\82É\95Ï\8a·\82³\82ê\82Ä\8eÀ\8ds\82³\82ê\82Ä\82µ\82Ü\82¢\82Ü\82·\81B</li>
-  <li>[SSTP\82Ì\8fê\8d\87] <code>\82ð\- </code>\82È\82Ç\81A\89~\8bL\8d\86\82Ì\91O\82É\93Á\92è\82Ì\95\8e\9a\82ª\97\88\82é\8fê\8d\87\81A\8aë\8c¯\83^\83O\83`\83F\83b\83N\82ð\82·\82è\94²\82¯\82Ü\82·\81B</li>
-  <li><code>\\8a¿ </code>\82â <code>\w\8a¿ </code>\82Æ\82¢\82Á\82½\8bL\8fq\82Å\95\8e\9a\89»\82¯\82ª\90\82\82Ü\82·\81B</li>
-  <li><code>\\94\- </code>\82â <code>\w\94\- </code>\82Æ\82¢\82Á\82½\8bL\8fq\82Å\8aë\8c¯\83^\83O\82ª\8eÀ\8ds\82³\82ê\82é\8fê\8d\87\82ª\82 \82è\82Ü\82·\81B</li>
-  <li><code>\94\%selfname </code>\82Æ\82¢\82Á\82½\8bL\8fq\82Å\81A<code>%selfname</code> 
-    \82ª\90³\82µ\82­\95Ï\8a·\82³\82ê\82Ü\82¹\82ñ\81B</li>
-  <li><code>\\%selfname </code>\82Æ\82¢\82Á\82½\8bL\8fq\82Å\81A<code>%selfname</code> 
-    \82ª\90³\82µ\82­\95Ï\8a·\82³\82ê\82Ü\82¹\82ñ\81B</li>
-  <li><code>\j[http://www.\8c].com/]</code> \82Æ\82¢\82Á\82½\8bL\8fq\82Å\81A\81u\8c]\81v\82Ì2\83o\83C\83g\96Ú\82ª 
-    <code>]</code> 
-    \8bL\8d\86\82Æ\83R\81[\83h\82ª\93¯\82\82Å\82 \82é\82½\82ß\89ð\90Í\83G\83\89\81[\82ð\8bN\82±\82·\8fê\8d\87\82ª\82 \82è\82Ü\82·\81B<code>\q</code> 
-    \82à\93¯\97l\82Å\82·\81B</li>
-  <li>\83X\83N\83\8a\83v\83g\92\86\82Ì\89ü\8ds\82ª\81A\\8bL\8d\86\82Æ\93¯\82\88Ó\96¡\82ð\8e\9d\82Á\82Ä\82µ\82Ü\82¤\82±\82Æ\82ª\82 \82è\82Ü\82·\81B</li>
-  <li><code>\w\\-</code> 
-    \82Æ\82¢\82Á\82½\8bL\8fq\82Å\81A\8aë\8c¯\83^\83O\82ª\83u\83\8d\83b\83N\82³\82ê\82¸\82É\8eÀ\8ds\82³\82ê\82Ä\82µ\82Ü\82¢\82Ü\82·\81B(\82±\82ê\82Í\8f\89\8aúdeveloper's 
-    test\82É\82à\8ec\82Á\82Ä\82¢\82½\96â\91è)</li>
-</ul>
-<p>TSsParser\82Æ\82Í\8aÖ\98A\82µ\82Ü\82¹\82ñ\82ª\81A<code>%songname %enamyname</code> 
-\93\99\82ª\8aë\8c¯\83^\83O\82ð\8aÜ\82Þ\95\8e\9a\97ñ\82É\95Ï\8a·\82³\82ê\82½\8fê\8d\87\82É\82»\82Ì\82Ü\82Ü\8eÀ\8ds\82³\82ê\82é\81A\82Æ\82¢\82Á\82½\96â\91è\93_\82à\82 \82è\82Ü\82·\81B\8dÅ\90V\94Å\82Å\82Í\88È\8fã\82Ì\96â\91è\82Í\82·\82×\82Ä\89ð\8c\88\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
-<p>TSsParser\82Í\88È\8fã\82Ì\96â\91è\93_\82ð\8aÜ\82Ü\82È\82¢\82Í\82¸\82Å\82·(\83p\83^\81[\83\93\82Ì\8f\91\82«\95û\82É\82æ\82Á\82Ä\82Í\95Ê\82Å\82·\82ª)\82Ì\82Å\81A<strong>TSsParser\82Ì\89ð\90Í\82Í\81A\81u\89½\82© 
-phase inverse 22.00\81v\88È\8d~\8cÝ\8a·\81A\82Æ\82¢\82¤\82±\82Æ\82É\82È\82è\82Ü\82·\81B</strong>Phase40.01\88È\91O\91Î\89\9e\82ð\8e\8b\96ì\82É\93ü\82ê\82½\83v\83\8d\83O\83\89\83\80\8dì\90¬\82Å\83Z\83L\83\85\83\8a\83e\83B\82É\8dl\97\82µ\82½\82¢\8fê\8d\87\81A\8fã\82É\8b\93\82°\82½\96â\91è\93_\82É\91Î\82µ\82Ä\8e©\97Í\82Å\91Î\89\9e\82µ\82Ä\82­\82¾\82³\82¢\81B</p>
-<p>TSsParser\82Í\93Æ\8e©SSTP\83T\81[\83o\8dì\90¬\95â\8f\95\82à\8e\8b\96ì\82É\82¢\82ê\82½\83R\83\93\83|\81[\83l\83\93\83g\82Å\82·\82Ì\82Å\81A\8fã\8bL\82Ì\96â\91è\82É\91Î\82µ\82Ä\91Î\89\9e\82·\82é\97\\92è\82Í\82 \82è\82Ü\82¹\82ñ\81B</p>
-
-</body>
-
-</html>