⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.pas

📁 delphi 写的delphi的程序 Handel is a free, standalone development tool created with Delphi 3 that enable
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus,ToolIntf, Buttons, ComCtrls, ExtCtrls, StdCtrls,utype, TypInfo,Proxies,
  Mask,FileCtrl, Grids, MPlayer, Gauges,uconst, Tabs, Tabnotbk, mwCustomEdit,
  Calendar, Outline, DirOutln, Spin, ColorGrd, extdlgs, clipbrd, checklst,
  olectnrs, ddeman, DB, DBTables,DBGrids, DBCtrls, DBCGrids,quickrpt, Qrctrls,
  qrprntr,DBLookup, ImgList;

type
  TOpenUnitList = record
     FileName:string;
     Editor: TmwCustomEdit;
     Modified:Boolean;
     Closed:Boolean;
  end;

  TFMainForm = class(TForm)
    MainMenu1: TMainMenu;
    FileMenu: TMenuItem;
    FileNewItem: TMenuItem;
    FileNewApplicationItem: TMenuItem;
    FileNewFormItem: TMenuItem;
    FileNewDataModuleItem: TMenuItem;
    FileOpenItem: TMenuItem;
    FileReOpenItem: TMenuItem;
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    EditMenu: TMenuItem;
    SearchMenu: TMenuItem;
    ViewMenu: TMenuItem;
    ProjectMenu: TMenuItem;
    RunMenu: TMenuItem;
    ComponentMenu: TMenuItem;
    DatabaseMenu: TMenuItem;
    ToolsMenu: TMenuItem;
    HelpMenu: TMenuItem;
    FileSaveItem: TMenuItem;
    FileSaveAsItem: TMenuItem;
    FileSaveProjectAsItem: TMenuItem;
    FileSaveAllItem: TMenuItem;
    FileCloseItem: TMenuItem;
    FileCloseAllItem: TMenuItem;
    FileUseUnitItem: TMenuItem;
    FileAddItem: TMenuItem;
    FileRemoveItem: TMenuItem;
    FilePrintItem: TMenuItem;
    FileExitItem: TMenuItem;
    EditUndoItem: TMenuItem;
    EditRedoItem: TMenuItem;
    EditCutItem: TMenuItem;
    EditCopyItem: TMenuItem;
    EditPasteItem: TMenuItem;
    EditDeleteItem: TMenuItem;
    EditSelectAllItem: TMenuItem;
    HelpAboutItem: TMenuItem;
    SearchFindItem: TMenuItem;
    SearchFindInFilesItem: TMenuItem;
    SearchReplaceItem: TMenuItem;
    SearchAgainItem: TMenuItem;
    SearchIncrementalItem: TMenuItem;
    SearchGotoItem: TMenuItem;
    SearchBrowseSymbolItem: TMenuItem;
    ViewProjectManagerItem: TMenuItem;
    ViewProjectSourceItem: TMenuItem;
    ViewObjectInspectorItem: TMenuItem;
    ViewAlignItem: TMenuItem;
    ViewBrowseItem: TMenuItem;
    ViewComponentListItem: TMenuItem;
    ViewWindowListItem: TMenuItem;
    ViewToggleFormItem: TMenuItem;
    ViewUnitItem: TMenuItem;
    ViewFormItem: TMenuItem;
    ViewNewEditorItem: TMenuItem;
    ViewSpeedBarItem: TMenuItem;
    ViewPaletteItem: TMenuItem;
    ProjectAddItem: TMenuItem;
    ProjectRemoveItem: TMenuItem;
    ProjectAddRepositoryItem: TMenuItem;
    ProjectCompileItem: TMenuItem;
    ProjectBuildAllItem: TMenuItem;
    ProjectSyntaxItem: TMenuItem;
    ProjectInformationItem: TMenuItem;
    ProjectOptionsItem: TMenuItem;
    RunRunItem: TMenuItem;
    RunParametersItem: TMenuItem;
    RunStepoverItem: TMenuItem;
    RunTraceintoItem: TMenuItem;
    RunRuntocursorItem: TMenuItem;
    RunProgramPauseItem: TMenuItem;
    RunProgramResetItem: TMenuItem;
    RunAddWatchItem: TMenuItem;
    RunAddBreakpointItem: TMenuItem;
    RunEvaluateItem: TMenuItem;
    ComponentNewComponentItem: TMenuItem;
    ComponentInstallComponent: TMenuItem;
    ComponentInstallPackages: TMenuItem;
    ComponentConfigurePalette: TMenuItem;
    DatabaseExploreItem: TMenuItem;
    DatabaseFormWizardItem: TMenuItem;
    ToolsOptionsItem: TMenuItem;
    ToolsGalleryItem: TMenuItem;
    ToolsToolsItem: TMenuItem;
    ToolsImageEditItem: TMenuItem;
    ToolsDatabaseItem: TMenuItem;
    SaveDialog1: TSaveDialog;
    N11: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    EditAlignGridItem: TMenuItem;
    EditFrontItem: TMenuItem;
    EditBackItem: TMenuItem;
    EditAlignItem: TMenuItem;
    EditSizeItem: TMenuItem;
    EditScaleItem: TMenuItem;
    EditTabOrderItem: TMenuItem;
    EditCreateOrderItem: TMenuItem;
    N82: TMenuItem;
    N83: TMenuItem;
    N84: TMenuItem;
    N85: TMenuItem;
    N86: TMenuItem;
    N87: TMenuItem;
    N88: TMenuItem;
    N89: TMenuItem;
    N90: TMenuItem;
    SpeedBar: TPanel;
    sbOpenProject: TSpeedButton;
    sbSaveAll: TSpeedButton;
    sbAddProject: TSpeedButton;
    sbUnits: TSpeedButton;
    sbForms: TSpeedButton;
    sbRun: TSpeedButton;
    sbPause: TSpeedButton;
    sbOpenFile: TSpeedButton;
    sbSave: TSpeedButton;
    sbRemoveProject: TSpeedButton;
    sbToggleUnit: TSpeedButton;
    sbNewForm: TSpeedButton;
    sbTraceInto: TSpeedButton;
    sbStepOver: TSpeedButton;
    N22: TMenuItem;
    FindDialog1: TFindDialog;
    ReplaceDialog1: TReplaceDialog;
    PopupMenu1: TPopupMenu;
    ShowSpeedbarHint: TMenuItem;
    NHide: TMenuItem;
    SpeedbarHelpItem: TMenuItem;
    Configure1: TMenuItem;
    N33: TMenuItem;
    HelpContextItem: TMenuItem;
    Splitter1: TSplitter;
    PageControl1: TPageControl;
    PaletteMenu: TPopupMenu;
    ShowPaletteHints: TMenuItem;
    Hide2: TMenuItem;
    PaletteHelpItem: TMenuItem;
    N9: TMenuItem;
    Configure2: TMenuItem;
    Breakpoints1: TMenuItem;
    Modules1: TMenuItem;
    HandelHelp1: TMenuItem;
    Compileactivefile1: TMenuItem;
    N1: TMenuItem;
    VMTInformation1: TMenuItem;
    ViewLineNumberItem: TMenuItem;
    N2: TMenuItem;
    EditColumnModeItem: TMenuItem;
    ViewCodeExplorerItem: TMenuItem;
    ImageList: TImageList;
    N3: TMenuItem;
    FileOpenProjectItem: TMenuItem;
    N4: TMenuItem;
    LockControls1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FileExitItemClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure HelpAboutItemClick(Sender: TObject);
    procedure sbButtonClick(Sender: TObject);
    procedure sbOpenFileClick(Sender: TObject);
    procedure sbFormsClick(Sender: TObject);
    procedure sbUnitsClick(Sender: TObject);
    procedure ViewProjectSourceItemClick(Sender: TObject);
    procedure sbOpenProjectClick(Sender: TObject);
    procedure ViewProjectManagerItemClick(Sender: TObject);
    procedure ProjectCompileItemClick(Sender: TObject);
    procedure ProjectBuildAllItemClick(Sender: TObject);
    procedure RunRunItemClick(Sender: TObject);
    procedure sbMainMenuClick(Sender: TObject);
    procedure EditCopyItemClick(Sender: TObject);
    procedure EditPasteItemClick(Sender: TObject);
    procedure EditCutItemClick(Sender: TObject);
    procedure FileSaveItemClick(Sender: TObject);
    procedure FilePrintItemClick(Sender: TObject);
    procedure EditSelectAllItemClick(Sender: TObject);
    procedure EditUndoItemClick(Sender: TObject);
    procedure SearchGotoItemClick(Sender: TObject);
    procedure ViewObjectInspectorItemClick(Sender: TObject);
    procedure ViewNewEditorItemClick(Sender: TObject);
    procedure ViewSpeedBarItemClick(Sender: TObject);
    procedure ViewPaletteItemClick(Sender: TObject);
    procedure FileNewFormItemClick(Sender: TObject);
    procedure SearchFindItemClick(Sender: TObject);
    procedure FindDialog1Find(Sender: TObject);
    procedure SearchReplaceItemClick(Sender: TObject);
    procedure ReplaceDialog1Replace(Sender: TObject);
    procedure FileNewApplicationItemClick(Sender: TObject);
    procedure FileCloseAllItemClick(Sender: TObject);
    procedure sbSaveAllClick(Sender: TObject);
    procedure sbToggleUnitClick(Sender: TObject);
    procedure NHideClick(Sender: TObject);
    procedure ToolsOptionsItemClick(Sender: TObject);
    procedure ToolsImageEditItemClick(Sender: TObject);
    procedure ToolsDatabaseItemClick(Sender: TObject);
    procedure ProjectOptionsItemClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ProjectAddItemClick(Sender: TObject);
    procedure ProjectRemoveItemClick(Sender: TObject);
    procedure ViewWindowListItemClick(Sender: TObject);
    procedure ViewComponentListItemClick(Sender: TObject);
    procedure ToolsToolsItemClick(Sender: TObject);
    procedure SearchFindInFilesItemClick(Sender: TObject);
    procedure FileSaveAsItemClick(Sender: TObject);
    procedure FileSaveAllItemClick(Sender: TObject);
    procedure FileCloseItemClick(Sender: TObject);
    procedure EditFrontItemClick(Sender: TObject);
    procedure EditBackItemClick(Sender: TObject);
    procedure EditAlignItemClick(Sender: TObject);
    procedure EditSizeItemClick(Sender: TObject);
    procedure HelpContextItemClick(Sender: TObject);
    procedure EditScaleItemClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FileSaveProjectAsItemClick(Sender: TObject);
    procedure ComponentNewComponentItemClick(Sender: TObject);
    procedure ViewAlignItemClick(Sender: TObject);
    procedure Breakpoints1Click(Sender: TObject);
    procedure ViewBrowseItemClick(Sender: TObject);
    procedure EditCreateOrderItemClick(Sender: TObject);
    procedure RunEvaluateItemClick(Sender: TObject);
    procedure FileNewItemClick(Sender: TObject);
    procedure Modules1Click(Sender: TObject);
    procedure ToolsGalleryItemClick(Sender: TObject);
    procedure RunParametersItemClick(Sender: TObject);
    procedure EditTabOrderItemClick(Sender: TObject);
    procedure RunAddWatchItemClick(Sender: TObject);
    procedure ComponentConfigurePaletteClick(Sender: TObject);
    procedure FileUseUnitItemClick(Sender: TObject);
    procedure EditRedoItemClick(Sender: TObject);
    procedure ComponentInstallComponentClick(Sender: TObject);
    procedure ComponentInstallPackagesClick(Sender: TObject);
    procedure Configure2Click(Sender: TObject);
    procedure Hide2Click(Sender: TObject);
    procedure ShowSpeedbarHintClick(Sender: TObject);
    procedure ShowPaletteHintsClick(Sender: TObject);
    procedure SpeedbarHelpItemClick(Sender: TObject);
    procedure PaletteHelpItemClick(Sender: TObject);
    procedure Configure1Click(Sender: TObject);
    procedure HandelHelp1Click(Sender: TObject);
    procedure Compileactivefile1Click(Sender: TObject);
    procedure VMTInformation1Click(Sender: TObject);
    procedure SearchAgainItemClick(Sender: TObject);
    procedure ViewLineNumberItemClick(Sender: TObject);
    procedure EditColumnModeItemClick(Sender: TObject);
    procedure ViewCodeExplorerItemClick(Sender: TObject);
    procedure FileOpenProjectItemClick(Sender: TObject);
  private
    { Private declarations }
    SourceList: TStringList;  // 汽 颇老狼 咆胶飘 钎泅阑 历厘茄促.
    fShiftKeyed:Boolean;
    function  CreateForm(const FormName,UnitName:string):TForm;  // 橇废矫 汽阑 积己茄促.
    function  OpenProject(const ProjName:string):Boolean;
    procedure OpenForm(const FileName:string);
    procedure SaveForm(Form:TForm;FormName:string);
    procedure ProxyFormShow(Sender: TObject);
    function  UniqueName(Comp:TComponent):string;
    function  TryName(const Test:string;Comp:TComponent):Boolean;
    function  GetUnitName(const FormName:string):string;
    procedure SaveProjectHistory(const Project:string);
    procedure SaveFileHistory(const Filename:string);
    procedure OpenHistory;
    procedure OpenHistoryFile(Sender: TObject);
    procedure ExecuteTool(Sender: TObject);
    function  SearchingText(SearchStr:string;Options:TmwSearchOptions):Boolean;
    procedure ReplacingText(FindText,ReplaceText:string;Options:TmwSearchOptions);
    procedure FileSaveAs(Filename:string);
    procedure MakeBitmap(Component:TSpeedButton;ComponentName:string);
    procedure CreatePalettePage(PalettePage:string);
    procedure LoadingComponents;
    procedure LoadDefaultPalette;
    procedure LoadDefaultButton(TabSheet:TTabSheet);
    procedure CreateSheet(const FileName:string);
    procedure CreateSheetAsStream(const FileName:string;Stream:TStream);
    procedure FileUseUnit;
    procedure AddtoPackage1Click;
    procedure InstallPackagesClick;
    procedure ProcessShowHint(var HintStr: string; var CanShow: Boolean;
              var HintInfo: THintInfo);
    function  IsOpenedFile(const FileName:string):Integer;
    procedure ClearOpenUnitList;
    procedure CloseProject;
    procedure RenameUnit(OldName, NewName: string);
 protected
    procedure OnGetMinMaxInfo(var msg : TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
 public
    { Public declarations }
    ToggleFormUnit:Boolean;
    UnitCount:Integer;                              // opened editor count
    ActiveUnit: string;                             // active unit filename
    ActiveForm:TForm;                               // active form
    OpenUnitList: array [1..255] of TOpenUnitList;  // opened unit list
    procedure ReadClass;
    procedure OpenFile(const FileName:string);
    procedure SaveFile(const FileName:string);
    function  GetSelectComponent:TComponentClass;
    function  GetLinkForm:TForm;
    function  GetLinkUnit(FormName:string):string;
    procedure ToggleFormAndUnit;
    procedure OpenTools;
    procedure OpenFormAsText(const FileName:string);
    procedure UpdateControl(State:TProjectState);
    procedure CloseActiveFile;
    procedure ReadEnvirionment;
    function  SaveProject(const ProjName:string):Boolean;
    procedure NewProject;
    procedure NewComponent;
    procedure NewForm;
    procedure NewUnit;
    procedure NewTextFile;
    property  ShiftKeyed:Boolean read fShiftKeyed write fShiftKeyed;
  end;

var
  FMainForm: TFMainForm;
  SearchOption:TmwSearchOptions;

implementation

uses ObjectInspec, Proxy, About, Editor, uviewform, UProject, utils,
  UOptions, UProOption, ucreateform, ShellAPI,IniFiles,
  URemoveUnit, UWindowList, UComponentList, Utools, ucompile, USearch,RichEdit,
  UFindInFile, UReplace,resource, uAlignDialog, uSizeDialog, Uscale,
  UNewcomp, UAlignPal, BPWindow, UBrowser, UCreateOrderDlg, UEvaDialog,
  UGalleryBrowseDlg, UModulesView, UPrintSelDlg, URepositConfigDlg,
  URunParamsDlg, UTabOrderDlg, UWatchEditDlg, SBEditor, UInstallComp,
  DFMUtils, compiler, UVMT;

var
   EndPos,OldLine,MatchPos:integer;
   SearchText:string;

{$R *.DFM}

{$Include handel.inc}

procedure TFMainForm.OnGetMinMaxInfo(var msg : TWMGetMinMaxInfo);
// Thanks to Dillan2@mail.hitel.net
var
    r : TRect;
    style : Longint;
begin
   inherited;
   r := SpeedBar.BoundsRect;
   style := GetWindowLong(Self.Handle, GWL_STYLE);
   AdjustWindowRect(r, style, TRUE);
   msg.MinMaxInfo^.ptMaxTrackSize.x := Screen.Width;
   msg.MinMaxInfo^.ptMaxTrackSize.y := r.bottom - r.top;
end;

procedure TFMainForm.FormCreate(Sender: TObject);
var
  Delphi:string;
begin
   // initialize projrect environments
   Left:= 0;
   Top := 0;
   UnitCount:= 1;
   OpenUnitList[1].FileName:= 'unit1.pas';
   ToggleFormUnit:= False;
   SourceList:= TStringList.Create;
   ProjectInfo:= TProjectInfo.Create(self);
   GetDir(0,TempDir);
   TempDir := AppendSlash(TempDir);
   FilePath:= ExtractFilePath(Application.ExeName);
   IniFile := TIniFile.Create(FilePath+IniName);
   LoadingComponents;
   Delphi:= AppendSlash(IniFile.ReadString('SYSTEM','DELPHI',''));
   CompilerPath:= Delphi + 'bin\';
   if IniFile.ReadBool('SYSTEM','DefaultCompiler',True) then
      CompilerName:= CompilerPath + 'DCC32.exe'
   else CompilerName:= Trim(IniFile.ReadString('Compiler','FPC', ''));
   Desktop:= IniFile.ReadString('SYSTEM','DESKTOP','');
   Application.HelpFile:= Delphi + 'help\delphi4.hlp';
   Application.OnShowHint:= ProcessShowHint;
   OpenHistory;
   OpenTools;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -