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

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

?? delexpert.pas

?? 適用于 Delphi 2-7 的Delphi控件
?? PAS
字號:
{|----------------------------------------------------------------------
 | Unit:        DelExpert
 |
 | Author:      Egbert van Nes
 |
 | Description: The main form of DelForExp
 |
 | Copyright (c) 2000  Egbert van Nes
 |   All rights reserved
 |   Disclaimer and licence notes: see license.txt
 |
 |----------------------------------------------------------------------
}
unit DelExpert;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
 Buttons, ExtCtrls, Delfor1, {$IFDEF CS_TRACE}CodeSiteLogging, {$ENDIF}ToolsAPI {,DesignWindows};
type
 TDelForEx9DelExpertDlg = class(TForm)  //TForm
  Label1: TLabel;
  Label2: TLabel;
  CurrentBtn: TButton;
  WholeProjBtn: TButton;
  OptionsButton: TButton;
  CancelBtn: TButton;
  HelpBtn: TButton;
  AllButton: TButton;
  Label3: TLabel;
  Label4: TLabel;
  procedure CancelBtnClick(Sender: TObject);
  procedure CurrentBtnClick(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  procedure OptionsButtonClick(Sender: TObject);
  procedure WholeProjBtnClick(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure AllButtonClick(Sender: TObject);
  procedure HelpBtnClick(Sender: TObject);
  procedure FormShow(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
  procedure Label4Click(Sender: TObject);
 private
  { Private declarations }
  procedure FormatterProgress(Sender: TObject; Progress: Integer);
  procedure CapFileNameEditChange(Sender: TObject);
 public
  HelpFile: string;
  CfgFile: string;
  procedure DoFormatFile(AFileName: string);
  { Public declarations }
 end;
 
var
 DelForEx9DelExpertDlg: TDelForEx9DelExpertDlg = nil;
 Formatter: TPascalParser = nil;
 
implementation
uses DelForExpert, DelForTypes, MyIDEStream, Progr, OptDlg, {Winfunc,} Dialogs,
 {FileFunc,}
   {Setup1,}ShellAPI;
{$R *.DFM}

function IsReadonlyFile(const FileName: string): Boolean;
var
 Attributes: Integer;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( 'IsReadonlyFile' );{$ENDIF}
 Attributes := FileGetAttr(FileName);
 Result := ((Attributes and faReadOnly) > 0);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( 'IsReadonlyFile' );{$ENDIF}
end;

function StrInsert(Str1, Str2: PChar; I: Integer): PChar;
var
 LenStr2: Integer;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( 'StrInsert' );{$ENDIF}
 if I < 0 then
  I := 0;
 LenStr2 := StrLen(Str2);
 StrMove(Str1 + I + LenStr2, Str1 + I, Integer(StrLen(Str1)) - I + 1);
 StrMove(Str1 + I, Str2, LenStr2);
 StrInsert := Str1;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( 'StrInsert' );{$ENDIF}
end;

function MakeBakFile(Dest, FileName: PChar): PChar;
var
 F: file;
 P: PChar;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( 'MakeBakFile' );{$ENDIF}
 if FileExists(FileName) then
  begin
   MakeBakFile := StrCopy(Dest, FileName);
   P := StrRScan(Dest, '.');
   if P = nil then
    StrCat(Dest, '.~')
   else
    begin
     (StrEnd(P) - 1)^ := #0;
     StrInsert(P + 1, '~', 0);
    end;
   DeleteFile(string(Dest));
   AssignFile(F, FileName);
   {try}
   Rename(F, Dest);
   {except
     on EInOutError do ;
   end;}
  end
 else
  begin
   Dest[0] := #0;
   MakeBakFile := Dest;
  end;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( 'MakeBakFile' );{$ENDIF}
end;

function FormatFile(Param: Pointer; const FileName, UnitName,
 FormName: string): Boolean stdcall;
var
 BakFile: array[0..255] of Char;
 ExtName: string;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( 'FormatFile' );{$ENDIF}
 Result := True;
 ExtName := LowerCase(ExtractFileExt(FileName));
 if ((ExtName = '.pas') {or (ExtName = '.dpr')})
  and (Trim(FileName) <> '') then
  begin
   if IsFileOpen(FileName) then
    DelForEx9DelExpertDlg.DoFormatFile(FileName)
   else if (Param = nil) then
    begin
     if FileExists(FileName) and not
      IsReadonlyFile(FileName) then
      begin
       { IF PARAM<>NIL then only open files}
       if DelForEx9ProgressDlg.Visible then
        begin
         {if file not open then load from file}
         DelForEx9ProgressDlg.SetFileName(FileName);
         Application.ProcessMessages;
         //Formatter.Clear;
         with Formatter do
          begin
           try
            Clear;
            try
             MakeBakFile(BakFile, PChar(FileName));
             LoadFromFile(BakFile);
             if Parse then
              WriteToFile(PChar(FileName));
            except
             on E: EInOutError do
              ShowMessage('I/O Error [' + E.Message + '] with "' +
               FileName
               +
               '"');
            end;
           finally
            Formatter.Clear;
           end;
          end;
        end;
      end
     else
      begin
       ShowMessage('Can not find "' + FileName + '"');
      end;
    end;
  end;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( 'FormatFile' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.CapFileNameEditChange(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'CapFileNameEditChange' );{$ENDIF}
 if (DelForEx9OptionsDlg <> nil) then
  with DelForEx9OptionsDlg do
   SaveFile(CapFileNameEdit.Text);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'CapFileNameEditChange' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.FormatterProgress(Sender: TObject; Progress: Integer);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'FormatterProgress' );{$ENDIF}
 DelForEx9ProgressDlg.ProgressBar1.Position := Progress;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'FormatterProgress' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.CurrentBtnClick(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'CurrentBtnClick' );{$ENDIF}
 DelForEx9ProgressDlg.Show;
 DoFormatFile('');
 DelForEx9ProgressDlg.Hide;
 //Hide;//Hide;
  ModalResult := mrOK;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'CurrentBtnClick' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.DoFormatFile(AFileName: string);
var
 IDEStream: TIDEStream;
 P: PANSIChar;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'DoFormatFile' );{$ENDIF}
 if (DelForEx9ProgressDlg.Visible) then
  begin
   IDEStream := TIDEStream.Create(AFileName);
   try
    if (not IsReadonlyFile(IDEStream.FileName)) and
     (not IsReadonlyBuffer(IDEStream.FileName)) then
     begin
      Formatter.Clear;
      DelForEx9ProgressDlg.SetFileName(IDEStream.FileName);
      Application.ProcessMessages;

      Formatter.LoadFromList(IDEStream.Lines);
      IDEStream.Lines.Clear;
      if Formatter.Parse then
       begin
        P := PANSIChar(Formatter.Text);
        IDEStream.WriteText(P);
      end;
     end
    else
     ShowMessage(ExtractFileName(IDEStream.FileName) +
      ': File or buffer is read only, or not yet saved');
   finally
    Formatter.Clear;
    IDEStream.Free;
   end;
  end;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'DoFormatFile' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.FormCreate(Sender: TObject);
var
 DelForName: string;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'FormCreate' );{$ENDIF}
 DelForName := IDETextExpert.DLLFileName;
 if DelForName <> '' then
  begin
   if Formatter = nil then
    Formatter := TPascalParser.Create(PChar(ExtractFilePath(DelForName)));
   HelpFile := Formatter.RootDir + 'DelFor.hlp';
   CfgFile := Formatter.RootDir + ExtractFileName(DelForName);
   CfgFile := ChangeFileExt(CfgFile, '.cfg');
  end
 else
  begin
   if Formatter = nil then
    Formatter := TPascalParser.Create('');
   HelpFile := 'DelFor.hlp';
   CfgFile := '';
  end;

 Formatter.CfgFile := CfgFile;
 Formatter.Config(True);
 if not Assigned(DelForEx9ProgressDlg) then
  DelForEx9ProgressDlg := TDelForEx9ProgressDlg.Create(nil);
//  Application.CreateForm(TDelForEx9ProgressDlg, DelForEx9ProgressDlg);
 if (Assigned(Formatter)) and (Assigned(DelForEx9ProgressDlg)) then
  Formatter.OnProgress := FormatterProgress;
 if CurrentBtn.Enabled then
  ActiveControl := CurrentBtn
 else
  ActiveControl := OptionsButton;
 Formatter.Deactivate;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'FormCreate' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.OptionsButtonClick(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'OptionsButtonClick' );{$ENDIF}
 if not assigned(DelForEx9OptionsDlg) then
  begin
   DelForEx9OptionsDlg := TDelForEx9OptionsDlg.Create(nil);
//   Application.CreateForm(TDelForEx9OptionsDlg, DelForEx9OptionsDlg);
   DelForEx9OptionsDlg.HelpFile := PChar(HelpFile);
   DelForEx9OptionsDlg.CapFileNameEdit.OnChange := CapFileNameEditChange;
  end;
 DelForEx9OptionsDlg.ShowModal;
 FreeAndNil(DelForEx9OptionsDlg);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'OptionsButtonClick' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.WholeProjBtnClick(Sender: TObject);
var
 j: Integer;
 Dir: string;
 ProjectFiles: TStringList;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'WholeProjBtnClick' );{$ENDIF}
 DelForEx9ProgressDlg.Show;
 Dir := ExtractFileDir(ExpandFileName(GetProjectName));
 if Dir <> '' then
  Chdir(Dir);
 ProjectFiles := TStringList.Create;
 try
  GetProjectFileNames(ProjectFiles);
  for j := 0 to ProjectFiles.Count - 1 do
   FormatFile(nil, ProjectFiles[j], '', '');
 finally
  DelForEx9ProgressDlg.Hide;
  projectFiles.Free;
 end;
 //Hide;
  ModalResult := mrOk;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'WholeProjBtnClick' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.FormClose(Sender: TObject;
 var Action: TCloseAction);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'FormClose' );{$ENDIF}
 try
  if (Assigned(DelForEx9ProgressDlg)) and (DelForEx9ProgressDlg.Showing) then
   DelForEx9ProgressDlg.Hide;
  if assigned(Formatter) then
   begin
    with Formatter do
     begin
      //      try Clear except end;  //This always AV's on close
      if (FillNewWords = fmAddNewWord) then
       SaveCapFile(CapFileName);
      Deactivate;
     end;
   end;
 except
 end;
 FreeAndNil(DelForEx9ProgressDlg);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'FormClose' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.AllButtonClick(Sender: TObject);
var
 OpenFiles: TStringList;
 k: Integer;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'AllButtonClick' );{$ENDIF}
 OpenFiles := TStringList.Create;
 try
  DelForEx9ProgressDlg.Show;
  GetOpenFileList(OpenFiles);
  for k := 0 to OpenFiles.Count - 1 do
   FormatFile(nil, OpenFiles[k], '', '')

 finally
  DelForEx9ProgressDlg.Hide;
  OpenFiles.Free;
 end;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'AllButtonClick' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.HelpBtnClick(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'HelpBtnClick' );{$ENDIF}
 WinHelp(0, PChar(HelpFile), Help_Contents, 0);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'HelpBtnClick' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.FormShow(Sender: TObject);
var
 ProjectOpened: Boolean;
 S: array[0..260] of Char;
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'FormShow' );{$ENDIF}
 Formatter.Activate;
 with Formatter do
  if CapFileName <> nil then
   begin
    SaveFile(CapFileName);
    CapFileName := StrCopy(S, CapFileName);
   end;
 {if file is changed reread}
 ProjectOpened := GetProjectName <> '';
 AllButton.Enabled := ProjectOpened;
 WholeProjBtn.Enabled := ProjectOpened;
 CurrentBtn.Enabled := GetCurrentFile <> '';
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'FormShow' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.FormDestroy(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'FormDestroy' );{$ENDIF}
 try
  Formatter.Config(False);
  Formatter.Free;
  Formatter := nil;
 except
 end;
 try
  if Assigned(DelForEx9ProgressDlg) then
   FreeAndNil(DelForEx9ProgressDlg);
 except
 end;

  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'FormDestroy' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.Label4Click(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'Label4Click' );{$ENDIF}
 {opens default explorer with the URL of the homepage}
 ShellExecute(GetDesktopWindow, 'open', 'http://www.dow.wau.nl/aew/delforexp.html',
  nil, nil, SW_SHOW);
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'Label4Click' );{$ENDIF}
end;

procedure TDelForEx9DelExpertDlg.CancelBtnClick(Sender: TObject);
begin
  {$IFDEF CS_TRACE}CodeSite.EnterMethod( Self, 'CancelBtnClick' );{$ENDIF}
 //Hide;
 ModalResult := mrCancel;
  {$IFDEF CS_TRACE}CodeSite.ExitMethod( Self, 'CancelBtnClick' );{$ENDIF}
end;

end.


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线无精精品入口| 日韩精品一区二区三区在线| 欧美性受xxxx黑人xyx性爽| 自拍av一区二区三区| 亚洲综合视频在线| 丁香激情综合五月| 91精品国产一区二区三区| 亚洲欧洲国产日韩| 黑人精品欧美一区二区蜜桃| 欧美在线视频你懂得| 欧美国产丝袜视频| 热久久国产精品| 在线观看免费视频综合| 国产精品三级在线观看| 麻豆精品视频在线观看免费| 欧美亚洲动漫另类| 亚洲欧洲综合另类| 高清av一区二区| 久久久久九九视频| 久久99最新地址| 91精品国产欧美日韩| 亚洲一区二区三区四区在线观看 | 麻豆国产一区二区| 日本韩国一区二区三区视频| 国产日产欧美一区二区三区| 美腿丝袜亚洲色图| 91精品婷婷国产综合久久 | 91香蕉视频污| 国产精品萝li| 不卡视频免费播放| 中文字幕一区免费在线观看| 国产成人在线视频播放| 亚洲成人手机在线| 欧美美女一区二区在线观看| 亚洲精品国产无天堂网2021| 99久久99久久精品免费观看| 国产精品久久夜| 暴力调教一区二区三区| 亚洲国产精品激情在线观看| 国产成人超碰人人澡人人澡| 久久久精品日韩欧美| 国产99久久久国产精品| 国产女人18毛片水真多成人如厕| 国模一区二区三区白浆| 久久精品亚洲乱码伦伦中文 | 欧美高清dvd| 男女性色大片免费观看一区二区 | 99久久婷婷国产综合精品| 综合在线观看色| 欧美一a一片一级一片| 五月天婷婷综合| 欧美一区二区三区喷汁尤物| 美腿丝袜亚洲一区| 国产日韩欧美综合一区| 99这里只有久久精品视频| 亚洲摸摸操操av| 欧美日韩国产经典色站一区二区三区| 午夜精品影院在线观看| 欧美大片顶级少妇| 成人黄色一级视频| 五月婷婷另类国产| 久久久影视传媒| 91福利视频在线| 久久99国产精品尤物| 国产精品你懂的在线欣赏| 在线亚洲精品福利网址导航| 午夜精品在线视频一区| 久久免费电影网| 色婷婷激情综合| 精品一区二区三区在线播放视频| 国产精品丝袜久久久久久app| 日本韩国一区二区三区| 极品美女销魂一区二区三区 | 精品国产一区二区三区久久久蜜月| 国产精品911| 亚洲国产欧美另类丝袜| 久久久久久免费网| 在线观看成人免费视频| 狠狠色综合日日| 亚洲图片有声小说| 欧美国产成人在线| 欧美精品久久久久久久久老牛影院| 精品中文字幕一区二区| 亚洲激情图片小说视频| 国产日产欧美一区二区三区| 欧美三片在线视频观看| 欧美日韩国产影片| 国产成人av一区二区三区在线| 亚洲成人免费视| 国产精品毛片久久久久久久| 欧美一区二区视频在线观看| 99久久99久久综合| 国产盗摄视频一区二区三区| 视频一区二区中文字幕| 亚洲日本va午夜在线影院| 久久午夜国产精品| 91精品国产全国免费观看| 色乱码一区二区三区88| 成人毛片在线观看| 国产一区二区三区在线看麻豆| 亚洲超碰97人人做人人爱| 中文字幕一区二区三区av| 久久亚洲二区三区| 91精品欧美综合在线观看最新 | 欧美国产禁国产网站cc| 欧美不卡一区二区三区四区| 欧美日韩免费观看一区三区| 91丨九色丨黑人外教| 9l国产精品久久久久麻豆| 国产河南妇女毛片精品久久久| 人人精品人人爱| 午夜视频在线观看一区二区 | 欧美一区二区三区在线电影| 91国产成人在线| 色欧美日韩亚洲| 在线视频一区二区三区| 欧美亚洲高清一区| 欧美丝袜丝nylons| 欧美日韩精品一区视频| 欧美色网一区二区| 欧美精品自拍偷拍动漫精品| 欧美揉bbbbb揉bbbbb| 欧美日韩久久久| 在线电影一区二区三区| 欧美一区二区观看视频| 日韩欧美一区二区三区在线| 日韩视频免费观看高清完整版在线观看| 欧美美女视频在线观看| 日韩欧美不卡一区| 精品国产乱码久久久久久影片| 久久久久久**毛片大全| 国产精品电影一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 欧美日本一区二区在线观看| 91.麻豆视频| 精品精品国产高清a毛片牛牛| 欧美v国产在线一区二区三区| 亚洲精品一区二区三区四区高清| 久久精品网站免费观看| 亚洲视频一二三区| 午夜伦理一区二区| 激情五月婷婷综合| 99精品桃花视频在线观看| 欧美午夜免费电影| 精品久久久久av影院| 1024成人网| 天天做天天摸天天爽国产一区 | 中文幕一区二区三区久久蜜桃| 中文字幕第一区二区| 一区二区三区在线观看动漫| 爽好多水快深点欧美视频| 久久97超碰色| 91亚洲精品久久久蜜桃网站| 欧美日韩美少妇| 久久婷婷国产综合国色天香| 亚洲免费观看高清完整| 麻豆成人av在线| 99久久伊人精品| 日韩欧美一级二级| 亚洲乱码国产乱码精品精小说| 免费观看日韩电影| 91老司机福利 在线| 精品精品国产高清a毛片牛牛 | 99久久精品免费看国产| 欧美精品乱码久久久久久 | 亚洲欧洲日韩女同| 美日韩一区二区| 91视频免费看| 久久久亚洲精品石原莉奈 | 看国产成人h片视频| 一本大道av一区二区在线播放| 精品三级在线观看| 亚洲国产日日夜夜| 国产大片一区二区| 欧美一区二区三区四区高清| 亚洲老妇xxxxxx| 国产成人精品一区二| 日韩一区二区电影在线| 亚洲精品国产精华液| 国产精品一区二区无线| 日韩美女在线视频| 亚洲综合色噜噜狠狠| 95精品视频在线| 久久精品网站免费观看| 黑人巨大精品欧美黑白配亚洲| 717成人午夜免费福利电影| 亚洲另类一区二区| www.在线欧美| 国产精品久久看| 国产麻豆精品一区二区| 日韩三级免费观看| 丝袜美腿亚洲一区二区图片| 色狠狠综合天天综合综合| 亚洲特黄一级片| 99精品欧美一区二区三区综合在线| 国产午夜精品久久| 高清在线不卡av| 国产精品色一区二区三区| 国产精品亚洲专一区二区三区| 欧美精品一区二区三|