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

📄 optionsmodel.pas

📁 功能强大的ER图建模工具的源代码。 可以代替ERWin了
💻 PAS
📖 第 1 页 / 共 2 页
字号:

  EERModel.CreateFKRefDefIndex:=CreateFKRefDefIndexCBox.Checked;

  //Refresh Grid Btn
  sendCLXEvent(Application.MainForm.Handle, QCustomEvent_create(QEventType_RefreshGridBtn, EERModel));

  EERModel.CreateSQLforLinkedObjects:=CreateSQLforLinkedObjectsCBox.Checked;

  EERModel.CheckAllRelations;

  EERModel.ModelHasChanged;
end;

procedure TOptionsModelForm.SetModel(theModel: TEERModel);
var i: integer;
begin
  EERModel:=theModel;

  ModelNameEd.Text:=EERModel.GetModelName;
  VersionEd.Text:=EERModel.VersionStr;
  ModelCommentsMemo.Text:=EERModel.ModelComments;

  DBTypeEd.Text:=EERModel.DatabaseType;

  TablePrefixCLBox.Items.Assign(EERModel.TablePrefix);
  TablePrefixCLBox.Items[0]:=TablePrefixCLBox.Items[0];
  TablePrefixCLBox.Checked[EERModel.DefaultTablePrefix]:=True;

  DefDatatypeCBox.Items.Clear;
  for i:=0 to EERModel.Datatypes.Count-1 do
    DefDatatypeCBox.Items.Add(TEERDatatype(EERModel.Datatypes[i]).TypeName);

  DefDatatypeCBox.ItemIndex:=EERModel.Datatypes.IndexOf(EERModel.GetDataType(EERModel.DefaultDataType));

  FontCBox.ItemIndex:=FontCBox.Items.IndexOf(EERModel.DefModelFont);


  RegionColorsMemo.Text:=EERModel.RegionColors.Text;


  //At lease 2 Rows (1 fixed an 1 data)
  if(EERModel.PluginData.Count>0)then
    PluginRecordsStringGrid.RowCount:=EERModel.PluginData.Count+1
  else
    PluginRecordsStringGrid.RowCount:=2;

  for i:=0 to PluginRecordsStringGrid.ColCount-1 do
    PluginRecordsStringGrid.Cols[i].Clear;

  PluginRecordsStringGrid.Cells[0, 0]:=DMMain.GetTranslatedMessage('Plugin Name', 223);
  PluginRecordsStringGrid.Cells[1, 0]:=DMMain.GetTranslatedMessage('Obj.ID', 224);

  for i:=0 to EERModel.PluginData.Count-1 do
  begin
    PluginRecordsStringGrid.Cells[0, 1+i]:=TEERPluginData(EERModel.PluginData[i]).PluginName;
    PluginRecordsStringGrid.Cells[1, 1+i]:=IntToStr(TEERPluginData(EERModel.PluginData[i]).Obj_id);
  end;

  PluginRecordsStringGrid.Row:=1;
  PluginRecordsStringGrid.Col:=0;
  PluginRecordsStringGridClick(self);


  UsePosGridCBox.Checked:=EERModel.UsePositionGrid;
  GridXEd.Text:=IntToStr(EERModel.PositionGrid.X);
  GridYEd.Text:=IntToStr(EERModel.PositionGrid.Y);
  UsePosGridCBoxClick(self);

  TableNameInRefsCBox.Checked:=EERModel.TableNameInRefs;
  DefaultTableTypeCBox.ItemIndex:=EERModel.DefaultTableType;
  ActivateRefDefForNewRelationsCBox.Checked:=EERModel.ActivateRefDefForNewRelations;

  FKPrefixEd.Text:=EERModel.FKPrefix;
  FKPostfixEd.Text:=EERModel.FKPostfix;

  CreateFKRefDefIndexCBox.Checked:=EERModel.CreateFKRefDefIndex;

  CreateSQLforLinkedObjectsCBox.Checked:=EERModel.CreateSQLforLinkedObjects;

  CanvasWidthEd.Text:=IntToStr(EERModel.EERModel_Width);
  CanvasHeightEd.Text:=IntToStr(EERModel.EERModel_Height);  
end;

procedure TOptionsModelForm.NewTblPrefixBtnClick(Sender: TObject);
var s: string;
begin
  s:='';

  DMMain.ShowStringEditor(DMMain.GetTranslatedMessage('Enter new Table Prefix', 225),
    DMMain.GetTranslatedMessage('New Table Prefix:', 226), s);
  if(s<>'')then
    TablePrefixCLBox.Items.Add(s);
end;

procedure TOptionsModelForm.TablePrefixCLBoxClickCheck(Sender: TObject);
var i: integer;
begin
  for i:=0 to TablePrefixCLBox.Items.Count-1 do
    TablePrefixCLBox.Checked[i]:=False;

  if(TablePrefixCLBox.ItemIndex>-1)then
    TablePrefixCLBox.Checked[TablePrefixCLBox.ItemIndex]:=True
  else
    TablePrefixCLBox.Checked[0]:=True;
end;

procedure TOptionsModelForm.TablePrefixCLBoxDblClick(Sender: TObject);
var s: string;
begin
  s:=TablePrefixCLBox.Items[TablePrefixCLBox.ItemIndex];

  DMMain.ShowStringEditor(DMMain.GetTranslatedMessage('Enter Table Prefix', 227),
    DMMain.GetTranslatedMessage('Table Prefix:', 228), s);
  if(s<>'')then
    TablePrefixCLBox.Items[TablePrefixCLBox.ItemIndex]:=s;
end;

procedure TOptionsModelForm.DelTblPrefixBtnClick(Sender: TObject);
begin
  if(TablePrefixCLBox.ItemIndex>0)then
    TablePrefixCLBox.Items.Delete(TablePrefixCLBox.ItemIndex);

  TablePrefixCLBoxClickCheck(self);
end;

procedure TOptionsModelForm.PluginRecordsStringGridClick(Sender: TObject);
var i: integer;
begin
  PluginParamsStringGrid.Cols[0].Clear;

  if(PluginRecordsStringGrid.Row-1<EERModel.PluginData.Count)then
    PluginParamsStringGrid.RowCount:=TEERPluginData(EERModel.PluginData[PluginRecordsStringGrid.Row-1]).Params.Count;

  if(PluginRecordsStringGrid.Row<=EERModel.PluginData.Count)then
  begin
    for i:=0 to TEERPluginData(EERModel.PluginData[PluginRecordsStringGrid.Row-1]).Params.Count-1 do
      PluginParamsStringGrid.Cells[0, i]:=TEERPluginData(EERModel.PluginData[PluginRecordsStringGrid.Row-1]).Params[i];
  end;
end;

procedure TOptionsModelForm.MakeEditSettingsDefaultBtnClick(
  Sender: TObject);
begin
  DMEER.UsePositionGrid:=UsePosGridCBox.Checked;
  try
    DMEER.PositionGrid.X:=StrToInt(GridXEd.Text);
    DMEER.PositionGrid.Y:=StrToInt(GridYEd.Text);
  except
    DMEER.PositionGrid.X:=20;
    DMEER.PositionGrid.Y:=20;
  end;

  DMEER.TableNameInRefs:=TableNameInRefsCBox.Checked;
  DMEER.DefaultTableType:=DefaultTableTypeCBox.ItemIndex;
  DMEER.ActivateRefDefForNewRelations:=ActivateRefDefForNewRelationsCBox.Checked;

  DMEER.FKPrefix:=FKPrefixEd.Text;
  DMEER.FKPostfix:=FKPostfixEd.Text;

  DMEER.CreateFKRefDefIndex:=CreateFKRefDefIndexCBox.Checked;

  MessageDlg(DMMain.GetTranslatedMessage('Default Settings changed.', 229),
    mtInformation, [mbOK], 0);
end;

procedure TOptionsModelForm.SubmitBtnClick(Sender: TObject);
begin
  Close;
end;

procedure TOptionsModelForm.AbortBtnClick(Sender: TObject);
begin
  DiscardChanges:=True;

  Close;
end;

procedure TOptionsModelForm.SubmitBtnMouseEnter(Sender: TObject);
begin
  TSpeedButton(Sender).Enabled:=True;
end;

procedure TOptionsModelForm.SubmitBtnMouseLeave(Sender: TObject);
begin
  TSpeedButton(Sender).Enabled:=False;
end;

procedure TOptionsModelForm.UsePosGridCBoxClick(Sender: TObject);
begin
  GridWidthLbl.Enabled:=UsePosGridCBox.Checked;
  GridXEd.Enabled:=UsePosGridCBox.Checked;
  GridWidthUnitsLbl.Enabled:=UsePosGridCBox.Checked;

  GridHeightLbl.Enabled:=UsePosGridCBox.Checked;
  GridYEd.Enabled:=UsePosGridCBox.Checked;
  GridHeightUnitsLbl.Enabled:=UsePosGridCBox.Checked;
end;

procedure TOptionsModelForm.RemovePluginDataClick(Sender: TObject);
var i: integer;
begin
  if(MessageDlg(DMMain.GetTranslatedMessage('Are you shure you want to delete the selected Plugin Data?'+
    'This action cannot be made undone.', 230), mtConfirmation, [mbYes, mbNo], 0)=mrYes)then
  begin
    if(PluginRecordsStringGrid.Row-1<EERModel.PluginData.Count)then
      EERModel.PluginData.Delete(PluginRecordsStringGrid.Row-1);

    for i:=1 to PluginRecordsStringGrid.RowCount-1 do
      PluginRecordsStringGrid.Rows[i].Clear;

    //At lease 2 Rows (1 fixed an 1 data)
    if(EERModel.PluginData.Count>0)then
      PluginRecordsStringGrid.RowCount:=EERModel.PluginData.Count+1
    else
      PluginRecordsStringGrid.RowCount:=2;

    for i:=0 to EERModel.PluginData.Count-1 do
    begin
      PluginRecordsStringGrid.Cells[0, 1+i]:=TEERPluginData(EERModel.PluginData[i]).PluginName;
      PluginRecordsStringGrid.Cells[1, 1+i]:=IntToStr(TEERPluginData(EERModel.PluginData[i]).Obj_id);
    end;

    PluginRecordsStringGrid.Row:=1;
    PluginRecordsStringGrid.Col:=0;
    PluginRecordsStringGridClick(self);
  end;
end;

procedure TOptionsModelForm.PageControlChange(Sender: TObject);
begin
  MakeEditSettingsDefaultBtn.Visible:=(PageControl.ActivePage=EditOptionsSheet);
end;

procedure TOptionsModelForm.PageControlTreeViewChange(Sender: TObject;
  Node: TTreeNode);
begin
  PageControl.ActivePageIndex:=PageControlTreeView.Selected.AbsoluteIndex;
  PageControlTitleLbl.Caption:=PageControlTreeView.Selected.Text;
end;

procedure TOptionsModelForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if(Key=Key_Escape)then
    AbortBtnClick(self);
end;

procedure TOptionsModelForm.CanvasWidthEdChange(Sender: TObject);
begin
  if(CanvasWidthEd.Text<>'')and(ActiveControl<>CanvasHeightEd)then
    CanvasHeightEd.Text:=IntToStr(Round(StrToInt(CanvasWidthEd.Text)/1.4412385643912737508796622097115));
end;

procedure TOptionsModelForm.CanvasHeightEdChange(Sender: TObject);
begin
  if(CanvasHeightEd.Text<>'')and(ActiveControl<>CanvasWidthEd)then
    CanvasWidthEd.Text:=IntToStr(Round(StrToInt(CanvasHeightEd.Text)*1.4412385643912737508796622097115));

end;

end.

⌨️ 快捷键说明

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