📄 mainform.pas
字号:
begin
SaveProject(ProjectInfo.ProjectName);
end;
procedure TFMainForm.CloseActiveFile;
// Close active unit and form
var
Form: TForm;
begin
if EditorForm.PageControl1.ActivePage = nil then Exit;
if TmwCustomEdit(EditorForm.PageControl1.ActivePage.Controls[0]).Modified then
SaveFile(EditorForm.Caption);
OpenUnitList[ActivePasEditor.Tag].Closed:= True;
EditorForm.PageControl1.ActivePage.Free;
EditorForm.PageControl1.SelectNextPage(True);
Form:= GetLinkForm;
if Form <> nil then Form.Free;
end;
procedure TFMainForm.FileCloseItemClick(Sender: TObject);
begin
CloseActiveFile;
end;
procedure TFMainForm.EditFrontItemClick(Sender: TObject);
begin
TProxyForm(ActiveForm).SelectControl.BringToFront;
end;
procedure TFMainForm.EditBackItemClick(Sender: TObject);
begin
TProxyForm(ActiveForm).SelectControl.SendToBack;
end;
procedure TFMainForm.EditAlignItemClick(Sender: TObject);
var
AlignDialog:TAlignDialog;
begin
AlignDialog:= TAlignDialog.Create(self);
AlignDialog.ShowModal;
AlignDialog.Free;
end;
procedure TFMainForm.EditSizeItemClick(Sender: TObject);
var
SizeDialog:TSizeDialog;
begin
SizeDialog:= TSizeDialog.Create(self);
SizeDialog.ShowModal;
SizeDialog.Free;
end;
procedure TFMainForm.HelpContextItemClick(Sender: TObject);
begin
Application.HelpCommand(HELP_FINDER, 0);
end;
procedure TFMainForm.EditScaleItemClick(Sender: TObject);
var
ScaleForm:TScaleForm;
begin
ScaleForm:= TScaleForm.Create(self);
ScaleForm.ShowModal;
ScaleForm.Free;
end;
procedure TFMainForm.FormDestroy(Sender: TObject);
begin
if FileExistOnPath(FilePath + TempFile) then DeleteFile(FilePath + TempFile);
if FileExistOnPath(FilePath + TempForm) then DeleteFile(FilePath + TempForm);
end;
procedure TFMainForm.FileSaveProjectAsItemClick(Sender: TObject);
begin
SaveProject(TempProject);
end;
procedure TFMainForm.MakeBitmap(Component:TSpeedButton;ComponentName:string);
// Make bitmap of component
var
ResName: array[0..64] of Char;
ResBitmap: TBitmap;
begin
ResBitmap := TBitmap.Create;
try
StrPLCopy(ResName, ComponentName, SizeOf(ResName));
AnsiUpper(ResName);
ResBitmap.Handle := LoadBitmap(hInstance, ResName);
if ResBitmap.Handle = 0 then
ResBitmap.Handle := LoadBitmap(hInstance, 'DEFAULT');
Component.Glyph:= ResBitmap;
finally
ResBitmap.Free;
end;
end;
procedure TFMainForm.LoadDefaultButton(TabSheet:TTabSheet);
// Load default button
var
Button:TSpeedButton;
procedure CreateButton(ButtonName:string;Index:Integer);
begin
Button:=TSpeedButton.Create(TabSheet);
with Button do
begin
Name := UniqueName(Button);
if Index = 0 then Down:= True;
Flat := True;
GroupIndex:= 1;
Height := 28;
Left := Index * 29;
Parent := TabSheet;
Top := 5;
Width := 28;
OnClick := sbButtonClick;
end;
MakeBitmap(Button,ButtonName);
end;
begin
CreateButton('CURSOR',0);
end;
procedure TFMainForm.CreatePalettePage(PalettePage:string);
// Create component of palette page (page name is PalettePage)
var
TabSheet:TTabSheet;
Button:TSpeedButton;
ComponentNames, ComponentName:string;
Temp, Pos1, Index:Integer;
procedure CreateButton(ButtonName:string);
begin
Button:=TSpeedButton.Create(TabSheet);
with Button do
begin
Name := UniqueName(Button);
Flat := True;
GroupIndex:= 1;
Height := 28;
Hint := ButtonName;
Left := Index * 29;
Parent := TabSheet;
ShowHint := True;
Top := 5;
Width := 28;
OnClick := sbButtonClick;
end;
MakeBitmap(Button,ButtonName);
end;
begin
TabSheet:=TTabSheet.Create(self);
with TabSheet do
begin
PageControl := PageControl1;
Caption:= PalettePage;
Name := UniqueName(TabSheet);
end;
LoadDefaultButton(TabSheet);
ComponentNames:= IniFile.ReadString('Palette',PalettePage, '');
if ComponentNames = '' then Exit;
Pos1 := 0;
Temp := 1;
Index:= 1;
while True do
begin
Pos1:= NPos(';', ComponentNames, Temp, Length(ComponentNames));
if Pos1 = 0 then Break;
ComponentName:= Copy(ComponentNames, Temp, Pos1 - Temp -1);
CreateButton(ComponentName);
Temp:= Pos1;
Inc(Index);
end;
end;
procedure TFMainForm.LoadDefaultPalette();
// Load default palette when palette not exists
begin
with IniFile do
begin
WriteString('Palette', 'Standard' ,'TMainMenu;TPopupMenu;TLabel;TEdit;TMemo;TButton;TCheckBox;TRadioButton;TListBox;TComboBox;TScrollBar;TGroupBox;TRadioGroup;TPanel;');
WriteString('Palette', 'Addtional' ,'TBitBtn;TSpeedButton;TMaskEdit;TStringGrid;TDrawGrid;TImage;TShape;TBevel;TScrollBox;TCheckListBox;TSplitter;TStaticText;');
WriteString('Palette', 'Win32' ,'TTabControl;TPageControl;TImageList;TRichEdit;TTrackBar;TProgressBar;TUpDown;THotKey;TAnimate;TDateTimePicker;TTreeView;TListView;THeaderControl;TStatusBar;TToolBar;TCoolBar;');
WriteString('Palette', 'System' ,'TTimer;TPaintBox;TMediaPlayer;TOleContainer;TDdeClientConv;TDdeClientItem;TDdeServerConv;TDdeServerItem;');
// WriteString('Palette', 'Internet' ,'TClientSocket;TServerSocket;TWebDispatcher;TPageProducer;TQueryTableProducer;TDataSetTableProducer;TFTP;THTML;THTTP;TNNTP;TPOP;TSMTP;TTCP;TUDP;');
WriteString('Palette', 'Data Access' ,'TDataSource;TTable;TQuery;TStoredProc;TDatabase;TSession;TBatchMove;TUpdateSQL');
WriteString('Palette', 'Data Controls' ,'TDBGrid;TDBNavigator;TDBText;TDBEdit;TDBMemo;TDBImage;TDBListBox;TDBComboBox;TDBCheckBox;TDBRadioGroup;TDBLookupListBox;TDBLookupComboBox;TDBRichEdit;TDBCtrlGrid;TDBChart;');
WriteString('Palette', 'QReport' ,'TQuickRep;TQRSubDetail;TQRBand;TQRChildBand;TQRGroup;TQRLabel;TQRDBText;TQRExpr;TQRSysData;TQRMemo;TQRRichText;TQRDBRichText;TQRShape;TQRImage;TQRDBImage;TQRCompositeReport;TQRPreview;TQRChart;');
WriteString('Palette', 'Dialogs' ,'TOpenDialog;TSaveDialog;TOpenPictureDialog;TSavePictureDialog;TFontDialog;TColorDialog;TPrintDialog;TPrinterSetupDialog;TFindDialog;TReplaceDialog;');
WriteString('Palette', 'Win 3.1' ,'TDBLookupList;TDBLookupCombo;TTabSet;TOutline;TTabbedNotebook;TNotebook;THeader;TFileListBox;TDirectoryListBox;TDriveComboBox;TFilterComboBox;');
WriteString('Palette', 'Samples' ,'TGauge;TColorGrid;TSpinButton;TSpinEdit;TCalendar');
end;
end;
procedure TFMainForm.LoadingComponents;
// Dynamic loading components
var
PaletteList:TStringList;
I:Integer;
PalettePage:string;
begin
PaletteList:= TStringList.Create;
ReadClass;
IniFile.ReadSectionValues('Palette',PaletteList);
if PaletteList.Count <= 0 then
begin
LoadDefaultPalette;
IniFile.ReadSectionValues('Palette',PaletteList);
end;
for I:=0 to PaletteList.Count - 1 do
begin
PalettePage:= PaletteList.Names[I];
if PalettePage <> '' then CreatePalettePage(PalettePage);
end;
end;
procedure TFMainForm.ComponentNewComponentItemClick(Sender: TObject);
begin
NewComponent;
end;
procedure TFMainForm.ViewAlignItemClick(Sender: TObject);
begin
CreateShowModal(TAlignPalette);
end;
procedure TFMainForm.Breakpoints1Click(Sender: TObject);
begin
CreateShowModal(TBPWindowForm);
end;
procedure TFMainForm.ViewBrowseItemClick(Sender: TObject);
begin
CreateShowModal(TBrowserForm);
end;
procedure TFMainForm.EditCreateOrderItemClick(Sender: TObject);
begin
CreateShowModal(TCreationOrderDlg);
end;
procedure TFMainForm.RunEvaluateItemClick(Sender: TObject);
begin
CreateShowModal(TEvalDialog);
end;
procedure TFMainForm.FileNewItemClick(Sender: TObject);
begin
CreateShowModal(TGalleryBrowseDlg);
end;
procedure TFMainForm.Modules1Click(Sender: TObject);
begin
CreateShowModal(TModulesView);
end;
procedure TFMainForm.ToolsGalleryItemClick(Sender: TObject);
begin
CreateShowModal(TRepositConfigDlg);
end;
procedure TFMainForm.RunParametersItemClick(Sender: TObject);
begin
CreateShowModal(TRunParamsDlg);
end;
procedure TFMainForm.EditTabOrderItemClick(Sender: TObject);
begin
CreateShowModal(TTabOrderDlg);
end;
procedure TFMainForm.RunAddWatchItemClick(Sender: TObject);
begin
CreateShowModal(TWatchEditDlg);
end;
procedure TFMainForm.ComponentConfigurePaletteClick(Sender: TObject);
var
Options:TOptions;
begin
Options:= TOptions.Create(self);
with Options do
begin
PrefPage.Free;
CompilerPage.Free;
EditorPage.Free;
EdDispPage.Free;
EdColorPage.Free;
BrowPage.Free;
CodeInsight.Free;
PageControl1.ActivePage:= PalPage;
GetPalette;
ShowModal;
Free;
end;
end;
procedure TFMainForm.FileUseUnitItemClick(Sender: TObject);
begin
FileUseUnit;
end;
procedure TFMainForm.FileUseUnit;
var
I: Integer;
begin
// 橇肺璃飘俊 器窃等 蜡聪飘狼 格废阑 焊咯霖促.
with TViewForm.Create(self) do
begin
Caption:= 'Use Unit';
FileList.Items.Clear;
for I:= 0 to ProjectInfo.UnitItems.Count - 1 do
FileList.Items.Add(GetNetFileName(ProjectInfo.UnitItems[I]));
if ShowModal <> mrCancel then
EditorForm.AddUseUnit(FileName.Text);
Free;
end;
end;
procedure TFMainForm.EditRedoItemClick(Sender: TObject);
begin
with ActivePasEditor do
if CanRedo then Redo;
EditorForm.Show;
end;
procedure TFMainForm.ComponentInstallComponentClick(Sender: TObject);
begin
AddtoPackage1Click;
end;
procedure TFMainForm.AddtoPackage1Click;
begin
CreateShowModal(TInstallComponent);
end;
procedure TFMainForm.ComponentInstallPackagesClick(Sender: TObject);
begin
InstallPackagesClick;
end;
procedure TFMainForm.InstallPackagesClick;
var
ProjOption: TProjOption;
begin
ProjOption:= TProjOption.Create(self);
with ProjOption do
begin
FormsPage.Free;
ApplicationPage.Free;
CompilerPage.Free;
LinkerPage.Free;
DirCondPage.Free;
VersionInfo.Free;
PageControl1.ActivePage:= PakListSheet;
LoadKnownPackages;
ShowModal;
Free;
end;
end;
procedure TFMainForm.Configure2Click(Sender: TObject);
begin
ComponentConfigurePaletteClick(self);
end;
procedure TFMainForm.Hide2Click(Sender: TObject);
// Hide Component Palette
begin
Hide2.Checked:= not Hide2.Checked;
PageControl1.Visible:= not Hide2.Checked;
ViewPaletteItem.Checked:= not Hide2.Checked;
end;
procedure TFMainForm.ProcessShowHint(var HintStr: string; var CanShow: Boolean;
var HintInfo: THintInfo);
begin
if HintInfo.HintControl = nil then Exit;
if (HintInfo.HintControl).Parent = SpeedBar then
CanShow:= ShowSpeedbarHint.Checked
else if ((HintInfo.HintControl).Parent).ClassName = 'TTabSheet' then
CanShow:= ShowPaletteHints.Checked;
end;
procedure TFMainForm.ShowSpeedbarHintClick(Sender: TObject);
begin
ShowSpeedbarHint.Checked:= not ShowSpeedbarHint.Checked;
end;
procedure TFMainForm.ShowPaletteHintsClick(Sender: TObject);
begin
ShowPaletteHints.Checked:= not ShowPaletteHints.Checked;
end;
procedure TFMainForm.SpeedbarHelpItemClick(Sender: TObjec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -