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

📄 mainunit.pas

📁 IDE开发环境
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit MainUnit;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Buttons, ExtCtrls, StdCtrls, RTDesign, ComCtrls, Grids, ToolWin,
  ImgList, ActiveX, SHELLAPI, axctrls, DosCommand, TB2Dock,
  TB2Toolbar, TBX, TBXStatusBars, TBXExtItems, TBXLists, TB2Item,
  TBXToolPals, TB2ExtItems, TB2ToolWindow, TBXSwitcher, TBXMDI, TBXDkPanels,
  TBXOfficeXPTheme, TBXStripesTheme, Utils, CodeSense_TLB, INIfiles, Splash, Options, NewTab, Unit1,
  ProjOptions;

type
  TMainForm = class(TForm)
    PInspector: TPanel;
    OpenDialog: TOpenDialog;
    SaveFormDialog: TSaveDialog;
    RTDesigner1: TRTDesigner;
    Splitter2: TSplitter;
    Panel2: TPanel;
    ComboBox1: TComboBox;
    ImageList1: TImageList;
    ImageList3: TImageList;
    ImageList2: TImageList;
    PageControl1: TPageControl;
    Standard: TTabSheet;
    BNone1: TSpeedButton;
    BEdit: TSpeedButton;
    BButton: TSpeedButton;
    BLabel: TSpeedButton;
    BCheckBox: TSpeedButton;
    BGroup: TSpeedButton;
    BRadio: TSpeedButton;
    BComboBox: TSpeedButton;
    BListBox: TSpeedButton;
    BScrollBar: TSpeedButton;
    BImage: TSpeedButton;
    Additional: TTabSheet;
    BBitBtn: TSpeedButton;
    BNone2: TSpeedButton;
    BSpeedButton: TSpeedButton;
    BPanel: TSpeedButton;
    DosCommand1: TDosCommand;
    TBXStatusBar1: TTBXStatusBar;
    Panel3: TPanel;
    Panel4: TPanel;
    TBDock1: TTBDock;
    TBDock2: TTBDock;
    TBXToolbar4: TTBXToolbar;
    TBXItem1: TTBXItem;
    TBXItem2: TTBXItem;
    TBXItem3: TTBXItem;
    TBXSeparatorItem1: TTBXSeparatorItem;
    TBXItem4: TTBXItem;
    TBXSeparatorItem2: TTBXSeparatorItem;
    TBXItem5: TTBXItem;
    TBXItem6: TTBXItem;
    TBXItem7: TTBXItem;
    TBXSeparatorItem3: TTBXSeparatorItem;
    TBXToolbar5: TTBXToolbar;
    Splitter3: TSplitter;
    Panel5: TPanel;
    TBDock3: TTBDock;
    TBXToolWindow2: TTBXToolWindow;
    Panel7: TPanel;
    TBXSwitcher1: TTBXSwitcher;
    TBDock4: TTBDock;
    DockablePanel: TTBXDockablePanel;
    TBXPageScroller1: TTBXPageScroller;
    TBXPageScroller2: TTBXPageScroller;
    PageScroller1: TPageScroller;
    TreeView2: TTreeView;
    TBXToolbar1: TTBXToolbar;
    File1: TTBXSubmenuItem;
    Edit1: TTBXSubmenuItem;
    TBXSubmenuItem5: TTBXSubmenuItem;
    TBXItem31: TTBXItem;
    TBXItem32: TTBXItem;
    TBXSeparatorItem16: TTBXSeparatorItem;
    TBXMDIWindowItem1: TTBXMDIWindowItem;
    TBXSubmenuItem2: TTBXSubmenuItem;
    TBXSubmenuItem3: TTBXSubmenuItem;
    TBXSubmenuItem4: TTBXSubmenuItem;
    Open: TTBXItem;
    SaveAs1: TTBXItem;
    Print: TTBXItem;
    Close1: TTBXItem;
    Exit1: TTBXItem;
    Undo1: TTBXItem;
    Cut: TTBXItem;
    Copy: TTBXItem;
    Paste: TTBXItem;
    AlignToGrid: TTBXItem;
    TBXItem20: TTBXItem;
    TBXItem21: TTBXItem;
    EditMode1: TTBXItem;
    Compile1: TTBXItem;
    CompileRun1: TTBXItem;
    TBXItem25: TTBXItem;
    XPStyleMenus1: TTBXItem;
    TBXItem27: TTBXItem;
    TBXItem28: TTBXItem;
    PageControl2: TPageControl;
    TabSheet2: TTabSheet;
    TabSheet1: TTabSheet;
    TBXSubmenuItem1: TTBXSubmenuItem;
    TBXItem8: TTBXItem;
    TBXItem9: TTBXItem;
    TBXItem10: TTBXItem;
    TBXSubmenuItem6: TTBXSubmenuItem;
    NormalStyleMenus1: TTBXItem;
    StripesStyleMenus1: TTBXItem;
    TBXSeparatorItem4: TTBXSeparatorItem;
    TBXSeparatorItem5: TTBXSeparatorItem;
    TBXSeparatorItem6: TTBXSeparatorItem;
    TBXSeparatorItem7: TTBXSeparatorItem;
    TBXSeparatorItem8: TTBXSeparatorItem;
    TBXSeparatorItem9: TTBXSeparatorItem;
    TBXSeparatorItem10: TTBXSeparatorItem;
    TBXSeparatorItem11: TTBXSeparatorItem;
    TBXSubmenuItem7: TTBXSubmenuItem;
    KB1: TTBXItem;
    RQ1: TTBXItem;
    BPP1: TTBXItem;
    TBXItem14: TTBXItem;
    TBXItem11: TTBXItem;
    TBXItem12: TTBXItem;
    TBXSeparatorItem12: TTBXSeparatorItem;
    TBXItem13: TTBXItem;
    TBXSubmenuItem8: TTBXSubmenuItem;
    TBXItem15: TTBXItem;
    TBXItem16: TTBXItem;
    TBXItem17: TTBXItem;
    TBDock5: TTBDock;
    TBXToolWindow1: TTBXToolWindow;
    TBXMDIHandler1: TTBXMDIHandler;
    TBDock6: TTBDock;
    TBXToolWindow3: TTBXToolWindow;
    TBDock7: TTBDock;
    TBDock8: TTBDock;
    TBXItem18: TTBXItem;
    TBXItem19: TTBXItem;
    TBXSubmenuItem9: TTBXSubmenuItem;
    PageControl3: TPageControl;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    Properties: TStringGrid;
    SaveProjectDialog: TSaveDialog;
    SaveBASICDialog: TSaveDialog;
    Events: TStringGrid;
    Save1: TTBXItem;
    OptionsItem: TTBXItem;
    LanguageItem: TTBXItem;
    TBXItem22: TTBXItem;
    TBXItem23: TTBXItem;
    TBXItem24: TTBXItem;
    TBXItem26: TTBXItem;
    mnuCodeEditor: TTBXSubmenuItem;
    mnuCommentOut: TTBXItem;
    mnuUnComment: TTBXItem;
    mnuCallDLL: TTBXItem;
    mnuFormDesigner: TTBXSubmenuItem;
    RecentFilesMenu: TTBXSubmenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure Save1Click(Sender: TObject);
    procedure SaveAs1Click(Sender: TObject);
    procedure New1Click(Sender: TObject);
    procedure Close1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure Undo1Click(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure Paste1Click(Sender: TObject);
    procedure Cut1Click(Sender: TObject);
    procedure RTDesigner1UndoChange(Sender: TObject);
    procedure RTDesigner1InsertQuery(Sender: TObject; Control: TControl;
      var aClass: TControlClass);
    procedure Aligntogrid1Click(Sender: TObject);
    procedure RTDesigner1PopulateDesignerMenu(Sender: TObject;
      var Menu: TPopupMenu);
    procedure x(Sender: TObject; Control: TControl);
    procedure Editmode1Click(Sender: TObject);
    procedure TabChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure BeforeSelectControl(Sender: TObject; Control: TControl;
      var DoSelect: Boolean);
    procedure TabControl1Change(Sender: TObject);
    procedure MainFormResize(Sender: TObject);
    procedure AfteMove(Sender: TObject);
    procedure AfterSized(Sender: TObject);
    procedure DeleteQuery(Sender: TObject; var DoDelete: Boolean);
    procedure PropertiesExit(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Compile1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure XPStyleMenus1Click(Sender: TObject);
    procedure RunCompile1Click(Sender: TObject);
    procedure Run2Click(Sender: TObject);
    procedure DosCommand1NewLine(Sender: TObject; NewLine: String;
      OutputType: TOutputType);
    procedure DosCommand1Terminated(Sender: TObject);
    procedure PropertiesSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure TreeView2GetSelectedIndex(Sender: TObject; Node: TTreeNode);
    procedure TreeView2Click(Sender: TObject);
    procedure TreeView2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure RTDesigner1RemoveControl(Sender: TObject;
      aControl: TControl);
    procedure TreeView2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure TreeView2DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure RTDesigner1BaseControlClick(Sender: TObject;
      var ClearSelection, DrawSelectionFrame: Boolean; Shift: TShiftState;
      X, Y: Integer);
    procedure TBXItem8Click(Sender: TObject);
    procedure TBXItem9Click(Sender: TObject);
    procedure TBXItem10Click(Sender: TObject);
    procedure TBXItem20Click(Sender: TObject);
    procedure TBXItem21Click(Sender: TObject);
    procedure TBXItem31Click(Sender: TObject);
    procedure TBXItem32Click(Sender: TObject);
    procedure KB1Click(Sender: TObject);
    procedure RQ1Click(Sender: TObject);
    procedure BPP1Click(Sender: TObject);
    procedure DockablePanelCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    procedure TBXItem13Click(Sender: TObject);
    procedure TBXItem16Click(Sender: TObject);
    procedure TBXItem15Click(Sender: TObject);
    procedure TBXItem17Click(Sender: TObject);
    procedure TBDock6RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock5RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock4RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock1RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock2RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock3RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock8RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBDock7RequestDock(Sender: TObject;
      Bar: TTBCustomDockableWindow; var Accept: Boolean);
    procedure TBXToolWindow3DockChanged(Sender: TObject);
    procedure TBXItem18Click(Sender: TObject);
    procedure TBXItem19Click(Sender: TObject);
    procedure TBXToolWindow1CloseQuery(Sender: TObject;
      var CanClose: Boolean);
    procedure TBXToolWindow3CloseQuery(Sender: TObject;
      var CanClose: Boolean);
   procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
    procedure TBItem1Click(Sender: TObject);
//    procedure TBItem4Click(Sender: TObject);
//    procedure TBItem3Click(Sender: TObject);
    procedure LanguageItemClick(Sender: TObject);
    procedure OptionsItemClick(Sender: TObject);
    procedure TBXItem23Click(Sender: TObject);
    procedure TBXItem22Click(Sender: TObject);
    procedure TBXItem26Click(Sender: TObject);
    procedure TBXItem24Click(Sender: TObject);
    procedure mnuCommentOutClick(Sender: TObject);
    procedure mnuUnCommentClick(Sender: TObject);
    procedure LoadProject(FileName: String; Sender:TObject);
    //LoadProject loads up a project and takes the project name as a string
    procedure LoadRecentProject(Sender: TObject);
    //LoadRecentProject does the same as LoadProject, but it takes relys a global var to do the work
  private

  public
    Function GetControlClass : TControlClass;
//  end;
  end;

const BuildID: String = '27-03-2003-1';
const VersionNum: String = '0.2.6.2';
var
  MainForm: TMainForm;
  CodeSenseHandle: HWND;
//  FileName: String;
//  NewFileName: String;
  Language : String;

  ProjectName : STRING;
  BasicFiles  : Array[0..255] of STRING;
  FormFiles   : Array[0..255] of STRING;
  LastTabCount: Integer;
  RecentNamePublic: String;

  LastActiveTab: Integer;
  PageCount  : Integer; //Form1.Tabs.PageCount-1

  Run     : Boolean;
  Project : Boolean;
  OldWindProc: Pointer;
  FormCount : Integer;
  CloseChildren : Boolean;
  CodeViews : array[0..255] of Pointer;
  CodeView : Integer;
  DefaultPath: String;

  ShowSettings: Boolean;

  SetTo: String;

implementation

uses MDIChld, about, Unit3, Windows, LangUnit;

//function MakeButton(Handle : Hwnd; Instance : THandle) : HWND; stdcall; external 'test.dll';
{function  GetNewWindowProcedure() : Integer stdcall; external 'test.dll';
function GetOldWindowProcedure() : Integer stdcall; external 'test.dll';
procedure SetOldWindowProcedure(OldWndProc : integer) stdcall; external 'test.dll';}
//function NewWindowProcedure(hWnd: HWND; Msg: WORD; wParam: WORD; lParam: LONGINT): LONGINT; stdcall; external 'test.dll';

//function MakeButton(Handle : Hwnd; Instance : THandle) : HWND; stdcall; external 'test.dll';
//function MakeButton(Handle : Hwnd; Instance : THandle) : HWND; stdcall; external 'test.dll';



function NewWindProc(Handle: HWND; Msg: Integer; wParam,
                    lParam: Longint): Longint; StdCall;
begin

  { If this is the registered message... }
{  if Msg = MessageID then begin               }
    { if main form is minimized, normalize it }
    { set focus to application }
    ShowMessage('Success');
  { Otherwise, pass message on to old window proc }
{  else}
    Result := CallWindowProc(OldWindProc, Handle, Msg, wParam, lParam);
end;




{$R *.DFM}


procedure ChangeLang(SetTo : String);
begin
LanguageINI := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Languages\'+SetTo+'.lng');
//File:
MainForm.File1.Caption := LanguageINI.ReadString('Menu Bar', 'File', 'File');
  MainForm.TBXSubmenuItem8.Caption := LanguageINI.ReadString('File', 'New', 'New'); //New menu item
  MainForm.Open.Caption := LanguageINI.ReadString('File', 'Open', 'Open');
  MainForm.Save1.Caption := LanguageINI.ReadString('File', 'Save', 'Save');
  MainForm.SaveAs1.Caption := LanguageINI.ReadString('File', 'Save As', 'Save As...');
  MainForm.Print.Caption := LanguageINI.ReadString('File', 'Print', 'Print');
  MainForm.Close1.Caption := LanguageINI.ReadString('File', 'Close', 'Close');
  MainForm.Exit1.Caption := LanguageINI.ReadString('File', 'Exit', 'Exit');

//Edit:
MainForm.Edit1.Caption := LanguageINI.ReadString('Menu Bar', 'Edit', 'Edit');
  MainForm.Undo1.Caption := LanguageINI.ReadString('Edit', 'Undo', 'Undo');
  MainForm.Cut.Caption := LanguageINI.ReadString('Edit', 'Cut', 'Cut');
  MainForm.Copy.Caption := LanguageINI.ReadString('Edit', 'Copy', 'Copy');
  MainForm.Paste.Caption := LanguageINI.ReadString('Edit', 'Paste', 'Paste');
  MainForm.AlignToGrid.Caption := LanguageINI.ReadString('Edit', 'Align to grid', 'Align to grid');
  MainForm.TBXItem20.Caption := LanguageINI.ReadString('Edit', 'Send to back', 'Send to back'); //Send to back
  MainForm.TBXItem21.Caption := LanguageINI.ReadString('Edit', 'Bring to front', 'Bring to Front'); //Bring to front
  MainForm.EditMode1.Caption := LanguageINI.ReadString('Edit', 'Edit Mode', 'Edit Mode');

//Search:
MainForm.TBXSubmenuItem1.Caption := LanguageINI.ReadString('Menu Bar', 'Search', 'Search');
  MainForm.TBXItem8.Caption := LanguageINI.ReadString('Search', 'Find', 'Find'); //Find item
  MainForm.TBXItem9.Caption := LanguageINI.ReadString('Search', 'Find and Replace', 'Find and Replace');
  MainForm.TBXItem10.Caption := LanguageINI.ReadString('Search', 'Go to line', 'Go to Line');

//Run:
MainForm.TBXSubmenuItem2.Caption := LanguageINI.ReadString('Menu Bar', 'Run', 'Run');
  MainForm.CompileRun1.Caption := LanguageINI.ReadString('Run', 'Compile and Run', 'Compile && Run');
  MainForm.Compile1.Caption := LanguageINI.ReadString('Run', 'Compile', 'Compile');

//Project:
MainForm.TBXSubmenuItem3.Caption := LanguageINI.ReadString('Menu Bar', 'Project', 'Project');
  MainForm.TBXItem25.Caption := LanguageINI.ReadString('Project', 'Change Icon', 'Change Icon');

⌨️ 快捷键说明

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