随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253


学 JavaScript 第一个头痛的问题就是 IDE, 微软的脚本编辑器还不错, 但好像不能独立安装; 还是自己做一个吧.

下载最简单的 JavaScript 测试工具. 此小工具可能会随时修改(最新修改时间: 2009-2-25 22:07), 下面是目前的效果图及源代码:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, OleCtrls, SHDocVw, Menus;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Memo1: TMemo;
    Splitter1: TSplitter;
    WebBrowser1: TWebBrowser;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ActiveX;

procedure TForm1.FormCreate(Sender: TObject);
var
  path: string;
begin
  Text := 'JavaScriptTest';
  Position := poDesktopCenter;
  WebBrowser1.Navigate('about:blank');
  Memo1.ScrollBars := ssBoth;
  with Memo1.Font do begin
    Name := 'Verdana';
    Size := 10;
    Color := $000080;
  end;
  path := ChangeFileExt(ParamStr(0),'.dat');
  if FileExists(path) then
    ReadComponentResFile(path, Memo1)
  else with Memo1.Lines do begin
    Clear;
    Add('<html>');
    Add('<head>');
    Add('<title></title>');
    Add('<script type="text/javascript">');
    Add('alert("Hi");');
    Add('</script>');
    Add('</head>');
    Add('<body>');
    Add('JavaScript Test<hr>');
    Add('Edit -> F5');
    Add('</body>');
    Add('</html>');
    Self.Text := '编辑代码后用 F5 刷新显示';
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WriteComponentResFile(ChangeFileExt(ParamStr(0),'.dat'), Memo1);
end;

procedure TForm1.N1Click(Sender: TObject);
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  Memo1.Lines.SaveToStream(ms);
  ms.Position := 0;
  (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
  ms.Free;
end;

end.


窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  ActiveControl = Memo1
  Caption = 'Form1'
  ClientHeight = 303
  ClientWidth = 531
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnClose = FormClose
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Splitter1: TSplitter
    Left = 289
    Top = 0
    Height = 303
    MinSize = 1
    ExplicitLeft = 219
    ExplicitHeight = 196
  end
  object Memo1: TMemo
    Left = 0
    Top = 0
    Width = 289
    Height = 303
    Align = alLeft
    Lines.Strings = (
      'Memo1')
    PopupMenu = PopupMenu1
    TabOrder = 0
    ExplicitHeight = 340
  end
  object Panel1: TPanel
    Left = 292
    Top = 0
    Width = 239
    Height = 303
    Align = alClient
    BevelOuter = bvNone
    Caption = 'Panel1'
    TabOrder = 1
    ExplicitLeft = 244
    ExplicitWidth = 195
    ExplicitHeight = 231
    object WebBrowser1: TWebBrowser
      Left = 0
      Top = 0
      Width = 239
      Height = 303
      Align = alClient
      TabOrder = 0
      ExplicitLeft = 88
      ExplicitTop = 88
      ExplicitWidth = 300
      ExplicitHeight = 150
      ControlData = {
        4C000000B4180000511F00000000000000000000000000000000000000000000
        000000004C000000000000000000000001000000E0D057007335CF11AE690800
        2B2E126208000000000000004C0000000114020000000000C000000000000046
        8000000000000000000000000000000000000000000000000000000000000000
        00000000000000000100000000000000000000000000000000000000}
    end
  end
  object PopupMenu1: TPopupMenu
    AutoHotkeys = maManual
    Left = 184
    Top = 96
    object N1: TMenuItem
      Caption = #21047#26032
      ShortCut = 116
      OnClick = N1Click
    end
  end
end


posted on 2009-02-24 13:25  万一  阅读(...)  评论(...编辑  收藏