亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? EmbeddedWB_D5-D2009_Version_14.67.8 最新版本,開發WEB瀏覽器.
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    begin
      if fXmlParser.CurPartType = ptXmlProlog then
      begin
        Result := true;
        exit;
      end;
    end;
  end;

  function GetXmlTag(const TagName: string): boolean;
  begin
    Result := false;
    while fXmlParser.Scan() do
    begin
      if ((fXmlParser.CurPartType = ptStartTag)
        or (fXmlParser.CurPartType = ptEmptyTag))
        and (fXmlParser.CurName = TagName) then
      begin
        Result := true;
        Exit;
      end;
    end;
  end;

  function GetXmlData(): boolean;
  begin
    Result := false;
    while fXmlParser.Scan() do
    begin
      if ((fXmlParser.CurPartType = ptContent) or (fXmlParser.CurPartType = ptCData)) then
      begin
        Result := true;
        exit;
      end
    end;
  end;

begin
  OD := TOpenDialog.Create(Self);
  with OD do
  begin
    Title := 'Load XML file';
    Filter := 'XML files (*.xml)|*.XML';
    DefaultExt := 'xml';
  end;
  if OD.Execute then
  begin
    edtPath.Text := OD.Filename;
    Caption := 'XML creator : ' + OD.Filename;
    UpdateComponents();
    ParseInit(OD.Filename);
    try
      if not GetXmlHead() then exit;
      if not GetXmlTag('Updates') then Exit;
      if not GetXmlTag('Details') then Exit;
      if not GetXmlTag('ApplicationName') then Exit;
      if not GetXmlData() then Exit;
      edtName.Text := fXmlParser.CurContent;
      if not GetXmlTag('Author') then Exit;
      if not GetXmlData() then Exit;
      edtAuthor.Text := fXmlParser.CurContent;
      if not GetXmlTag('Company') then Exit;
      if not GetXmlData() then Exit;
      edtCompany.Text := fXmlParser.CurContent;
      if not GetXmlTag('Version') then Exit;
      if not GetXmlData() then Exit;
      edtVersion.Text := fXmlParser.CurContent;
      if not GetXmlTag('ChangeLog') then Exit;
      while GetXmlTag('Info') do
      begin
        for i := 0 to fXmlParser.CurAttr.Count - 1 do
        begin
          Node := TNvpNode(fXmlParser.CurAttr[i]);
          if Node.Name = 'Text' then
            memInfo.Lines.Add(Node.Value)
        end;
      end;
      fXmlParser.StartScan;
      i := 0;
      if not GetXmlTag('Instructions') then Exit;
      while GetXmlTag('File') do
      begin
        if (FXmlParser.CurAttr.Count > 0) then
        begin
          inc(i);
          SetAttr('Name', Container);
          stgrInst.Cells[1, i] := Container;
          SetAttr('Destination', Container);
          stgrInst.Cells[2, i] := Container;
          SetAttr('Terminate', Container);
          stgrInst.Cells[3, i] := Container;
        end;
      end;
    finally
      UpdateControls(OD.FileName);
      OD.Free;
    end;
  end;
end;

procedure Tform1.ParseInit(XmlFile: string);
begin
  fXmlParser := TXmlParser.Create;
  with fXmlParser do
  begin
    LoadFromFile(PChar(XmlFile));
    Normalize := True;
    StartScan;
  end;
end;

procedure Tform1.btnCreateXMLClick(Sender: TObject);
var
  SD: TSaveDialog;
  i: integer;
  MS: TMemoryStream;
  st: string;
  procedure WriteString(const str: string);
  begin
    if str <> '' then
      MS.Write(str[1], Length(str));
  end;
begin
  edtPath.Text := '';
  MS := TMemoryStream.Create();
  try
    WriteString('<?xml version="1.0" encoding="windows-1252"?>'#13#10);
    WriteString('<Updates>'#13#10);
    WriteString('   <Details>'#13#10);
    WriteString(#9'<ApplicationName>' + edtName.Text + '</ApplicationName>'#13#10);
    WriteString(#9'<Author>' + edtAuthor.Text + '</Author>'#13#10);
    WriteString(#9'<Company>' + edtCompany.Text + '</Company>'#13#10);
    WriteString(#9'<Version>' + edtVersion.Text + '</Version>'#13#10);
    WriteString('   </Details>'#13#10);
    WriteString('   <ChangeLog>'#13#10);
    for i := 1 to memInfo.Lines.Count - 1 do
    begin
      if cbNumerator.Checked then
        st := IntToStr(i) + '. ' + memInfo.Lines.Strings[i] + ''
      else
        st := memInfo.Lines.Strings[i] + '';
      WriteString(#9 + '<Info Text=" ' + st + '"/>' + #13#10);
    end;
    WriteString('   </ChangeLog>'#13#10);
    WriteString('   <Instructions>'#13#10);
    for i := 1 to stgrInst.RowCount - 1 do
    begin
      if stgrInst.Cells[1, 1] <> '' then
      begin
        if stgrInst.Cells[1, i] <> '' then
        begin
          if ((stgrInst.Cells[3, i] = 'yes') or (stgrInst.Cells[3, i] = 'no')) then
          begin
            WriteString(#9'<File Name=" ' + stgrInst.Cells[1, i] + '" ' +
              'Destination="' + stgrInst.Cells[2, i] + '" ' +
              'Terminate="' + stgrInst.Cells[3, i] + '"' + '/>'#13#10)
          end
          else
          begin
            MessageDlg('The Terminame field must contain "yes" or "no" only.'
              , mtError, [mbCancel], 0);
          end;
        end;
      end
      else
      begin
        MessageDlg('You must enter at least one file to update :).'
          , mtError, [mbCancel], 0);
        Exit;
      end;
    end;
    WriteString('   </Instructions>'#13#10);
    WriteString('</Updates>'#13#10);

    SD := TSaveDialog.Create(Self);
    with SD do
    begin
      Title := 'Save XML file';
      DefaultExt := 'xml';
      Filter := 'XML files (*.xml)|*.XML';
      FileName := 'Updates.xml';
      if cbOverWrite.Checked then
        Options := [ofHideReadOnly, ofEnableSizing, ofOverWritePrompt];
    end;
    if SD.Execute then
    begin
      ms.SaveToFile(SD.FileName);
      UpdateControls(SD.FileName);
      UpdateComponents();
      ShowMessage('You have ceated the proper XML file.' + #10 + #13 +
        'The file is stored in: ' + #10 + #13 + edtPath.Text + #10 + #13 +
        'Now, upload the file to the web site remote folder using ftp.');
    end;
  finally
    EmbeddedWB1.LoadFromStream(MS);
    ms.Free();
  end;
end;

procedure Tform1.SetAttr(AttrName: string; var st: string);
var
  Node: TNvpNode;
begin
  Node := FXmlParser.CurAttr.Node(AttrName);
  if Node <> nil then
    st := Node.Value;
end;

procedure Tform1.XmlScanner1CData(Sender: TObject; Content: string);
begin
  Content := StringReplace(Content, #13, ' ', [rfReplaceAll]);
  Content := StringReplace(Content, #10, '', [rfReplaceAll]);
  TreeView.Items.AddChild(CurNode, Content);
end;

procedure Tform1.XmlScanner1Comment(Sender: TObject; Comment: string);
begin
  TreeView.Items.AddChild(CurNode, 'Comment');
end;

procedure Tform1.XmlScanner1Content(Sender: TObject; Content: string);
begin
  Content := StringReplace(Content, #13, ' ', [rfReplaceAll]);
  Content := StringReplace(Content, #10, '', [rfReplaceAll]);
  TreeView.Items.AddChild(CurNode, Content);
end;

procedure Tform1.XmlScanner1DtdRead(Sender: TObject; RootElementName: string);
begin
  TreeView.Items.AddChild(CurNode, 'DTD: ' + RootElementName);
end;

procedure Tform1.XmlScanner1EmptyTag(Sender: TObject; TagName: string;
  Attributes: TAttrList);
var
  i: integer;
begin
  CurNode := TreeView.Items.AddChild(CurNode, 'Element "' + TagName + '" (Empty)');
  for i := 0 to Attributes.Count - 1 do
    TreeView.Items.AddChild(CurNode, '  * Attribute ' + Attributes.Name(i) + '=' + Attributes.Value(i));
  CurNode := CurNode.Parent;
end;

procedure Tform1.XmlScanner1EndTag(Sender: TObject; TagName: string);
begin
  if CurNode <> nil then
    CurNode := CurNode.Parent;
end;

procedure Tform1.XmlScanner1PI(Sender: TObject; Target, Content: string;
  Attributes: TAttrList);
begin
  TreeView.Items.AddChild(CurNode, 'Processing Instruction: ' + Content);
end;

procedure Tform1.XmlScanner1StartTag(Sender: TObject; TagName: string;
  Attributes: TAttrList);
var
  i: integer;
begin
  CurNode := TreeView.Items.AddChild(CurNode, 'Element "' + TagName + '"');
  for i := 0 to Attributes.Count - 1 do
    TreeView.Items.AddChild(CurNode, '  * Attribute ' + Attributes.Name(i) + '=' + Attributes.Value(i));
end;

procedure TForm1.XmlScanner1XmlProlog(Sender: TObject; XmlVersion,
  Encoding: string; Standalone: Boolean);
begin
  TreeView.Items.AddChild(CurNode, 'XML Prolog: Version=' + XmlVersion + ' Encoding=' + Encoding);
end;

procedure Tform1.Button1Click(Sender: TObject);
begin
  TreeView.FullExpand;
end;

procedure Tform1.Button2Click(Sender: TObject);
begin
  TreeView.FullCollapse;
end;

procedure Tform1.FormResize(Sender: TObject);
begin
  with stgrInst do
  begin
    ColWidths[1] := Round(100 * Self.Width / 580);
    ColWidths[2] := Round(335 * Self.Width / 580);
  end;
end;

procedure Tform1.SpeedButton3Click(Sender: TObject);
begin
  edtName.Text := '';
  edtVersion.Text := '';
  edtCompany.Text := '';
  edtAuthor.Text := '';
  HideControls();
end;

procedure Tform1.SpeedButton1Click(Sender: TObject);
begin
  memInfo.Lines.Clear;
  HideControls();
end;

procedure Tform1.SpeedButton2Click(Sender: TObject);
var
  i, j: integer;
begin
  for i := 1 to stgrInst.RowCount - 1 do
    for j := 1 to stgrInst.ColCount - 1 do
      stgrInst.Cells[j, i] := '';
  HideControls();
end;



end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情av在线| 国产精品久久久久久久久免费桃花| 欧美在线你懂得| 日韩精品中文字幕一区 | 在线播放91灌醉迷j高跟美女| 欧美v亚洲v综合ⅴ国产v| 亚洲欧美一区二区三区久本道91| 久久国内精品视频| 色欧美乱欧美15图片| 国产午夜亚洲精品羞羞网站| 午夜国产不卡在线观看视频| 91丝袜美腿高跟国产极品老师 | 欧美激情在线一区二区| 午夜欧美大尺度福利影院在线看| 国产成a人亚洲| 久久综合色婷婷| 免费看黄色91| 制服丝袜亚洲网站| 午夜精品视频一区| 91麻豆精品在线观看| 国产精品久久影院| 成人一二三区视频| 久久九九久久九九| 国产精品一区二区在线播放| 日韩一卡二卡三卡| 青青草原综合久久大伊人精品 | 欧美另类变人与禽xxxxx| 亚洲色图在线播放| 99久久久无码国产精品| 中文一区二区完整视频在线观看| 精品一区二区在线视频| 日韩精品一区二区三区三区免费| 天堂久久一区二区三区| 欧美午夜精品一区二区三区 | 九色综合狠狠综合久久| 日韩三级伦理片妻子的秘密按摩| 午夜视频一区在线观看| 在线电影一区二区三区| 午夜欧美一区二区三区在线播放| 欧美另类一区二区三区| 首页国产丝袜综合| 精品人在线二区三区| 久久国产人妖系列| 久久久久久久久99精品| 成人国产精品免费观看| 亚洲免费视频成人| 欧美精选一区二区| 极品销魂美女一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 国产91丝袜在线观看| 国产女主播视频一区二区| av一区二区久久| 亚洲一区二区三区四区在线观看 | 国产91在线观看丝袜| 中文字幕永久在线不卡| 一本大道久久a久久精品综合| 亚洲欧美日韩久久精品| 欧美日韩国产大片| 国产一区二区女| 中文字幕不卡在线观看| 在线看日本不卡| 麻豆国产欧美一区二区三区| 国产亚洲一二三区| 欧美性色欧美a在线播放| 视频一区在线视频| 国产偷国产偷精品高清尤物| 99精品在线观看视频| 婷婷中文字幕综合| 久久久久久影视| 欧美性色综合网| 国产91精品久久久久久久网曝门 | 国产精品久久久久影视| 精品视频999| 国产九色sp调教91| 亚洲一区二区在线播放相泽| 欧美大片在线观看一区| 91视频你懂的| 国产精品自产自拍| 午夜精品国产更新| 国产精品久久久久影院老司| 91精品福利在线一区二区三区 | 欧美日韩国产高清一区二区 | 中文字幕av一区 二区| 欧美精品v国产精品v日韩精品 | 国模一区二区三区白浆| 中文字幕在线观看一区| 日韩欧美国产小视频| 97久久精品人人做人人爽50路| 国产精品系列在线观看| 国产精品毛片无遮挡高清| 欧美日韩一区二区三区不卡| 国产成人精品亚洲日本在线桃色| 亚洲线精品一区二区三区八戒| 久久精品这里都是精品| 亚洲视频在线一区二区| 日韩女优av电影| 欧美日韩美女一区二区| 99re66热这里只有精品3直播 | 日本亚洲三级在线| 亚洲精品少妇30p| 中文字幕av一区二区三区高 | 国产一区二区福利视频| 婷婷中文字幕一区三区| 夜夜亚洲天天久久| 国产精品视频yy9299一区| 精品少妇一区二区| 日韩午夜在线播放| 日韩一区二区在线观看| 91麻豆精品91久久久久久清纯| 欧美在线影院一区二区| 91国产免费看| 91久久线看在观草草青青 | 国产电影一区在线| 狠狠v欧美v日韩v亚洲ⅴ| 全国精品久久少妇| 男女性色大片免费观看一区二区| 亚洲成国产人片在线观看| 一区二区三区欧美日韩| 亚洲男人天堂一区| 亚洲综合激情网| 亚洲第一精品在线| 亚洲1区2区3区4区| 日本最新不卡在线| 久久国产尿小便嘘嘘尿| 国内一区二区视频| 高清日韩电视剧大全免费| 国产91精品在线观看| 99综合影院在线| 91在线观看污| 日本韩国欧美一区| 欧美精品久久天天躁| 91精品国产色综合久久不卡蜜臀| 欧美日韩久久一区| 日韩欧美一级二级| 久久嫩草精品久久久精品 | 久久夜色精品国产欧美乱极品| 欧美不卡一区二区三区| 久久免费偷拍视频| 久久久久9999亚洲精品| 视频一区视频二区中文| 亚洲国产毛片aaaaa无费看| 亚洲超丰满肉感bbw| 日韩精品色哟哟| 狠狠网亚洲精品| 不卡免费追剧大全电视剧网站| av在线这里只有精品| 91久久国产最好的精华液| 欧美欧美欧美欧美首页| 欧美α欧美αv大片| 国产精品初高中害羞小美女文| 亚洲激情图片一区| 六月丁香婷婷久久| fc2成人免费人成在线观看播放 | 亚洲成人先锋电影| 亚洲女爱视频在线| 精品一区二区免费看| 午夜精品影院在线观看| 蜜臀a∨国产成人精品| 成人免费看片app下载| 在线观看亚洲精品视频| 久久综合久久综合久久| 奇米精品一区二区三区四区 | 国产精品系列在线| 亚洲成人综合网站| 国产成人免费视| 欧美精品欧美精品系列| 国产免费成人在线视频| 视频一区欧美日韩| 一本大道久久a久久精二百 | 日韩精品一区在线观看| 中文字幕一区av| 国产一区二区看久久| 在线一区二区观看| 久久久久久久久久久黄色| 亚洲成人久久影院| 国产·精品毛片| 精品久久久网站| 亚洲综合激情小说| 国产美女主播视频一区| 亚洲另类中文字| 国产综合色视频| 色婷婷久久久亚洲一区二区三区| 日韩精品专区在线| 蜜臀99久久精品久久久久久软件| 欧美这里有精品| 一区二区三区国产豹纹内裤在线| 国产999精品久久| 久久久久久久综合色一本| 日本va欧美va瓶| 日韩一二三区不卡| 男女男精品视频网| 欧美日韩高清在线| 午夜精品福利一区二区三区av | 欧美变态凌虐bdsm| 亚洲国产日韩精品| 欧美视频三区在线播放| 天天亚洲美女在线视频| 国产欧美日本一区视频| 久久久精品人体av艺术| 久久精品国产99|