📄 mainform.pas
字号:
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 + -