📄 main.pas
字号:
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 + -