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

📄 main.pas

📁 DBDesigner 4 is a database design system that integrates database design, modelling, creation and ma
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    if(ActiveMDIChild.Classname='TEERForm')then
      if(TEERForm(ActiveMDIChild).EERModel.CurrentAction<
        TEERForm(ActiveMDIChild).EERModel.ActionLog.Count-1)then
      begin
        TMenuItem(Sender).Enabled:=True;
        TMenuItem(Sender).Caption:=DMMain.GetTranslatedMessage('Redo', 17)+' '+
          TEERForm(ActiveMDIChild).EERModel.GetActionName(
            TEERActionLog(TEERForm(ActiveMDIChild).EERModel.ActionLog[
              TEERForm(ActiveMDIChild).EERModel.CurrentAction+1]).ActionType);
      end
      else
      begin
        TMenuItem(Sender).Caption:=DMMain.GetTranslatedMessage('Redo', 17);
      end;
end;

procedure TMainForm.RedoMIClick(Sender: TObject);
begin
  if(ActiveMDIChild<>nil)then
    if(ActiveMDIChild.Classname='TEERForm')then
      if(TEERForm(ActiveMDIChild).EERModel.CurrentAction<
        TEERForm(ActiveMDIChild).EERModel.ActionLog.Count-1)then
        TEERForm(ActiveMDIChild).EERModel.RedoActions(TEERForm(ActiveMDIChild).EERModel.CurrentAction+1);
end;

procedure TMainForm.StyleStandardMIClick(Sender: TObject);
begin
  TMenuItem(Sender).Checked:=Not(TMenuItem(Sender).Checked);
  case TMenuItem(Sender).Tag of
    0:
      Application.Style.DefaultStyle:=dsWindows;
    1:
      Application.Style.DefaultStyle:=dsMotifPlus;
    2:
      Application.Style.DefaultStyle:=dsQtSGI;
    3:
      begin
        Application.Style.DefaultStyle:=dsWindows;
        Application.Style.DefaultStyle:=dsPlatinum;
      end;
  end;
end;

procedure TMainForm.SQLDropScriptMIClick(Sender: TObject);
begin
  EERExportSQLScriptFrom:=TEERExportSQLScriptFrom.Create(self);
  try
    EERExportSQLScriptFrom.SetModel(TEERForm(ActiveMDIChild).EERModel, 1);
    EERExportSQLScriptFrom.ShowModal;
  finally
    EERExportSQLScriptFrom.Free;
  end;
end;

procedure TMainForm.OnlinedocumentationMIClick(Sender: TObject);
begin
  DMMain.ShowHelp('start', '');
end;

procedure TMainForm.VisitHomepageMIClick(Sender: TObject);
begin
  DMMain.BrowsePage('http://www.fabforce.net');
end;

procedure TMainForm.CheckfornewversionsMIClick(Sender: TObject);
begin
  DMMain.BrowsePage('http://www.fabforce.net/downloads'{?version='+DMMain.ReplaceString(Version, '.', '-')});
end;

procedure TMainForm.SaveinDatabaseMIClick(Sender: TObject);
begin
  if(ActiveMDIChild<>nil)then
    if(ActiveMDIChild.Classname='TEERForm')then
    begin
      HidePalettes;

      EERStoreInDatabaseForm:=TEERStoreInDatabaseForm.Create(self);
      try
        if(EERStoreInDatabaseForm.SetData(TEERForm(ActiveMDIChild).EERModel, True))then
          if(EERStoreInDatabaseForm.ShowModal=mrOk)then
          begin
            TEERForm(ActiveMDIChild).EERModel.IsChanged:=False;
            DisableSaveImgs;
          end;
      finally
        EERStoreInDatabaseForm.Free;
        ShowPalettes;
      end;
    end;

  SetFocus;
end;

procedure TMainForm.OpenfromDatabaseMIClick(Sender: TObject);
var theEERForm: TEERForm;
begin
  if(ActiveMDIChild=nil)then
  begin
    theEERForm:=TEERForm(NewEERModel);
  end
  else
  begin
    theEERForm:=nil;

    if(ActiveMDIChild<>nil)then
      if(ActiveMDIChild.Classname='TEERForm')then
        if(CompareText(Copy(TEERForm(ActiveMDIChild).EERModel.ModelFilename, 1, 6), 'Noname')=0)and
          (Not(TEERForm(ActiveMDIChild).EERModel.IsChanged))then
          theEERForm:=TEERForm(ActiveMDIChild);

    if(theEERForm=nil)then
      theEERForm:=TEERForm(NewEERModel);
  end;

  theEERForm.WindowState:=wsMaximized;

  //HidePalettes;

  EERStoreInDatabaseForm:=TEERStoreInDatabaseForm.Create(self);
  try
    if(EERStoreInDatabaseForm.SetData(theEERForm.EERModel, False))then
      EERStoreInDatabaseForm.ShowModal;
  finally
    EERStoreInDatabaseForm.Free;
    //ShowPalettes;
  end;

  theEERForm.SetFocus;
  sendCLXEvent(Application.MainForm.Handle, QCustomEvent_create(QEventType_RefreshPalettes, nil));

end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
//var i: integer;
begin
  CanClose:=True;

  {for i:=MDIChildCount-1 downto 0 do
  begin
    TEERForm(MDIChildren[I]).FormCloseQuery(self, CanClose);
    if(CanClose=false)then
      break;
  end;}
end;

procedure TMainForm.RefreshTmrTimer(Sender: TObject);
begin
  RefreshTmr.Enabled:=False;

  if(ActiveMDIChild<>nil)then
  begin
    if(ActiveMDIChild.Classname='TEERForm')then
    begin
      if(TEERForm(ActiveMDIChild).EERModel.IsChanged)then
        EnableSaveImgs
      else
        DisableSaveImgs;
    end;
  end
  else
  begin
    DisableSaveImgs;
    if(Assigned(PaletteNavForm))then
      PaletteNavForm.ClearModelImg;

    if(Assigned(PaletteModelFrom))then
      PaletteModelFrom.TablesTreeView.Items.Clear;
  end;
end;

procedure TMainForm.ShowPalettesTmrTimer(Sender: TObject);
var theEERForm: TForm;
  TipText: string;
  i: integer;
begin
  //Workaround for CLX Bug
  //Change Font Size to change Menu Font
  Font.Size:=Font.Size-1;
  Font.Size:=DMMain.ApplicationFontSize;

  //Refresh Menu (because of CLX bug)
  Menu:=nil;
  Menu:=MainMenu;

  if(DMGUI.ShowTipsOnStartup)then
  begin
    TipText:=DMGUI.LoadTip;

    if(TipText<>'')then
    begin
      TipsForm:=TTipsForm.Create(self);
      TipsForm.TipMemo.Text:=#13#10+TipText;
      TipsForm.Show;
    end;
  end;

  //Set DockPnls Height
  NavPnl.Height:=173+20+4;
  NavHeaderPnl.Font.Color:=$00AAAAAA;
  DatatypesPnl.Height:=229+20+4;
  DatatypesHeaderPnl.Font.Color:=$00AAAAAA;
  ModelHeaderPnl.Font.Color:=$00AAAAAA;


  ShowPalettesTmr.Enabled:=False;

  //Create Main Palette
  PaletteToolsForm:=TPaletteToolsForm.Create(self);
  PaletteToolsForm.Top:=50;
  PaletteToolsForm.Left:=15;

  DMEER.SetWorkTool(wtPointer);

  //Create NavInfoPalette
  PaletteNavForm:=TPaletteNavForm.Create(self);
  PaletteNavForm.Top:=44;
  PaletteNavForm.Left:=Screen.Width-PaletteNavForm.Width-25;


  //Create DatatypesPalette
  PaletteDataTypesForm:=TPaletteDataTypesForm.Create(self);
  PaletteDataTypesForm.Top:=60;
  PaletteDataTypesForm.Left:=Screen.Width-PaletteDataTypesForm.Width-25;


  //Create ModelPalette
  PaletteModelFrom:=TPaletteModelFrom.Create(self);
  PaletteModelFrom.Top:=380;
  PaletteModelFrom.Left:=Screen.Width-PaletteModelFrom.Width-25;


  if(PaletteNavForm.Left>Screen.Width)or
    (PaletteDataTypesForm.Left>Screen.Width)or
    (PaletteModelFrom.Left>Screen.Width)or
    (DMGUI.ApplRunFirstTime)then
    ResetPalettePositionsMIClick(self);

  {$IFDEF LINUX}
  //Current BUG with Linux Window Positions
  ResetPalettePositionsMIClick(self);
  {$ENDIF}

  //Dock Query Pnl
  DockedEditorQueryForm:=TEditorQueryForm.Create(self);
  with TEditorQueryForm(DockedEditorQueryForm) do
  begin
    QueryDockPnl.Parent:=QueryPnl;
    ShowSQLImgClick(self);

    //Make the Pnls wider
    {SQLPnl.Width:=450;
    StoredSQLPnl.Width:=210;}

    //Hide Right Pnl
    RightPnl.Visible:=False;
    LeftPnl.Width:=34;

    SetLayout(DMGUI.DockedQueryPnlMode, False);
  end;


  if(Not(DMGUI.ShowPalettesDocked))then
  begin
    PaletteNavForm.Show;
    PaletteDataTypesForm.Show;
    PaletteModelFrom.Show;
  end
  else
  begin
    NavigatorInfoMI.Checked:=False;
    DatatypesMI.Checked:=False;
    DBModelMI.Checked:=False;
      
    DockPalettesMIClick(self);
  end;

  {$IFDEF LINUX}
  //Don't show Tools Palette in Linux because of win-width bug
  ToolsMI.Visible:=False;
  {$ENDIF}

  ToolsMI.Checked:=False;
  ToolsdockedMI.Checked:=True;

  if(DMEER.InitWorkMode=2)then
    DesignimgClick(self);

  BuildPluginMenus;

  //Check all params if one of them is a existing file, then open it
  for i:=1 to ParamCount do
    if(Copy(ParamStr(i), 1, 1)<>'-')then
      if(FileExists(ParamStr(i)))then
      begin
        OpenFile(ParamStr(1), False);
        break;
      end;

  //Reopen last file when no para was specified
  if(ActiveMDIChild=nil)then
  begin
    if(DMGUI.ReopenLastFile)and(DMGUI.GetRecentFileCount>0)then
      OpenFile(DMGUI.GetRecentFileName(0), False)
    else
    begin
      //or create new
      theEERForm:=NewEERModel;
      theEERForm.WindowState:=wsMaximized;
    end;
  end;

  //-----------------------------------------
  //Workaround Code because of Delphi BUG
  {if(DMMain.NormalizeEditorForms)then
    DMMain.ApplicationActiveTimer.Enabled:=True;}
  //Workaround Code because of Delphi BUG END
  //-----------------------------------------

  SplashForm.Close;

  Cursor:=crArrow;
end;

procedure TMainForm.wtPointerSBtnClick(Sender: TObject);
begin
  DMEER.SetWorkTool(TSpeedButton(Sender).Tag);
end;

procedure TMainForm.wtPointerSBtnMouseEnter(Sender: TObject);
begin
  if(TSpeedButton(Sender).Hint='')then
    if(TSpeedButton(Sender).Tag-1<DMEER.WorkToolLabelTexts.Count)then
      TSpeedButton(Sender).Hint:=DMEER.WorkToolLabelTexts[TSpeedButton(Sender).Tag-1];
end;

procedure TMainForm.DesignimgClick(Sender: TObject);
begin
  SetWorkMode(wmQuery);
end;

procedure TMainForm.QueryImgClick(Sender: TObject);
begin
  SetWorkMode(wmDesign);
end;

procedure TMainForm.SyncImgClick(Sender: TObject);
begin
  MainForm.DatabasesyncronisationMIClick(self);
end;

procedure TMainForm.DisableSaveImgs;
begin
  NotSavedImg.SendToBack;
  Save2DiskImg.SendToBack;
  Save2DBImg.SendToBack;
end;

procedure TMainForm.EnableSaveImgs;
begin
  NotSavedImg.BringToFront;
  Save2DiskImg.BringToFront;
  Save2DBImg.BringToFront;
end;

procedure TMainForm.Save2DiskImgClick(Sender: TObject);
begin
  SaveMIClick(self);
end;

procedure TMainForm.Save2DBImgClick(Sender: TObject);
begin
  SaveinDatabaseMIClick(self);
end;

function TMainForm.EventFilter(Sender: QObjectH; Event: QEventH): Boolean;
var Pint: ^Integer;
  Ppoint: ^TPoint;
  theStr: PChar;
  pos: integer;
  theModel: TEERModel;
  theEERObj: TEERObj;
begin
  //Catch UserDefined Msg
  Result := False;

  if(QEvent_type(Event)=QEventType_EditTable)then
  begin
    if(DMEER.WorkMode=wmDesign)then
    begin
      //Only one table editor at the same time
      EditorTableForm:=TEditorTableForm(DMMain.GetFormByName('EditorTableForm'));
      if(EditorTableForm=nil)then
        EditorTableForm:=TEditorTableForm.Create(self)
      else
        EditorTableForm.ApplyChanges;

      EditorTableForm.SetTable(QCustomEvent_data(QCustomEventH(Event)));
      EditorTableForm.Show;
      EditorTableForm.BringToFront;
      //Set Focus because ToolWindows don't seem to be focused automatically
      try
        if(EditorTableForm.CanFocus)then
          EditorTableForm.SetFocus;
      except
      end;
    end
    else
    begin
      //Only one table editor at the same time
      EditorQueryForm:=TEditorQueryForm(DMMain.GetFormByName('EditorTableDataForm'));
      if(EditorQueryForm=nil)then
        EditorQueryForm:=TEditorQueryForm.Create(self)
      else
        EditorQueryForm.ApplyChanges;

      if(EditorQueryForm.SetTable(QCustomEvent_data(QCustomEventH(Event))))then
      begin
        EditorQueryForm.Show;
        EditorQueryForm.BringToFront;

        //Set Focus because ToolWindows don't seem to be focused automatically
        try
          if(EditorQueryForm.CanFocus)then
            EditorQueryForm.SetFocus;
        except
        end;
      end
      else
        EditorQueryForm.Free;
    end;

    Result:=True;
  end;

  if(QEvent_type(Event)=QEventType_EditRel)then
  begin
    EditorRelationForm:=TEditorRelationForm.Create(self);

    EditorRelationForm.SetRelation(QCustomEvent_data(QCustomEventH(Event)));
    EditorRelationForm.Show;

⌨️ 快捷键说明

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