rm_dsgform.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,142 行 · 第 1/5 页
PAS
2,142 行
begin
{$IFDEF USE_SYNEDIT}
Gutter.Width := aWidth;
{$ELSE}
GutterWidth := aWidth;
{$ENDIF}
end;
procedure TRMSynEditor.SetGroupUndo(aValue: Boolean);
begin
{$IFDEF USE_SYNEDIT}
if aValue then
Options := Options + [eoGroupUndo]
else
Options := Options - [eoGroupUndo];
{$ELSE}
GroupUndo := aValue;
{$ENDIF}
end;
procedure TRMSynEditor.SetUndoAfterSave(aValue: Boolean);
begin
{$IFDEF USE_SYNEDIT}
{$ELSE}
UndoAfterSave := aValue;
{$ENDIF}
end;
procedure TRMSynEditor.SetReservedForeColor(aValue: TColor);
begin
{$IFDEF USE_SYNEDIT}
if Self.Highlighter <> nil then
Self.Highlighter.KeywordAttribute.Foreground := aValue;
{$ELSE}
Colors.Reserved.ForeColor := aValue;
{$ENDIF}
end;
procedure TRMSynEditor.SetCommentForeColor(aValue: TColor);
begin
{$IFDEF USE_SYNEDIT}
if Self.Highlighter <> nil then
Self.Highlighter.CommentAttribute.Foreground := aValue;
{$ELSE}
Colors.Comment.ForeColor := aValue;
{$ENDIF}
end;
procedure TRMSynEditor.RMClearUndoBuffer;
begin
{$IFDEF USE_SYNEDIT}
Self.ClearUndo;
{$ELSE}
UndoBuffer.Clear;
{$ENDIF}
end;
function TRMSynEditor.RMCanCut: Boolean;
begin
{$IFDEF USE_SYNEDIT}
Result := Self.SelAvail;
{$ELSE}
Result := CanCut;
{$ENDIF}
end;
function TRMSynEditor.RMCanCopy: Boolean;
begin
{$IFDEF USE_SYNEDIT}
Result := Self.SelAvail;
{$ELSE}
Result := CanCopy;
{$ENDIF}
end;
function TRMSynEditor.RMCanPaste: Boolean;
begin
{$IFDEF USE_SYNEDIT}
Result := Self.CanPaste;
{$ELSE}
Result := CanPaste;
{$ENDIF}
end;
function TRMSynEditor.RMCanUndo: Boolean;
begin
{$IFDEF USE_SYNEDIT}
Result := Self.CanUndo;
{$ELSE}
Result := UndoBuffer.CanUndo;
{$ENDIF}
end;
function TRMSynEditor.RMCanRedo: Boolean;
begin
{$IFDEF USE_SYNEDIT}
Result := Self.CanRedo;
{$ELSE}
Result := UndoBuffer.CanUndo;
{$ENDIF}
end;
procedure TRMSynEditor.RMClipBoardCut;
begin
{$IFDEF USE_SYNEDIT}
Self.CutToClipboard;
{$ELSE}
ClipBoardCut;
{$ENDIF}
end;
procedure TRMSynEditor.RMClipBoardCopy;
begin
{$IFDEF USE_SYNEDIT}
Self.CopyToClipboard;
{$ELSE}
ClipBoardCopy;
{$ENDIF}
end;
procedure TRMSynEditor.RMClipBoardPaste;
begin
{$IFDEF USE_SYNEDIT}
Self.PasteFromClipboard;
{$ELSE}
ClipBoardPaste;
{$ENDIF}
end;
procedure TRMSynEditor.RMDeleteSelected;
begin
{$IFDEF USE_SYNEDIT}
{$ELSE}
DeleteSelected;
{$ENDIF}
end;
procedure TRMSynEditor.RMUndo;
begin
{$IFDEF USE_SYNEDIT}
Self.Undo;
{$ELSE}
UndoBuffer.Undo;
{$ENDIF}
end;
procedure TRMSynEditor.RMRedo;
begin
{$IFDEF USE_SYNEDIT}
Self.Redo;
{$ELSE}
UndoBuffer.Undo;
{$ENDIF}
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMToolbarComponent }
const
ButtonWidth = 28;
constructor TRMToolbarComponent.Create(AOwner: TComponent);
procedure _CreateBandsMenu;
var
bt: TRMBandType;
item: TMenuItem;
begin
FBandsMenu := TPopupMenu.Create(AOwner);
FBandsMenu.AutoHotkeys := maManual;
FBandsMenu.OnPopup := OnBandMenuPopup;
for bt := rmbtReportTitle to rmbtCrossFooter do
begin
item := TMenuItem.Create(FBandsMenu);
item.Caption := RMBandNames[TRMBandType(bt)];
item.Tag := Ord(bt);
item.OnClick := OnAddBandEvent;
FBandsMenu.Items.Add(item);
end;
end;
begin
inherited Create(AOwner);
FDesignerForm := TRMCustomDesignerForm(AOwner);
FOldPageType := -1;
Parent := FDesignerForm;
BevelInner := bvLowered; //bvNone;
BevelOuter := bvNone;
Align := alLeft;
ClientWidth := ButtonWidth + 2;
FControlIndex := 3;
FImageList := TImageList.Create(Self);
FImageList.Width := 24;
FImageList.Height := 24;
FPopupMenuComponent := TPopupMenu.Create(Self);
FPopupMenuComponent.AutoHotkeys := maManual;
FPopupMenuComponent.Images := FImageList;
FBtnNoSelect := TSpeedButton.Create(Self);
with FBtnNoSelect do
begin
Parent := Self;
Flat := True;
Glyph.LoadFromResourceName(hInstance, 'RM_ComponentNoSelect');
SetBounds(1, 1, ButtonWidth, ButtonWidth);
AllowAllUp := True;
GroupIndex := 1;
OnClick := OnOB1ClickEvent;
Tag := -1;
ShowHint := True;
RMSetStrProp(FBtnNoSelect, 'Hint', rmRes + 132);
end;
{$IFDEF USE_TB2K}
FBtnUp := TSpeedButton.Create(Self);
{$ELSE}
FBtnUp := TRMToolbarButton.Create(Self);
{$ENDIF}
with FBtnUp do
begin
Parent := Self;
Flat := True;
Glyph.LoadFromResourceName(hInstance, 'RM_MYSPINUP');
SetBounds(1, FBtnNoSelect.Top + FBtnNoSelect.Height, ButtonWidth, 16);
Tag := -1;
{$IFNDEF USE_TB2K}
Repeating := True;
{$ENDIF}
OnClick := OnBtnUpClickEvent;
end;
{$IFDEF USE_TB2K}
FBtnDown := TSpeedButton.Create(Self);
{$ELSE}
FBtnDown := TRMToolbarButton.Create(Self);
{$ENDIF}
with FBtnDown do
begin
Parent := Self;
Flat := True;
Glyph.LoadFromResourceName(hInstance, 'RM_MYSPINDOWN');
SetBounds(1, Self.Height - 16, ButtonWidth, 16);
Tag := -1;
{$IFNDEF USE_TB2K}
Repeating := True;
{$ENDIF}
OnClick := OnBtnDownClickEvent;
end;
_CreateBandsMenu;
OnResize := OnResizeEvent;
end;
destructor TRMToolbarComponent.Destroy;
begin
inherited;
end;
const
DefaultControlBmps: array[0..4] of string = ('RM_ComponentMemo', 'RM_ComponentCalcMemo',
'RM_ComponentPicture', 'RM_ComponentShape', 'RM_ComponentSubReport');
DefaultControlTyps: array[0..4] of byte = (rmgtMemo, rmgtCalcMemo, rmgtPicture, rmgtShape,
rmgtSubReport);
DefaultControlHints: array[0..4] of Integer = (rmRes + 133, rmRes + 137, rmRes + 135,
SInsShape, rmRes + 136);
procedure TRMToolbarComponent.CreateObjects;
var
liNeedCreate: Boolean;
i: Integer;
liNowTop: Integer;
lAddInObjectInfo: TRMAddinObjectInfo;
lButton: TSpeedButton;
procedure _CreateBandObject;
var
i: Integer;
liButton: TSpeedButton;
begin
FObjectBand := TSpeedButton.Create(Self);
with FObjectBand do
begin
Parent := Self;
Flat := True;
SetBounds(1, liNowTop, ButtonWidth, ButtonWidth);
Glyph.LoadFromResourceName(hInstance, 'RM_ComponentBand');
Tag := rmgtBand;
AllowAllUp := True;
GroupIndex := 1;
OnClick := OnButtonBandClickEvent;
OnMouseDown := OnOB2MouseDownEvent;
ShowHint := True;
RMSetStrProp(FObjectBand, 'Hint', rmRes + 134);
Inc(liNowTop, ButtonWidth);
end;
for i := Low(DefaultControlBmps) to High(DefaultControlBmps) do
begin
liButton := TSpeedButton.Create(Self);
with liButton do
begin
Parent := Self;
Flat := True;
SetBounds(1, liNowTop, ButtonWidth, ButtonWidth);
Glyph.LoadFromResourceName(hInstance, DefaultControlBmps[i]);
Tag := DefaultControlTyps[i];
AllowAllUp := True;
GroupIndex := 1;
OnClick := OnOB2ClickEvent;
OnMouseDown := OnOB2MouseDownEvent;
ShowHint := True;
RMSetStrProp(liButton, 'Hint', DefaultControlHints[i]);
if i = 0 then
FBtnMemoView := liButton;
end;
Inc(liNowTop, ButtonWidth);
end;
end;
begin
if FDesignerForm.Page is TRMDialogPage then
liNeedCreate := FOldPageType <> 1
else
liNeedCreate := FOldPageType <> 2;
if not liNeedCreate then Exit;
FSelectedObjIndex := -1;
while ControlCount > 3 do
Controls[3].Free;
FControlIndex := 3;
liNowTop := FBtnUp.Top + FBtnUp.Height;
if FDesignerForm.Page is TRMDialogPage then FOldPageType := 1 else FOldPageType := 2;
FObjectBand := nil;
if FOldPageType = 2 then
_CreateBandObject;
for i := 0 to RMAddInsCount - 1 do
begin
lAddInObjectInfo := RMAddIns(i);
if lAddInObjectInfo.IsPage and
(((FOldPageType = 1) and (lAddInObjectInfo.IsControl)) or
((FOldPageType = 2) and (not lAddInObjectInfo.IsControl))) then
begin
lButton := TSpeedButton.Create(Self);
with lButton do
begin
Parent := Self;
Flat := True;
SetBounds(1, liNowTop, ButtonWidth, ButtonWidth);
AllowAllUp := True;
OnClick := OnOB2ClickEvent;
if lAddInObjectInfo.Page <> '' then
begin
GroupIndex := 0;
OnClick := OnOB2ClickEvent_1;
end
else
begin
OnClick := OnOB2ClickEvent;
OnMouseDown := OnOB2MouseDownEvent;
GroupIndex := 1;
end;
ShowHint := True;
Glyph.LoadFromResourceName(Hinstance, lAddInObjectInfo.ButtonBmpRes);
Tag := rmgtAddIn + i;
Hint := lAddInObjectInfo.ButtonHint;
end;
end;
Inc(liNowTop, ButtonWidth);
end;
RefreshControls;
end;
procedure TRMToolbarComponent.OnButtonBandClickEvent(Sender: TObject);
var
lPoint: TPoint;
begin
if FDesignerForm.AutoChangeBandPos then
begin
lPoint := Point(TSpeedButton(Sender).Left, TSpeedButton(Sender).Top + TSpeedButton(Sender).Height);
lPoint := ClientToScreen(lPoint);
FBandsMenu.Popup(lPoint.X, lPoint.Y);
end
else
begin
end;
end;
procedure TRMToolbarComponent.OnOB2ClickEvent(Sender: TObject);
begin
FBtnNoSelect.Down := not TSpeedButton(Sender).Down;
end;
procedure TRMToolbarComponent.OnOB2MouseDownEvent(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDesignerForm.ObjRepeat := ssShift in Shift;
FDesignerForm.FWorkSpace.Cursor := crDefault;
FSelectedObjIndex := TSpeedButton(Sender).Tag;
end;
procedure TRMToolbarComponent.OnAddInObectMenuItemClick(Sender: TObject);
begin
FBtnNoSelect.Down := False;
FDesignerForm.ObjRepeat := False;
FDesignerForm.FWorkSpace.Cursor := crDefault;
FSelectedObjIndex := TMenuItem(Sender).Tag;
end;
procedure TRMToolbarComponent.OnOB2ClickEvent_1(Sender: TObject);
var
i, j: Integer;
lPage: string;
lMenuItem: TMenuItem;
lPoint: TPoint;
lBmp: TBitmap;
begin
lPage := RMAddIns(TSpeedButton(Sender).Tag - rmgtAddIn).Page;
FPopupMenuComponent.Items.Clear;
FImageList.Clear;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?