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

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

?? main.pas

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

interface

uses
 SysUtils, Windows, Messages, Classes, Graphics, Controls,
 Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, Delfor1;

type
 TMainForm = class(TForm)
  MainMenu: TMainMenu;
  FileOpenItem: TMenuItem;
  FileSaveItem: TMenuItem;
  FileSaveAsItem: TMenuItem;
  FileExitItem: TMenuItem;
  WindowTileItem: TMenuItem;
  WindowCascadeItem: TMenuItem;
  WindowArrangeItem: TMenuItem;
  HelpContentsItem: TMenuItem;
  HelpAboutItem: TMenuItem;
  StatusLine: TStatusBar;
  OpenDialog: TOpenDialog;
  SaveDialog: TSaveDialog;
  SpeedBar: TPanel;
  ExitButton: TSpeedButton;
  FileOpenButton: TSpeedButton;
  SaveButton: TSpeedButton;
  SaveAllButton: TSpeedButton;
  HelpButton: TSpeedButton;
  AboutButton: TSpeedButton;
  CloseAll1: TMenuItem;
  Format1: TMenuItem;
  FormatAllItem: TMenuItem;
  FormatCurrentItem: TMenuItem;
  OptionsItem: TMenuItem;
  FormatAllButton: TSpeedButton;
  FormatCurrentButton: TSpeedButton;
  SaveAllItem: TMenuItem;
  Edit1: TMenuItem;
  EditUndoItem: TMenuItem;
  N1: TMenuItem;
  EditCutItem: TMenuItem;
  EditPasteItem: TMenuItem;
  EditCopyItem: TMenuItem;
  FindDialog1: TFindDialog;
  N6: TMenuItem;
  WindowMinimizeAll: TMenuItem;
  EditRedoItem: TMenuItem; { &About... }
  procedure FormCreate(Sender: TObject);
  procedure ShowHint(Sender: TObject);
  procedure FileOpen(Sender: TObject);
  procedure FileSave(Sender: TObject);
  procedure FileSaveAs(Sender: TObject);
  procedure FileExit(Sender: TObject);
  procedure WindowTile(Sender: TObject);
  procedure WindowCascade(Sender: TObject);
  procedure WindowArrange(Sender: TObject);
  procedure HelpContents(Sender: TObject);
  procedure HelpAbout(Sender: TObject);
  procedure CloseAll1Click(Sender: TObject);
  procedure FormatAllItemClick(Sender: TObject);
  procedure FormatCurrentItemClick(Sender: TObject);
  procedure FormShow(Sender: TObject);
  procedure SaveAllItemClick(Sender: TObject);
  procedure EditUndoItemClick(Sender: TObject);
  procedure EditCutItemClick(Sender: TObject);
  procedure EditCopyItemClick(Sender: TObject);
  procedure EditPasteItemClick(Sender: TObject);
  procedure EditFindItemClick(Sender: TObject);
  procedure FindDialog1Find(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
  procedure OptionsItemClick(Sender: TObject);
  procedure FileReloadAllItemClick(Sender: TObject);
  procedure WindowMinimizeAllClick(Sender: TObject);
  procedure EditRedoItemClick(Sender: TObject);
  procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 public
  Formatter: TPascalParser;
  ViewForm: TForm;
  procedure UpdateMenu;
  function GetActiveForm: TForm;
  procedure PerformFileOpen(AFileName: string);
  procedure Config(DoRead: Boolean);
 end;
 
var
 MainForm: TMainForm;
 
implementation
uses ViewWnd, Progr, About, OptDlg, Clipbrd;

{$R *.DFM}

procedure TMainForm.UpdateMenu;
var
 Child: TForm;
 I: Integer;
 P1, P2: TPoint;
 HasKids, HasChanged, FormattedAll: Boolean;
 CurrentFormatted, CurrentModified, HasSelected: Boolean;
begin
 HasKids := MDIChildCount > 0;
 HasChanged := False;
 FormattedAll := HasKids;
 for I := 0 to MDIChildCount - 1 do
  begin
   Child := MDIChildren[I];
   if Child is TViewForm then
    with TViewForm(Child), Memo1 do
     begin
      if AllFormatted then
       HasChanged := True
      else
       begin
        if Modified then
         HasChanged := True;
        FormattedAll := False;
       end;
     end;
  end;
 Child := GetActiveForm;
 CurrentFormatted := (Child <> nil) and (TViewForm(Child).CurrentFormatted);
 if Child <> nil then
  begin
   P1 := TViewForm(Child).Memo1.BlockBegin;
   P2 := TViewForm(Child).Memo1.BlockEnd;
  end;
 HasSelected := (Child <> nil) and not CompareMem(@P1, @P2, SizeOf(TPoint));
 CurrentModified := (Child <> nil) and (TViewForm(Child).Memo1.Modified);
 FileSaveItem.Enabled := HasKids and CurrentModified or CurrentFormatted;
 FileSaveAsItem.Enabled := HasKids;
 WindowTileItem.Enabled := HasKids;
 WindowCascadeItem.Enabled := HasKids;
 WindowArrangeItem.Enabled := HasKids;
 CloseAll1.Enabled := HasKids;
 FormatAllItem.Enabled := HasKids and not FormattedAll;
 FormatCurrentItem.Enabled := HasKids and not CurrentFormatted;
 SaveAllItem.Enabled := HasChanged;
 if ViewForm <> nil then
  begin
   EditUndoItem.Enabled := HasKids and TViewForm(ViewForm).Memo1.CanUndo;
   EditRedoItem.Enabled := HasKids and TViewForm(ViewForm).Memo1.CanRedo;
  end;
 EditCutItem.Enabled := HasKids and HasSelected;
 EditPasteItem.Enabled := HasKids and Clipboard.HasFormat(CF_TEXT);
 EditCopyItem.Enabled := HasKids and HasSelected;
 WindowMinimizeAll.Enabled := HasKids;
 SaveButton.Enabled := HasKids and CurrentModified or CurrentFormatted;
 SaveAllButton.Enabled := HasKids;
 FormatAllButton.Enabled := HasKids and not FormattedAll;
 FormatCurrentButton.Enabled := HasKids and not CurrentFormatted;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
 Application.OnHint := ShowHint;
 Application.HelpFile := ChangeFileExt(ParamStr(0), '.hlp');
 Formatter := TPascalParser.Create(PChar(ExtractFilePath(ParamStr(0))));
 Formatter.CfgFile := ChangeFileExt(ParamStr(0), '.cfg');
 Config(True);
end;

procedure TMainForm.ShowHint(Sender: TObject);
begin
 StatusLine.SimpleText := Application.Hint;
end;

function GetNextFile(var ProjFile {, inFile}: Text; var FileName: string):
 Boolean;
var
 Buf: array[0..300] of Char;
 P, P2: PChar;
begin
 repeat
  Readln(ProjFile, Buf);
  if (StrScan(Buf, '''') <> nil) and
   (StrPos(Buf, ' in') <> nil) then
   begin
    P := StrScan(Buf, '''') + 1;
    P2 := StrScan(P, '''');
    if P2 <> nil then
     begin
      P2^ := #0;
      FileName := string(P);
     end;
    Result := True;
    Exit;
   end
 until Eof(ProjFile);
 Result := False;
end;

procedure TMainForm.PerformFileOpen(AFileName: string);
var
  {ViewForm: TViewForm;}
 ProjFile: TextFile;
 FileName, Dir: string;
begin
 if FileExists(AFileName) then
  begin
   if ViewForm = nil then
    ViewForm := TViewForm.Create(Self);
   with TViewForm(ViewForm) do
    begin
     LoadFile(AFileName);
     Show;
    end;
   if (CompareText(ExtractFileExt(AFileName),
    '.dpr') = 0) and (MessageDlg('Ok to open all files in the project "' +
    ExtractFileName(AFileName) + '" ?',
    mtConfirmation, [mbYes, mbNo], 0) = ID_YES) then
    begin
     AssignFile(ProjFile, AFileName);
     try
      Dir := ExtractFileDir(ExpandFileName(AFileName));
      if Dir <> '' then
       Chdir(Dir);
      Reset(ProjFile);
      while GetNextFile(ProjFile, FileName) do
       begin
        if ViewForm = nil then
         ViewForm := TViewForm.Create(Self);
        with TViewForm(ViewForm) do
         begin
          LoadFile(FileName);
          if Caption = '' then
           Free
          else
           Show;
         end;
       end;
     finally
      CloseFile(ProjFile);
     end;
    end;
  end;
end;

procedure TMainForm.FileOpen(Sender: TObject);
var
 I: Integer;
begin
 with OpenDialog do
  if Execute then
   begin
    with Files do
     for I := 0 to Count - 1 do
      PerformFileOpen(Files.Strings[I]);
   end;
 UpdateMenu;
end;

procedure TMainForm.FileSave(Sender: TObject);
var
 ViewForm: TForm;
begin
 ViewForm := Screen.ActiveForm;
 if (ViewForm <> nil) and (ViewForm is TViewForm) then
  TViewForm(ViewForm).SaveTo('');
 UpdateMenu;
end;

procedure TMainForm.FileSaveAs(Sender: TObject);
var
 ViewForm: TForm;
begin
 ViewForm := Screen.ActiveForm;
 if (ViewForm <> nil) and (ViewForm is TViewForm) then
  begin
   SaveDialog.FileName := ViewForm.Caption;
   if SaveDialog.Execute then
    with TViewForm(ViewForm) do
     begin
      SetCurrentFileName(SaveDialog.FileName);
      SaveCurrent;
     end;
  end;
 UpdateMenu;
end;

procedure TMainForm.FileExit(Sender: TObject);
begin
 Close;
end;

procedure TMainForm.WindowTile(Sender: TObject);
begin
 Tile;
end;

procedure TMainForm.WindowCascade(Sender: TObject);
begin
 Cascade;
end;

procedure TMainForm.WindowArrange(Sender: TObject);
begin
 ArrangeIcons;
end;

procedure TMainForm.HelpContents(Sender: TObject);
begin
 Application.HelpCommand(Help_Contents, 0);
end;

procedure TMainForm.HelpAbout(Sender: TObject);
begin
 AboutBox.ShowModal;
end;

procedure TMainForm.CloseAll1Click(Sender: TObject);
var
 I: Integer;
begin
  { Must be done backwards through the MDIChildren array }
 for I := MDIChildCount - 1 downto 0 do
  MDIChildren[I].Close;
 UpdateMenu;
end;

procedure TMainForm.FormatAllItemClick(Sender: TObject);
var
 I: Integer;
 Child: TForm;
begin
 ProgressDlg.Show;
 Application.ProcessMessages;
 for I := 0 to MDIChildCount - 1 do
  begin
   Child := MDIChildren[I];
   if Child is TViewForm then
    TViewForm(Child).FormatAll;
  end;
 ProgressDlg.Hide;
 UpdateMenu;
end;

procedure TMainForm.FormatCurrentItemClick(Sender: TObject);
begin
 ViewForm := Screen.ActiveForm;
 if (ViewForm <> nil) and (ViewForm is TViewForm) then
  begin
   ProgressDlg.Show;
   Application.ProcessMessages;
   TViewForm(ViewForm).FormatCurrent;
   if ProgressDlg <> nil then
    ProgressDlg.Hide;
  end;
 UpdateMenu;
end;

procedure TMainForm.FormShow(Sender: TObject);
var
 I: Integer;
 Dir: string;
begin
 if OptionsDlg <> nil then
  OptionsDlg.HelpFile := PChar(Application.HelpFile);
 if ProgressDlg <> nil then
  begin
   ProgressDlg.Hide;
   ProgressDlg.Parent := Application.MainForm;
  end;
 if paramCount > 0 then
  begin
   for I := 1 to paramCount do
    PerformFileOpen(ParamStr(I));
   Dir := ExtractFileDir(ExpandFileName(ParamStr(paramCount)));
   if Dir <> '' then
    Chdir(Dir);
  end;
 UpdateMenu;
 OptionsDlg.Formatter := Formatter;
end;

procedure TMainForm.SaveAllItemClick(Sender: TObject);
var
 Child: TForm;
 I: Integer;
 Action: TCloseAction;
begin
 for I := 0 to MDIChildCount - 1 do
  begin
   Child := MDIChildren[I];
   if Child is TViewForm then
    TViewForm(Child).FormClose(nil, Action);
  end;
 UpdateMenu;
end;

function TMainForm.GetActiveForm: TForm;
begin
 Result := TForm(Screen.ActiveForm);
 if (Result <> nil) and not (Result is TViewForm) then
  Result := nil;
end;

procedure TMainForm.EditUndoItemClick(Sender: TObject);
begin
 ViewForm := TForm(GetActiveForm);
 if ViewForm <> nil then
  TViewForm(ViewForm).Memo1.Undo;
end;

procedure TMainForm.EditCutItemClick(Sender: TObject);
begin
 ViewForm := TForm(GetActiveForm);
 if ViewForm <> nil then
  with TViewForm(ViewForm).Memo1 do
   CutToClipboard;
 UpdateMenu;
end;

procedure TMainForm.EditCopyItemClick(Sender: TObject);
begin
 ViewForm := TForm(GetActiveForm);
 if ViewForm <> nil then
  with TViewForm(ViewForm).Memo1 do
   CopyToClipboard;
end;

procedure TMainForm.EditPasteItemClick(Sender: TObject);
begin
 ViewForm := TForm(GetActiveForm);
 if ViewForm <> nil then
  with TViewForm(ViewForm).Memo1 do
   PasteFromClipboard;
end;

procedure TMainForm.EditFindItemClick(Sender: TObject);
begin
 ViewForm := TForm(GetActiveForm);
 if ViewForm <> nil then
  begin
   with TViewForm(ViewForm) do
    begin
     SelStart := 0;
     SelLength := 0;
    end;
   FindDialog1.Execute;
  end;
 
end;

procedure TMainForm.FindDialog1Find(Sender: TObject);
var
 SelPos, StartPos: Integer;
begin
 if ViewForm <> nil then
  with TViewForm(ViewForm), Memo1, FindDialog1 do
   begin
      { Perform a global case-sensitive search for FindText in Memo1 }
    StartPos := SelStart + SelLength;
    if frMatchCase in Options then
     SelPos := Pos(FindText, Lines.Text[StartPos])
    else
     SelPos := Pos({UpperCase}(FindText),
          {UpperCase}(Memo1.Lines.Text[StartPos]));
    if SelPos > 0 then
     begin
      SelStart := StartPos + SelPos - 1;
      SelLength := Length(FindText);
      ViewForm.SetFocus;
      CloseDialog;
     end
    else
     MessageDlg(Concat('Could not find "', FindText, '" in Memo1.'), mtError,
      [mbOK], 0);
   end;
 UpdateMenu;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
 Config(False);
 Formatter.Free;
 MainForm := nil;
end;

procedure TMainForm.OptionsItemClick(Sender: TObject);
begin
 OptionsDlg.ShowModal;
 if ViewForm <> nil then
  begin
   ProgressDlg.Show;
   TViewForm(ViewForm).FormatFormatted;
   ProgressDlg.Hide;
  end;
end;

procedure TMainForm.FileReloadAllItemClick(Sender: TObject);
var
 Child: TForm;
 I: Integer;
begin
 for I := 0 to MDIChildCount - 1 do
  begin
   Child := MDIChildren[I];
   if Child is TViewForm then
    with TViewForm(Child) do
     if {Formatted or} Memo1.Modified then
      LoadFile(Caption);
  end;
 ProgressDlg.Hide;
 UpdateMenu;
end;

procedure TMainForm.WindowMinimizeAllClick(Sender: TObject);
var
 I: Integer;
begin
 for I := MDIChildCount - 1 downto 0 do
  MDIChildren[I].WindowState := wsMinimized;
end;

procedure TMainForm.Config(DoRead: Boolean);
begin
 Formatter.Config(DoRead);
end;

procedure TMainForm.EditRedoItemClick(Sender: TObject);
begin
 if ViewForm <> nil then
  TViewForm(ViewForm).Memo1.Redo;
end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
 i: integer;
begin
 CloseAll1Click(nil);
 CanClose := True;
 for i := 0 to MDIChildCount - 1 do
  if TForm(MDIChildren[i]).ModalResult = mrcancel then
   CanClose := False;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久aaaa樱花| 成人黄色在线视频| 9久草视频在线视频精品| 欧美区一区二区三区| 亚洲欧洲av一区二区三区久久| 久久精品久久精品| 欧美色视频在线观看| 国产精品久久久久影院亚瑟 | 成人激情动漫在线观看| 欧美电影免费观看完整版| 亚洲一区二区三区在线| 成人av在线一区二区三区| 精品成人私密视频| 美女视频黄免费的久久| 欧美性高清videossexo| 亚洲日本在线观看| eeuss国产一区二区三区| 国产午夜精品一区二区| 久久精品国产精品青草| 欧美一区二区在线播放| 五月天久久比比资源色| 在线观看91视频| 一区二区三区国产精品| 色婷婷综合久久久| 亚洲视频一区在线| 色av一区二区| 亚洲一区二区精品久久av| 日本韩国欧美在线| 亚洲精品视频免费看| 一本一本久久a久久精品综合麻豆| 亚洲国产精品成人综合色在线婷婷| 国产精品一区三区| 亚洲国产精品成人综合| 91亚洲国产成人精品一区二三| 亚洲欧洲性图库| 色欧美日韩亚洲| 亚洲综合在线观看视频| 欧美三级中文字幕| 免费精品视频最新在线| 2023国产精品| 99免费精品在线| 亚洲精品一二三四区| 欧美精品乱人伦久久久久久| 日韩中文字幕亚洲一区二区va在线 | 日本大香伊一区二区三区| 亚洲精品ww久久久久久p站| 在线观看国产一区二区| 日本欧美在线观看| 久久久久久久久久久电影| 成人天堂资源www在线| 亚洲精品免费视频| 宅男在线国产精品| 国产精一区二区三区| 国产精品成人一区二区艾草| 欧美日韩一区三区四区| 韩国av一区二区三区在线观看| 欧美国产在线观看| 欧美日韩一区不卡| 国内久久婷婷综合| 最新日韩av在线| 91精品国产91综合久久蜜臀| 国产精品夜夜嗨| 亚洲大片免费看| 久久精品在这里| 欧美日韩免费观看一区三区| 狠狠色丁香九九婷婷综合五月| 亚洲视频网在线直播| 日韩亚洲电影在线| 色综合一区二区| 久久国产麻豆精品| 亚洲精品一二三| 久久久精品国产99久久精品芒果| 一本大道久久a久久精品综合| 精品在线播放午夜| 亚洲精品乱码久久久久久日本蜜臀| 日韩三级电影网址| 91国产免费看| 成人午夜电影小说| 日本成人在线电影网| 亚洲精品亚洲人成人网在线播放| 精品粉嫩aⅴ一区二区三区四区| 色婷婷综合久久久中文一区二区| 国产真实乱偷精品视频免| 五月天激情综合| 亚洲色图第一区| 国产三级精品在线| 欧美电影免费观看高清完整版在| 91成人网在线| eeuss影院一区二区三区| 激情综合网最新| 日本午夜精品视频在线观看 | 成人欧美一区二区三区白人| 欧美成人精品1314www| 欧美日韩在线三区| 91丨porny丨国产| 白白色 亚洲乱淫| 国产真实乱对白精彩久久| 日本麻豆一区二区三区视频| 亚洲不卡在线观看| 亚洲已满18点击进入久久| 国产精品久久久久久久久搜平片| 国产日韩精品一区二区浪潮av | 国产成人精品一区二| 久久国产精品免费| 免费久久精品视频| 日本中文在线一区| 蜜臀av一区二区在线观看| 日韩综合一区二区| 日韩高清欧美激情| 免费成人在线视频观看| 乱一区二区av| 九色porny丨国产精品| 久久电影网电视剧免费观看| 久久国产精品99久久久久久老狼| 久久精品久久精品| 国产精品69毛片高清亚洲| 国产在线精品免费| 丁香另类激情小说| 91丨九色porny丨蝌蚪| 在线免费观看视频一区| 欧美日韩国产另类一区| 欧美一区二区大片| 久久久久久电影| 国产精品麻豆网站| 一个色在线综合| 日本不卡不码高清免费观看| 日本va欧美va精品| 国产不卡高清在线观看视频| caoporn国产精品| 在线观看91视频| 这里只有精品视频在线观看| 久久综合成人精品亚洲另类欧美| 国产日韩精品视频一区| 亚洲男人的天堂av| 全部av―极品视觉盛宴亚洲| 国产伦精品一区二区三区在线观看 | 亚洲欧美日韩在线| 亚洲一卡二卡三卡四卡| 日韩高清在线一区| 国产一区二区影院| 在线欧美一区二区| 欧美va在线播放| 日韩一区在线免费观看| 日韩电影一区二区三区四区| 大美女一区二区三区| 精品婷婷伊人一区三区三| 精品久久久久久久一区二区蜜臀| 国产精品理论片| 视频一区国产视频| 成人午夜精品在线| 91精品国产综合久久婷婷香蕉 | 国产精品丝袜91| 亚洲成人自拍偷拍| 国产成人av电影免费在线观看| 欧美三级日本三级少妇99| 久久婷婷国产综合国色天香| 一区二区三区在线视频免费 | 精久久久久久久久久久| 一本色道久久综合亚洲91 | 精品国产凹凸成av人导航| 亚洲欧洲av另类| 久久精品国产澳门| 色婷婷一区二区三区四区| 久久久久久久久久久久电影| 天堂成人免费av电影一区| 不卡高清视频专区| 久久女同性恋中文字幕| 日韩成人免费电影| 欧美亚洲动漫另类| 亚洲婷婷在线视频| 国产成人精品亚洲777人妖| 欧美一卡二卡在线观看| 亚洲一区中文日韩| caoporn国产精品| 国产婷婷精品av在线| 午夜精品福利一区二区蜜股av| 成人短视频下载| 国产欧美精品一区二区色综合朱莉| 久久精品久久综合| 538在线一区二区精品国产| 一区二区在线看| 99这里只有精品| 中文字幕不卡的av| 国产成a人无v码亚洲福利| 欧美精品一区二区三区四区 | 国产精品久久久爽爽爽麻豆色哟哟| 久久精品国产99国产精品| 91精品国产综合久久久蜜臀图片| 亚洲码国产岛国毛片在线| 成人av集中营| 国产精品网站在线| 成人一区二区三区视频在线观看| 久久亚洲影视婷婷| 国产成人免费视频网站高清观看视频| 日韩欧美国产精品| 激情综合网av| 国产欧美久久久精品影院| 成人av资源在线观看| 国产精品免费视频观看| 97se亚洲国产综合自在线观|