cxgriddetailssite.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,042 行 · 第 1/5 页
PAS
2,042 行
begin
Result := tpTop;
end;
{$ELSE}
function TcxGridDetailsSiteTopTabsViewInfo.CalculateHeight: Integer;
begin
Result := inherited CalculateWidth;
end;
function TcxGridDetailsSiteTopTabsViewInfo.CalculateWidth: Integer;
begin
Result := inherited CalculateHeight;
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetActiveTabOffset: Integer;
begin
Result := ActiveTopTabOffset;
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetItemClass: TcxCustomGridDetailsSiteTabViewInfoClass;
begin
Result := TcxGridDetailsSiteTopTabViewInfo;
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetItemHeight(AItem: TcxCustomGridDetailsSiteTabViewInfo): Integer;
begin
Result := inherited GetItemWidth(AItem);
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetItemWidth(AItem: TcxCustomGridDetailsSiteTabViewInfo): Integer;
begin
Result := inherited GetItemHeight(AItem);
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetRootBorders: TcxBorders;
begin
Result := [bLeft, bTop, bRight];
end;
function TcxGridDetailsSiteTopTabsViewInfo.GetRootBounds: TRect;
begin
Result := Bounds;
Result.Top := Result.Bottom - cxGridTabsRootSize;
end;
{$ENDIF}
procedure TcxGridDetailsSiteTopTabsViewInfo.GetClientBounds(var AClientBounds: TRect);
begin
Inc(AClientBounds.Top, Height);
end;
{ TcxCustomGridDetailsSiteViewInfo }
constructor TcxCustomGridDetailsSiteViewInfo.Create(ALevel: TcxGridLevel);
begin
inherited Create(nil);
FLevel := ALevel;
if GetTabsViewInfoClass <> nil then
FTabsViewInfo := GetTabsViewInfoClass.Create(Self);
end;
destructor TcxCustomGridDetailsSiteViewInfo.Destroy;
begin
VisibilityChanged(False);
FTabsViewInfo.Free;
inherited;
end;
function TcxCustomGridDetailsSiteViewInfo.GetClientHeight: Integer;
begin
with ClientBounds do
Result := Bottom - Top;
end;
function TcxCustomGridDetailsSiteViewInfo.GetClientWidth: Integer;
begin
with ClientBounds do
Result := Right - Left;
end;
function TcxCustomGridDetailsSiteViewInfo.GetControl: TcxControl;
begin
Result := FLevel.Control;
end;
function TcxCustomGridDetailsSiteViewInfo.GetFrameBounds: TRect;
begin
Result := ClientBounds;
InflateRect(Result, FrameWidth, FrameWidth);
end;
function TcxCustomGridDetailsSiteViewInfo.GetInternalHeight: Integer;
begin
with Bounds do
Result := Bottom - Top;
end;
function TcxCustomGridDetailsSiteViewInfo.GetInternalWidth: Integer;
begin
with Bounds do
Result := Right - Left;
end;
function TcxCustomGridDetailsSiteViewInfo.GetIsActiveGridViewDestroying: Boolean;
begin
Result := (FActiveGridView <> nil) and FActiveGridView.IsDestroying;
end;
function TcxCustomGridDetailsSiteViewInfo.GetLookAndFeel: TcxLookAndFeel;
begin
Result := TcxCustomGrid(Control).LookAndFeel;
end;
function TcxCustomGridDetailsSiteViewInfo.GetLookAndFeelPainter: TcxCustomLookAndFeelPainterClass;
begin
Result := LookAndFeel.Painter;
end;
function TcxCustomGridDetailsSiteViewInfo.GetMaxDetailHeight: Integer;
begin
Result := MaxHeight - NonClientHeight;
end;
function TcxCustomGridDetailsSiteViewInfo.GetMaxDetailSize: TPoint;
begin
Result := Point(MaxDetailWidth, MaxDetailHeight);
end;
function TcxCustomGridDetailsSiteViewInfo.GetMaxDetailWidth: Integer;
begin
Result := MaxWidth - NonClientWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetNonClientHeight: Integer;
begin
Result := InternalHeight - ClientHeight;
end;
function TcxCustomGridDetailsSiteViewInfo.GetNonClientWidth: Integer;
begin
Result := InternalWidth - ClientWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetTabsPosition: TcxGridDetailTabsPosition;
begin
Result := Level.Options.DetailTabsPosition;
end;
procedure TcxCustomGridDetailsSiteViewInfo.Notification(AComponent: TComponent;
AOperation: TOperation);
begin
inherited;
if (AOperation = opRemove) and (AComponent = FActiveGridView) then
FActiveGridView := nil;
end;
function TcxCustomGridDetailsSiteViewInfo.CalculateHeight: Integer;
begin
if ActiveGridView = nil then
begin
FFullyVisible := True;
Result := EmptyClientHeight;
end
else
begin
Result := 0;
FFullyVisible := False;
ActiveGridView.ViewInfo.GetHeight(MaxDetailSize, Result, FFullyVisible);
end;
Inc(Result, NonClientHeight);
if FTabsViewInfo <> nil then
FTabsViewInfo.CheckSiteViewInfoHeight(Result);
FNormalHeight := Result;
if FNormalHeight > MaxNormalHeight then FNormalHeight := MaxNormalHeight;
if not FullyVisible then
Result := MaxHeight
else
begin
if Result > MaxHeight then Result := MaxHeight;
if Result < 0 then Result := 0;
end;
if FNormalHeight < Result then FNormalHeight := Result;
end;
function TcxCustomGridDetailsSiteViewInfo.CalculateWidth: Integer;
begin
if ActiveGridView = nil then
Result := EmptyClientWidth
else
ActiveGridView.ViewInfo.GetWidth(MaxDetailSize, Result);
Inc(Result, NonClientWidth);
if FTabsViewInfo <> nil then
FTabsViewInfo.CheckSiteViewInfoWidth(Result);
if Result < MinWidth then Result := MinWidth;
if Result > MaxWidth then Result := MaxWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetBkColor: TColor;
begin
Result := LookAndFeelPainter.DefaultGridDetailsSiteColor;
end;
function TcxCustomGridDetailsSiteViewInfo.GetClientBounds: TRect;
begin
Result := Bounds;
if FTabsViewInfo <> nil then
FTabsViewInfo.GetClientBounds(Result);
InflateRect(Result, -FrameWidth, -FrameWidth);
end;
function TcxCustomGridDetailsSiteViewInfo.GetEmptyClientHeight: Integer;
begin
Result := 100;
end;
function TcxCustomGridDetailsSiteViewInfo.GetEmptyClientWidth: Integer;
begin
Result := 200;
end;
function TcxCustomGridDetailsSiteViewInfo.GetFrameColor: TColor;
begin
Result := FLevel.Options.GetDetailFrameColor;
end;
function TcxCustomGridDetailsSiteViewInfo.GetFrameWidth: Integer;
begin
Result := Level.Options.DetailFrameWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetFullyVisible: Boolean;
begin
Result := FFullyVisible;
end;
function TcxCustomGridDetailsSiteViewInfo.GetHeight: Integer;
begin
Result := CalculateHeight;
end;
function TcxCustomGridDetailsSiteViewInfo.GetMaxNormalHeight: Integer;
begin
Result := MaxInt;
end;
function TcxCustomGridDetailsSiteViewInfo.GetMinWidth: Integer;
begin
Result := MaxWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetNormalHeight: Integer;
begin
Result := FNormalHeight;
end;
function TcxCustomGridDetailsSiteViewInfo.GetWidth: Integer;
begin
Result := CalculateWidth;
end;
function TcxCustomGridDetailsSiteViewInfo.GetPainterClass: TcxGridDetailsSitePainterClass;
begin
Result := TcxGridDetailsSitePainter;
end;
function TcxCustomGridDetailsSiteViewInfo.GetTabsViewInfoClass: TcxCustomGridDetailsSiteTabsViewInfoClass;
begin
case TabsPosition of
dtpLeft:
Result := TcxGridDetailsSiteLeftTabsViewInfo;
dtpTop:
Result := TcxGridDetailsSiteTopTabsViewInfo;
else
Result := nil;
end;
end;
function TcxCustomGridDetailsSiteViewInfo.GetActiveGridViewExists: Boolean;
begin
Result := (FActiveGridView <> nil) and not IsActiveGridViewDestroying;
end;
function TcxCustomGridDetailsSiteViewInfo.GetActiveGridViewValue: TcxCustomGridView;
begin
if FActiveGridView = nil then
begin
FActiveGridView := GetActiveGridView;
if FActiveGridView <> nil then
FActiveGridView.FreeNotification(Self);
end;
Result := FActiveGridView;
if IsActiveGridViewDestroying then
Result := nil;
end;
function TcxCustomGridDetailsSiteViewInfo.GetVisible: Boolean;
begin
Result := True;
end;
procedure TcxCustomGridDetailsSiteViewInfo.GetLevelTabDefaultParams(var AParams: TcxViewParams);
begin
Level.Styles.GetTabDefaultParams(AParams);
end;
procedure TcxCustomGridDetailsSiteViewInfo.GetLevelTabParams(ALevel: TcxGridLevel;
var AParams: TcxViewParams);
begin
Level.Styles.GetTabParams(TcxCustomGridRecord(MasterRecord), ALevel, AParams);
end;
procedure TcxCustomGridDetailsSiteViewInfo.GetCachedInfo(var AInfo: TcxCustomGridDetailsSiteViewInfoCachedInfo);
begin
AInfo := GetCachedInfoClass.Create;
if TabsViewInfo <> nil then
AInfo.FirstVisibleTabIndex := TabsViewInfo.FirstVisibleTabIndex;
end;
function TcxCustomGridDetailsSiteViewInfo.GetCachedInfoClass: TcxCustomGridDetailsSiteViewInfoCachedInfoClass;
begin
Result := TcxCustomGridDetailsSiteViewInfoCachedInfo;
end;
procedure TcxCustomGridDetailsSiteViewInfo.SetCachedInfo(var AInfo: TcxCustomGridDetailsSiteViewInfoCachedInfo);
begin
if TabsViewInfo <> nil then
TabsViewInfo.FirstVisibleTabIndex := AInfo.FirstVisibleTabIndex;
FreeAndNil(AInfo);
end;
procedure TcxCustomGridDetailsSiteViewInfo.BeforeRecalculation;
begin
if FTabsViewInfo <> nil then
FTabsViewInfo.BeforeRecalculation;
end;
procedure TcxCustomGridDetailsSiteViewInfo.Calculate(ALeftBound, ATopBound: Integer);
begin
Bounds.Left := ALeftBound;
Bounds.Top := ATopBound;
Bounds.Right := Bounds.Left + Width;
Bounds.Bottom := Bounds.Top + Height;
if FTabsViewInfo <> nil then
FTabsViewInfo.Calculate(Bounds);
if ActiveGridView <> nil then
ActiveGridView.ViewInfo.MainCalculate(ClientBounds);
end;
function TcxCustomGridDetailsSiteViewInfo.GetHitTest(const P: TPoint): TcxCustomGridHitTest;
function GetDetailP: TPoint;
begin
with ActiveGridView.Site do
begin
Result.X := P.X - Left;
Result.Y := P.Y - Top;
end;
end;
begin
if FTabsViewInfo <> nil then
Result := FTabsViewInfo.GetHitTest(P)
else
Result := nil;
if (Result = nil) and (ActiveGridView <> nil) then
Result := ActiveGridView.ViewInfo.GetHitTest(GetDetailP);
end;
function TcxCustomGridDetailsSiteViewInfo.IsTabVisible(ALevel: TcxGridLevel): Boolean;
begin
Result := Level.Options.TabsForEmptyDetails or DetailHasData(ALevel);
end;
procedure TcxCustomGridDetailsSiteViewInfo.Paint(ACanvas: TcxCanvas);
begin
with GetPainterClass.Create(ACanvas, Self) do
try
Paint;
finally
Free;
end;
end;
function TcxCustomGridDetailsSiteViewInfo.ProcessDialogChar(ACharCode: Word): Boolean;
begin
Result := (FTabsViewInfo <> nil) and FTabsViewInfo.ProcessDialogChar(ACharCode);
end;
function TcxCustomGridDetailsSiteViewInfo.SupportsTabAccelerators: Boolean;
begin
Result := False;
end;
procedure TcxCustomGridDetailsSiteViewInfo.VisibilityChanged(AVisible: Boolean);
begin
if ActiveGridViewExists then
ActiveGridView.ViewInfo.DoVisibilityChanged(AVisible);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?