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

📄 main.pas

📁 DBDesigner 4 is a database design system that integrates database design, modelling, creation and ma
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + -