RTFormwork/public10/design/U_cxGridCustomCss.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

136 lines
3.6 KiB
ObjectPascal

unit U_cxGridCustomCss;
//{$I ..\cxVer.inc}
interface
uses
{$IFDEF DELPHI6}Types,{$ENDIF} Windows, Graphics, DB;
type
TCustomDrawingStyle = (cdsBkImage, cdsGradient, cdsDependOnData, cdsDefaultDrawing);
TCustomDrawArea = (cdaCell, cdaColumnHeader, cdaFooterCell, cdaGroupCell, cdaIndicatorCell, cdaPartBackGround);
TViewType = (vtMaster, vtDetail);
TColorScheme = (csGrey, csGold, csBlue, csGreen);
TBkImage = (bkiTile, bkiSky, bkiEgypt, bkiMyFace, bkiUserDefined);
TBkImages = array [0..1, 0..5] of TBkImage;
TColorSchemes = array [0..1, 0..5] of TColorScheme;
TColorSchemeArr = array [0..3, 0..2] of TColor;
TCustomDrawingStyleArr = array [0..1, 0..5] of TCustomDrawingStyle;
TUserDefinedBitMaps = array [0..1, 0..5] of TBitmap;
TFonts = array [0..1, 0..5] of TFont;
TCustomDrawItem = class
ViewType: TViewType;
CustomDrawArea: TCustomDrawArea;
end;
const
clBlueDark = TColor($00C56A31);
clBlueLight = TColor($00F7EAD9);
clBlueBright = TColor($00FF953D);
clBlueSky = TColor($00EBC4A4);
clGold = TColor($0047D5FE);
clGoldDark = TColor($0001BDF3);
clGreyLight = TColor($00E2EFF1);
clBlueZdy = TColor($f7f7f7); //00F8E4D8
clBlueZdy1 = TColor($00F0E7E0); //00F8E4D8
clBlueZdy2 = TColor($00EABE84);
clBlueZdy3 = TColor($00F4DFC4);
clBlueZdy4 = TColor($00F9EDDF);
clGreyDark = TColor($00B9D9DD);
clYellowLight = TColor($00E1FFFF);
clGreenBright = TColor($0082E887);
clGreenLight = TColor($00C9F5CB);
clGreenObscured = TColor($00ACF0AF);
clGreenDark = TColor($0044DD4B);
clSilverDark = TColor($00A6A6A6); //clGreyLight clGold
ColorScheme : TColorSchemeArr = ((clSilver, clWhite, clGray),(clBlueZdy, clBlueZdy3 , clGoldDark),(clBlueDark, clBlueLight, clBlueDark),(clGreenDark, clGreenLight, clGreen));
procedure DrawGradient(Canvas: TCanvas; const ARect: TRect;
FromColor, ToColor: TColor; AStepCount: Integer; IsVertical: Boolean = False);
procedure LoadImageFromRes(ABitmap: TBitMap; AResName: String);
procedure SetStringFieldValue(AField: TStringField; AValue: string);
implementation
uses
SysUtils, Classes, cxEditPaintUtils;
procedure DrawGradient(Canvas: TCanvas; const ARect: TRect;
FromColor, ToColor: TColor; AStepCount: Integer; IsVertical: Boolean = False);
var
SR: TRect;
H, I: Integer;
R, G, B: Byte;
FromR, ToR, FromG, ToG, FromB, ToB: Byte;
begin
FromR := GetRValue(FromColor);
FromG := GetGValue(FromColor);
FromB := GetBValue(FromColor);
ToR := GetRValue(ToColor);
ToG := GetGValue(ToColor);
ToB := GetBValue(ToColor);
SR := ARect;
with ARect do
if IsVertical then
H := Bottom - Top
else
H := Right - Left;
for I := 0 to AStepCount - 1 do
begin
if IsVertical then
SR.Bottom := ARect.Top + MulDiv(I + 1, H, AStepCount)
else
SR.Right := ARect.Left + MulDiv(I + 1, H, AStepCount);
with Canvas do
begin
R := FromR + MulDiv(I, ToR - FromR, AStepCount - 1);
G := FromG + MulDiv(I, ToG - FromG, AStepCount - 1);
B := FromB + MulDiv(I, ToB - FromB, AStepCount - 1);
Brush.Color := RGB(R, G, B);
FillRect(SR);
end;
if IsVertical then
SR.Top := SR.Bottom
else
SR.Left := SR.Right;
end;
end;
procedure LoadImageFromRes(ABitmap: TBitMap; AResName: String);
var
Rs: TResourceStream;
BitMap: TBitMap;
begin
BitMap := TBitMap.Create;
Rs := TResourceStream.Create(hInstance, AResName, RT_RCDATA);
try
BitMap.LoadFromStream(Rs);
ABitMap.Assign(BitMap);
finally
BitMap.Free;
Rs.Free;
end;
end;
procedure SetStringFieldValue(AField: TStringField; AValue: string);
begin
AField.Value := AValue;
end;
end.