📄 palettenav.pas
字号:
TrackBarTimer.Enabled:=False;
if(MainForm.ActiveMDIChild<>nil)then
if(MainForm.ActiveMDIChild.Classname='TEERForm')then
TEERForm(MainForm.ActiveMDIChild).EERModel.SetZoomFac(ZoomTrackBar.Position);
end;
procedure TPaletteNavForm.RefreshInfo(theModel: TEERModel);
begin
if(theModel.GetSelectedObjsCount<>1)then
begin
EERObj:=nil;
NameEdit.Enabled:=False;
LeftEdit.Enabled:=False;
TopEdit.Enabled:=False;
WidthEd.Enabled:=False;
HeightEd.Enabled:=False;
NameEdit.Text:='';
LeftEdit.Text:='';
TopEdit.Text:='';
WidthEd.Text:='';
HeightEd.Text:='';
LinkEd.Text:='';
end
else
begin
EERObj:=TEERObj(theModel.GetFirstSelectedObj);
if(Assigned(EERObj))then
begin
NameEdit.Enabled:=True;
if(Not(EERObj.ClassnameIs('TEERRel')))then
begin
LeftEdit.Enabled:=True;
TopEdit.Enabled:=True;
end
else
begin
LeftEdit.Enabled:=False;
TopEdit.Enabled:=False;
end;
if(EERObj.ClassnameIs('TEERImage'))then
begin
WidthEd.Enabled:=True;
HeightEd.Enabled:=True;
end
else
begin
WidthEd.Enabled:=False;
HeightEd.Enabled:=False;
end;
NameEdit.Text:=EERObj.ObjName;
LeftEdit.Text:=IntToStr(EERObj.Obj_X);
TopEdit.Text:=IntToStr(EERObj.Obj_Y);
WidthEd.Text:=IntToStr(EERObj.Obj_W);
HeightEd.Text:=IntToStr(EERObj.Obj_H);
if(EERObj.IsLinkedObject)then
LinkEd.Text:=theModel.GetPlacedModelByID(EERObj.IDLinkedModel).ModelName;
end;
end;
end;
procedure TPaletteNavForm.NameEditExit(Sender: TObject);
begin
if(Assigned(EERObj))then
begin
if(NameEdit.Text<>EERObj.ObjName)then
begin
EERModel.LogAction(at_RenameObj, EERObj.Obj_id,
'NewObjName='+NameEdit.Text+#13#10+
'OldObjName='+EERObj.ObjName+#13#10);
EERObj.ObjName:=NameEdit.Text;
EERObj.RefreshObj;
EERObj.DoPaint(self);
end;
end;
end;
procedure TPaletteNavForm.NameEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Assigned(EERObj))and
((Key=Key_Return)or(Key=Key_Enter))then
begin
if(NameEdit.Text<>EERObj.ObjName)then
begin
EERModel.LogAction(at_RenameObj, EERObj.Obj_id,
'NewObjName='+NameEdit.Text+#13#10+
'OldObjName='+EERObj.ObjName+#13#10);
EERObj.ObjName:=NameEdit.Text;
EERObj.RefreshObj;
EERObj.DoPaint(self);
end;
PageControl.SetFocus;
end;
end;
procedure TPaletteNavForm.NavPBoxMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var XFac, YFac: double;
w, h: integer;
begin
if(MainForm.ActiveMDIChild<>nil)then
if(MainForm.ActiveMDIChild.Classname='TEERForm')then
if(Button=mbLeft)then
begin
mouse_absx:=Mouse.CursorPos.X;
mouse_absy:=Mouse.CursorPos.Y;
XFac:=NavPBox.Width/MainForm.ActiveMDIChild.HorzScrollBar.Range;
YFac:=NavPBox.Height/MainForm.ActiveMDIChild.VertScrollBar.Range;
{mouse_posx:=Round(MainForm.ActiveMDIChild.HorzScrollBar.Position*XFac)+1;
mouse_posy:=Round(MainForm.ActiveMDIChild.VertScrollBar.Position*YFac)+1;}
w:=Round(MainForm.ActiveMDIChild.Width*XFac);
h:=Round(MainForm.ActiveMDIChild.Height*YFac);
mouse_posx:=x-w div 2;
mouse_posy:=y-h div 2;
MouseIsDown:=True;
NavPBoxMouseMove(Sender, [ssLeft], X, Y);
end;
end;
procedure TPaletteNavForm.NavPBoxMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var XFac, YFac: double;
newXpos, newYpos: integer;
begin
if(Shift=[ssLeft])and(MouseIsDown)then
begin
XFac:=NavPBox.Width/MainForm.ActiveMDIChild.HorzScrollBar.Range;
YFac:=NavPBox.Height/MainForm.ActiveMDIChild.VertScrollBar.Range;
newXpos:=Round((mouse_posx+Mouse.CursorPos.X-mouse_absx)/XFac);
newYpos:=Round((mouse_posy+Mouse.CursorPos.Y-mouse_absy)/YFac);
if(newXpos<0)then
newXpos:=0;
if(newYpos<0)then
newYpos:=0;
if(newXpos>MainForm.ActiveMDIChild.HorzScrollBar.Range-MainForm.ActiveMDIChild.Width)then
newXpos:=MainForm.ActiveMDIChild.HorzScrollBar.Range-MainForm.ActiveMDIChild.Width;
if(newYpos>MainForm.ActiveMDIChild.VertScrollBar.Range-MainForm.ActiveMDIChild.Height)then
newYpos:=MainForm.ActiveMDIChild.VertScrollBar.Range-MainForm.ActiveMDIChild.Height;
MainForm.ActiveMDIChild.HorzScrollBar.Position:=newXpos;
MainForm.ActiveMDIChild.VertScrollBar.Position:=newYpos;
NavPBoxPaint(self);
end;
end;
procedure TPaletteNavForm.NavPBoxMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
MouseIsDown:=False;
Application.MainForm.SetFocus;
end;
procedure TPaletteNavForm.ClearModelImg;
begin
EERModel:=nil;
NavPBoxPaint(self);
end;
procedure TPaletteNavForm.SetModelImg(theModel: TEERModel);
var PreviewZoomFactor: double;
begin
if(theModel<>nil)then
begin
EERModel:=theModel;
//Set Bitmap size
ModelBmp.Width:=NavPBox.Width;
PreviewZoomFactor:=ModelBmp.Width/EERModel.EERModel_Width;
ModelBmp.Height:=Round(EERModel.EERModel_Height*PreviewZoomFactor);
//Draw to Model onto the Bitmap
ModelBmp.Canvas.Pen.Color:=clWhite;
ModelBmp.Canvas.Brush.Color:=clWhite;
ModelBmp.Canvas.Rectangle(Rect(0, 0, ModelBmp.Width-1, ModelBmp.Height-1));
//Paint with no text output
EERModel.PaintModel(ModelBmp.Canvas,
PreviewZoomFactor*100,
0, 0, 0, 0, [EERTable, EERRegion, EERNote], 72, False);
NavPBoxPaint(self);
end
else
begin
//Draw to Model onto the Bitmap
ModelBmp.Canvas.Pen.Color:=clWhite;
ModelBmp.Canvas.Brush.Color:=clWhite;
ModelBmp.Canvas.Rectangle(Rect(0, 0, ModelBmp.Width-1, ModelBmp.Height-1));
NavPBoxPaint(nil);
end;
end;
procedure TPaletteNavForm.ModelImgChangTmrTimer(Sender: TObject);
begin
if(MainForm.ActiveMDIChild<>nil)then
if(MainForm.ActiveMDIChild.Classname='TEERForm')then
if(TEERForm(MainForm.ActiveMDIChild).EERModel.Need2RefreshNavImg)then
begin
TEERForm(MainForm.ActiveMDIChild).EERModel.Need2RefreshNavImg:=False;
SetModelImg(TEERForm(MainForm.ActiveMDIChild).EERModel);
end;
end;
procedure TPaletteNavForm.OptionsImgClick(Sender: TObject);
begin
NavPopupMenu.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;
procedure TPaletteNavForm.Zoom100MIClick(Sender: TObject);
begin
if(MainForm.ActiveMDIChild<>nil)then
if(MainForm.ActiveMDIChild.Classname='TEERForm')then
TEERForm(MainForm.ActiveMDIChild).EERModel.SetZoomFac(TMenuItem(Sender).Tag, 0, 0);
end;
procedure TPaletteNavForm.LeftEditExit(Sender: TObject);
begin
if(Assigned(EERObj))then
begin
try
StrToInt(LeftEdit.Text);
StrToInt(TopEdit.Text);
except
LeftEdit.Text:=IntToStr(EERObj.Obj_X);
TopEdit.Text:=IntToStr(EERObj.Obj_Y);
end;
EERModel.StartSubActionLog(at_MoveObj);
EERModel.LogSubAction(sa_MoveFrom, EERObj.Obj_id,
'Obj_X='+IntToStr(EERObj.Obj_X)+#13#10+'Obj_Y='+IntToStr(EERObj.Obj_Y));
EERModel.LogSubAction(sa_MoveTo, EERObj.Obj_id,
'Obj_X='+LeftEdit.Text+#13#10+'Obj_Y='+TopEdit.Text);
EERModel.EndSubAction;
EERObj.Obj_X:=StrToInt(LeftEdit.Text);
EERObj.Obj_Y:=StrToInt(TopEdit.Text);
EERObj.RefreshObj;
end;
end;
procedure TPaletteNavForm.LeftEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Assigned(EERObj))and
((Key=Key_Return)or(Key=Key_Enter))then
begin
LeftEditExit(self);
end;
end;
procedure TPaletteNavForm.WidthEdExit(Sender: TObject);
begin
if(Assigned(EERObj))then
begin
try
StrToInt(WidthEd.Text);
StrToInt(HeightEd.Text);
except
WidthEd.Text:=IntToStr(EERObj.Obj_W);
HeightEd.Text:=IntToStr(EERObj.Obj_H);
end;
EERModel.StartSubActionLog(at_ScaleObj);
EERModel.LogSubAction(sa_ScaleFrom, EERObj.Obj_id,
'Obj_W='+IntToStr(EERObj.Obj_W)+#13#10+'Obj_H='+IntToStr(EERObj.Obj_H));
EERModel.LogSubAction(sa_ScaleTo, EERObj.Obj_id,
'Obj_W='+WidthEd.Text+#13#10+'Obj_H='+HeightEd.Text);
EERModel.EndSubAction;
EERObj.Obj_W:=StrToInt(WidthEd.Text);
EERObj.Obj_H:=StrToInt(HeightEd.Text);
EERObj.RefreshObj;
end;
end;
procedure TPaletteNavForm.WidthEdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Assigned(EERObj))and
((Key=Key_Return)or(Key=Key_Enter))then
begin
WidthEdExit(self);
end;
end;
procedure TPaletteNavForm.FormDeactivate(Sender: TObject);
begin
if(Visible)then
if(Not(DMMain.IsFormStayingOnTop(self)))then
sendCLXEvent(Application.MainForm.Handle, QCustomEvent_create(QEventType_RestoreStayOnTopForms, self));
end;
procedure TPaletteNavForm.NavigatorPBoxPaint(Sender: TObject);
begin
//Paint Text (for XTF smooth fonts)
TPaintBox(Sender).Canvas.Font.Color:=clBlack;
TPaintBox(Sender).Canvas.TextOut(0, 0,
DMMain.GetTranslatedMessage('', TPaintBox(Sender).Tag));
end;
procedure TPaletteNavForm.NavigatorPBoxClick(Sender: TObject);
begin
TabsImg.BringToFront;
NavigatorPBox.BringToFront;
InfoPBox.BringToFront;
PageControl.ActivePage:=NavSheet;
BottomPnl.Show;
end;
procedure TPaletteNavForm.InfoPBoxClick(Sender: TObject);
begin
Tabs2Img.BringToFront;
NavigatorPBox.BringToFront;
InfoPBox.BringToFront;
PageControl.ActivePage:=InfoSheet;
BottomPnl.Hide;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -