⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbcommon.pas

📁 電子看板的物件程式
💻 PAS
字号:
unit BBCommon;

interface

uses  BBConst, Classes, Dialogs;

(*																		*)
(* TBBMask type definition		*)
(*																		*)

type

	TBBMask = class( TComponent )

  	private
      FMaskArray: TMaskArray;
    	procedure LoadFrom( const Value: TMaskArray );
      procedure	SetRow( I,J: integer; Item: Byte );
      function	GetRow( I,J: integer ): Byte;
    public
    	constructor Create( Owner: TComponent ); override;
      procedure Load( stream: TStream );
      procedure Save( stream: TStream );
    	function	Copy( const Value: TBBMask ): Boolean;
    	procedure RestoreDefaults;
      property	Items: TMaskArray read FMaskArray write LoadFrom;
    	property	Item[ I,J: integer ]: Byte read GetRow write SetRow;

end;

(*															*)
(* TBBMask type implementation	*)
(*															*)

implementation

constructor TBBMask.Create( Owner: TComponent );
begin

	inherited Create( Owner );
  LoadFrom( MaskDefault );

end;

procedure TBBMask.Load( stream: TStream );
begin

	try
  	stream.ReadBuffer( FMaskArray, MaskArraySize );
	except
  	ShowMessage( 'Error reading custom charset.#13#10Loading default charset.' );
  end;

end;

procedure TBBMask.Save( stream: TStream );
begin

	try
  	stream.WriteBuffer( FMaskArray, MaskArraySize );
	except
  	ShowMessage( 'Error saving custom charset.#13#10Save procedure canceled.' );
  end;

end;

function	TBBMask.Copy( const Value: TBBMask ): Boolean;
var
	i,j: integer;
begin

	Result := true;
	for i := 0 to MaskItems - 1 do
  	for j := 0 to MaskItemSize - 1 do
    	begin
        Result := Result and ( FMaskArray[ i, j ] = Value.Item[ i, j ] );
    		FMaskArray[ i, j ] := Value.Item[ i, j ];
      end;

end;

procedure TBBMask.RestoreDefaults;
begin

  LoadFrom( MaskDefault );

end;

procedure TBBMask.LoadFrom( const Value: TMaskArray );
var
	i,j: integer;
begin

	for i := 0 to MaskItems - 1 do
  	for j := 0 to MaskItemSize - 1 do
    	FMaskArray[ i, j ] := Value[ i, j ];

end;

function	TBBMask.GetRow( I,J: integer ): Byte;
begin

	if( ( ( I >= 0 ) and ( I < MaskItems ) ) and
  		( ( J >= 0 ) and ( J < MaskItemSize ) ) ) then
  	Result := FMaskArray[ I, J ]
  else
  	Result := 0;

end;

procedure	TBBMask.SetRow( I,J: integer; Item: Byte );
begin

	if( ( ( I >= 0 ) and ( I < MaskItems ) ) and
  		( ( J >= 0 ) and ( J < MaskItemSize ) ) ) then
  	FMaskArray[ I, J ] := Item;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -