📄 bbcommon.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 + -