📄 main.pas
字号:
end;
procedure TMainForm.SetMenuItemChecks;
begin
case DMEER.DisplayMode of
1: DisplayEntityLevelMI.Checked:=True;
2: DisplayPrimaryKeyLevelMI.Checked:=True;
3: DisplayAttributeLevelMI.Checked:=True;
end;
PhysicalSchemaLevelMI.Checked:=DMEER.DisplayPhysicalSchema;
case DMEER.Notation of
1: NotationStandardMI.Checked:=True;
2: NotationErwinMI.Checked:=True;
3: NotationStandard2MI.Checked:=True;
4: NotationCrowsFootMI.Checked:=True;
end;
DisplayRelationNamesMI.Checked:=DMEER.DisplayRelationNames;
ListTableIndicesMI.Checked:=DMEER.DisplayTableIndices;
end;
procedure TMainForm.DBDesignerOptionsMIClick(Sender: TObject);
begin
OptionsForm:=TOptionsForm.Create(self);
try
OptionsForm.ShowModal;
finally
OptionsForm.Free;
end;
end;
procedure TMainForm.DisplayRelationNamesMIClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=Not(TMenuItem(Sender).Checked);
DMEER.DisplayRelationNames:=TMenuItem(Sender).Checked;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
TEERForm(ActiveMDIChild).EERModel.Refresh;
end;
procedure TMainForm.ResetPalettePositionsMIClick(Sender: TObject);
begin
PaletteToolsForm.Top:=60;
PaletteToolsForm.Left:=8;
PaletteNavForm.Width:=221;
PaletteNavForm.Height:=173;
PaletteDataTypesForm.Width:=221;
PaletteDataTypesForm.Height:=229;
PaletteModelFrom.Width:=221;
PaletteModelFrom.Height:=192;
PaletteNavForm.Top:=45;
PaletteNavForm.Left:=Left+Width-PaletteNavForm.Width-25;
PaletteDataTypesForm.Top:=244;
PaletteDataTypesForm.Left:=Left+Width-PaletteDataTypesForm.Width-25;
PaletteModelFrom.Top:=499;
PaletteModelFrom.Left:=Left+Width-PaletteModelFrom.Width-25;
DMMain.SaveWinPos(PaletteToolsForm, False);
DMMain.SaveWinPos(PaletteNavForm, False);
DMMain.SaveWinPos(PaletteDataTypesForm, False);
DMMain.SaveWinPos(PaletteModelFrom, False);
end;
procedure TMainForm.PageSetupMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
HidePalettes;
EERPageSetupForm:=TEERPageSetupForm.Create(self);
try
EERPageSetupForm.SetModel(TEERForm(ActiveMDIChild).EERModel);
EERPageSetupForm.ShowModal;
finally
EERPageSetupForm.Free;
end;
ShowPalettes;
SetFocus;
end;
end;
procedure TMainForm.NavigatorInfoMIClick(Sender: TObject);
begin
NavigatorInfoMI.Checked:=Not(NavigatorInfoMI.Checked);
PaletteNavForm.Visible:=NavigatorInfoMI.Checked;
end;
procedure TMainForm.SaveModelasImageMIClick(Sender: TObject);
var ModelBmp: TBitmap;
theSaveDialog: TSaveDialog;
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
theSaveDialog:=TSaveDialog.Create(nil);
try
{$IFDEF MSWINDOWS}
//On Windows use native Win32 Open Dlg
theSaveDialog.UseNativeDialog:=True;
theSaveDialog.OnShow:=DMMain.OnOpenSaveDlgShow;
{$ENDIF}
theSaveDialog.Title:=DMMain.GetTranslatedMessage('Save Model As ...', 12);
theSaveDialog.Width:=600;
theSaveDialog.Height:=450;
theSaveDialog.DefaultExt:='bmp';
if(DirectoryExists(DMGUI.RecentSaveModelAsImageDir))then
theSaveDialog.InitialDir:=DMGUI.RecentSaveModelAsImageDir
else
theSaveDialog.InitialDir:='';
theSaveDialog.Filter:=DMMain.GetTranslatedMessage('PNG files (*.png)|*.png|Bitmap files (*.bmp)|*.bmp', 13);
if(theSaveDialog.Execute)then
begin
DMGUI.RecentSaveModelAsImageDir:=ExtractFilePath(theSaveDialog.Filename);
if(FileExists(theSaveDialog.Filename))then
if(MessageDlg(DMMain.GetTranslatedMessage('The file [%s] '+
'already exists. '#13#10+
'Do you want to overwrite this file?', 14, ExtractFileName(theSaveDialog.Filename)), mtInformation,
[mbYes, mbNo], 0)=mrNo)then
Exit;
//Save File
ModelBmp:=TBitmap.Create;
try
TEERForm(ActiveMDIChild).EERModel.PaintModelToImage(ModelBmp, (TMenuItem(Sender).Tag=2));
//Use this function to save PNGs, too
DMMain.SaveBitmap(ModelBmp.Handle, theSaveDialog.Filename, ExtractFileExt(theSaveDialog.Filename));
finally
ModelBmp.Free;
end;
end;
finally
theSaveDialog.Free;
end;
end;
end;
procedure TMainForm.ShowForeignKeysMIClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=Not(TMenuItem(Sender).Checked);
DMEER.ShowForeignKeys:=TMenuItem(Sender).Checked;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
TEERForm(ActiveMDIChild).EERModel.Refresh;
end;
procedure TMainForm.DisplayPageGridMIClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=Not(TMenuItem(Sender).Checked);
DMEER.DisplayPaperGrid:=TMenuItem(Sender).Checked;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
TEERForm(ActiveMDIChild).EERModel.GridPaintBox.Visible:=TMenuItem(Sender).Checked;
end;
procedure TMainForm.ListTableIndicesMIClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=Not(TMenuItem(Sender).Checked);
DMEER.DisplayTableIndices:=TMenuItem(Sender).Checked;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
TEERForm(ActiveMDIChild).EERModel.Refresh;
end;
procedure TMainForm.PrintMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
HidePalettes;
EERPageSetupForm:=TEERPageSetupForm.Create(self);
try
EERPageSetupForm.SetModel(TEERForm(ActiveMDIChild).EERModel);
EERPageSetupForm.HideEdits;
EERPageSetupForm.ShowModal;
finally
EERPageSetupForm.Free;
end;
ShowPalettes;
SetFocus;
end;
end;
procedure TMainForm.SelectAllMIClick(Sender: TObject);
var i: integer;
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
with TEERForm(ActiveMDIChild).EERModel do
begin
//Set Font for all EER-Objects
for i:=ComponentCount-1 downto 0 do
if(Components[I].Classparent=TEERObj)then
TEERObj(Components[I]).SetSelected(True);
end;
TEERForm(ActiveMDIChild).EERModel.Refresh;
end;
end;
procedure TMainForm.ActivateEERMIOnShow(Sender: TObject);
begin
if(Sender.ClassnameIs('TMenuItem'))then
begin
TMenuItem(Sender).Enabled:=False;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
TMenuItem(Sender).Enabled:=True;
end;
end;
procedure TMainForm.SQLCreateScriptMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
EERExportSQLScriptFrom:=TEERExportSQLScriptFrom.Create(self);
try
EERExportSQLScriptFrom.SetModel(TEERForm(ActiveMDIChild).EERModel);
EERExportSQLScriptFrom.ShowModal;
finally
EERExportSQLScriptFrom.Free;
end;
end;
end;
procedure TMainForm.ReverseEngineeringMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
HidePalettes;
EERReverseEngineeringForm:=TEERReverseEngineeringForm.Create(self);
try
if(EERReverseEngineeringForm.SetData(TEERForm(ActiveMDIChild).EERModel))then
EERReverseEngineeringForm.ShowModal;
finally
EERReverseEngineeringForm.Free;
ShowPalettes;
end;
end;
SetFocus;
end;
procedure TMainForm.CopyMIClick(Sender: TObject);
var s, ctext: string;
f: TextFile;
i, anz: integer;
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
if(TEERForm(ActiveMDIChild).EERModel.GetSelectedObjsCount>0)then
begin
s:='';
TEERForm(ActiveMDIChild).EERModel.SaveToFile(
DMMain.SettingsPath+'clipboard.xml',
False, True, False);
anz:=0;
for i:=0 to TEERForm(ActiveMDIChild).EERModel.ComponentCount-1 do
begin
if(TEERForm(ActiveMDIChild).EERModel.Components[i].ClassParent=TEERObj)then
if(TEERObj(TEERForm(ActiveMDIChild).EERModel.Components[i]).Selected)then
inc(anz);
end;
AssignFile(f, DMMain.SettingsPath+'clipboard.xml');
try
Reset(f);
ctext:='';
while(Not(EOF(f)))do
begin
ReadLn(f, s);
ctext:=ctext+s+#13#10;
end;
Clipboard.AsText:=ctext;
finally
CloseFile(f);
end;
DeleteFile(DMMain.SettingsPath+'clipboard.xml');
DMGUI.SetStatusCaption(DMMain.GetTranslatedMessage('%s Object(s) copied to clipboard.', -1, IntToStr(anz)));
end;
end;
procedure TMainForm.PasteMIClick(Sender: TObject);
var f: TextFile;
ctext: string;
i, anz: integer;
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
if(Clipboard.AsText<>'')then
begin
//ctext:=Clipboard.AsText;
ctext:=DMEER.AssignNewIDsToEERObjects(Clipboard.AsText, True);
AssignFile(f, DMMain.SettingsPath+'clipboard.xml');
try
Rewrite(f);
Write(f, ctext);
finally
CloseFile(f);
end;
for i:=0 to TEERForm(ActiveMDIChild).EERModel.ComponentCount-1 do
if(TEERForm(ActiveMDIChild).EERModel.Components[i].ClassParent=TEERObj)then
if(TEERObj(TEERForm(ActiveMDIChild).EERModel.Components[i]).Selected)then
TEERObj(TEERForm(ActiveMDIChild).EERModel.Components[i]).SetSelected(False);
//Load Clipboard, ignore Settings, Select
TEERForm(ActiveMDIChild).EERModel.LoadFromFile(
DMMain.SettingsPath+'clipboard.xml',
False, True);
anz:=0;
for i:=0 to TEERForm(ActiveMDIChild).EERModel.ComponentCount-1 do
begin
if(TEERForm(ActiveMDIChild).EERModel.Components[i].ClassParent=TEERObj)then
if(TEERTable(TEERForm(ActiveMDIChild).EERModel.Components[i]).Selected)then
inc(anz);
end;
DeleteFile(DMMain.SettingsPath+'clipboard.xml');
DMGUI.SetStatusCaption(DMMain.GetTranslatedMessage('%s Object(s) pasted from clipboard.', -1, IntToStr(anz)));
end;
end;
procedure TMainForm.PasteMIShow(Sender: TObject);
begin
TMenuItem(Sender).Enabled:=False;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
if(Copy(Clipboard.AsText, 1, 1)='<')then
TMenuItem(Sender).Enabled:=True;
end;
procedure TMainForm.CutMIClick(Sender: TObject);
begin
CopyMIClick(self);
DeleteMIClick(self);
end;
procedure TMainForm.DatabasesyncronisationMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
begin
if(TEERForm(ActiveMDIChild).EERModel.GetEERObjectCount([EERTable])=0)then
MessageDlg(DMMain.GetTranslatedMessage('There are no tables in the model which can be syncronised.', 15),
mtError, [mbOK], 0)
else
begin
HidePalettes;
EERSynchronisationForm:=TEERSynchronisationForm.Create(self);
try
if(EERSynchronisationForm.SetData(TEERForm(ActiveMDIChild).EERModel))then
EERSynchronisationForm.ShowModal;
finally
EERSynchronisationForm.Free;
ShowPalettes;
end;
end;
end;
SetFocus;
end;
procedure TMainForm.UndoMIShow(Sender: TObject);
begin
TMenuItem(Sender).Enabled:=False;
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
if(TEERForm(ActiveMDIChild).EERModel.CurrentAction>-1)then
begin
TMenuItem(Sender).Enabled:=True;
TMenuItem(Sender).Caption:=DMMain.GetTranslatedMessage('Undo', 16)+' '+
TEERForm(ActiveMDIChild).EERModel.GetActionName(
TEERActionLog(TEERForm(ActiveMDIChild).EERModel.ActionLog[
TEERForm(ActiveMDIChild).EERModel.CurrentAction]).ActionType);
end
else
begin
TMenuItem(Sender).Caption:=DMMain.GetTranslatedMessage('Undo', 16);
end;
end;
procedure TMainForm.UndoMIClick(Sender: TObject);
begin
if(ActiveMDIChild<>nil)then
if(ActiveMDIChild.Classname='TEERForm')then
if(TEERForm(ActiveMDIChild).EERModel.CurrentAction>-1)then
TEERForm(ActiveMDIChild).EERModel.UndoActions(TEERForm(ActiveMDIChild).EERModel.CurrentAction);
end;
procedure TMainForm.RedoMIShow(Sender: TObject);
begin
TMenuItem(Sender).Enabled:=False;
if(ActiveMDIChild<>nil)then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -