1
unit LUX.Audio.SDIF.Matrixs;
3
interface //#################################################################### ■
5
uses System.Classes, System.RegularExpressions,
8
type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
10
TMatrixSDIF<TVALUE:record> = class;
23
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
25
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
27
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixSDIF<TVALUE>
29
TMatrixSDIF<TVALUE:record> = class( TMatrixSDIF )
31
class var _Reg :TRegEx;
33
_Values :TArray<TVALUE>;
35
procedure SetColCount( const ColCount_:Integer ); override;
36
procedure SetRowCount( const RowCount_:Integer ); override;
37
function GetValues( const Y_,X_:Integer ) :TVALUE; virtual;
38
procedure SetValues( const Y_,X_:Integer; const Value_:TVALUE ); virtual;
40
procedure ReadValues( const F_:TFileStream ); override;
41
procedure ReadValues( const F_:TStreamReader ); override;
43
class constructor Create;
44
constructor Create; override;
45
destructor Destroy; override;
47
property Values[ const Y_,X_:Integer ] :TVALUE read GetValues write SetValues;
50
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixChar
52
TMatrixChar = class( TMatrixSDIF<AnsiChar> )
56
function GetTexts( const Y_,X_:Integer ) :String; override;
57
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
58
function GetLines( const Y_:Integer ) :String; virtual;
61
property Lines[ const Y_:Integer ] :String read GetLines;
64
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixFlo4
66
TMatrixFlo4 = class( TMatrixSDIF<Single> )
70
function GetValues( const Y_,X_:Integer ) :Single; override;
71
procedure SetValues( const Y_,X_:Integer; const Value_:Single ); override;
72
function GetTexts( const Y_,X_:Integer ) :String; override;
73
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
77
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixFlo8
79
TMatrixFlo8 = class( TMatrixSDIF<Double> )
83
function GetValues( const Y_,X_:Integer ) :Double; override;
84
procedure SetValues( const Y_,X_:Integer; const Value_:Double ); override;
85
function GetTexts( const Y_,X_:Integer ) :String; override;
86
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
90
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt1
92
TMatrixInt1 = class( TMatrixSDIF<Int8> )
96
function GetTexts( const Y_,X_:Integer ) :String; override;
97
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
101
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt2
103
TMatrixInt2 = class( TMatrixSDIF<Int16> )
107
function GetValues( const Y_,X_:Integer ) :Int16; override;
108
procedure SetValues( const Y_,X_:Integer; const Value_:Int16 ); override;
109
function GetTexts( const Y_,X_:Integer ) :String; override;
110
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
114
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt4
116
TMatrixInt4 = class( TMatrixSDIF<Int32> )
120
function GetValues( const Y_,X_:Integer ) :Int32; override;
121
procedure SetValues( const Y_,X_:Integer; const Value_:Int32 ); override;
122
function GetTexts( const Y_,X_:Integer ) :String; override;
123
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
127
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt8
129
TMatrixInt8 = class( TMatrixSDIF<Int64> )
133
function GetValues( const Y_,X_:Integer ) :Int64; override;
134
procedure SetValues( const Y_,X_:Integer; const Value_:Int64 ); override;
135
function GetTexts( const Y_,X_:Integer ) :String; override;
136
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
140
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn1
142
TMatrixUIn1 = class( TMatrixSDIF<UInt8> )
146
function GetTexts( const Y_,X_:Integer ) :String; override;
147
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
151
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn2
153
TMatrixUIn2 = class( TMatrixSDIF<UInt16> )
157
function GetValues( const Y_,X_:Integer ) :UInt16; override;
158
procedure SetValues( const Y_,X_:Integer; const Value_:UInt16 ); override;
159
function GetTexts( const Y_,X_:Integer ) :String; override;
160
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
164
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn4
166
TMatrixUIn4 = class( TMatrixSDIF<UInt32> )
170
function GetValues( const Y_,X_:Integer ) :UInt32; override;
171
procedure SetValues( const Y_,X_:Integer; const Value_:UInt32 ); override;
172
function GetTexts( const Y_,X_:Integer ) :String; override;
173
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
177
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn8
179
TMatrixUIn8 = class( TMatrixSDIF<UInt64> )
183
function GetValues( const Y_,X_:Integer ) :UInt64; override;
184
procedure SetValues( const Y_,X_:Integer; const Value_:UInt64 ); override;
185
function GetTexts( const Y_,X_:Integer ) :String; override;
186
procedure SetTexts( const Y_,X_:Integer; const Text_:String ); override;
190
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
192
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
194
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
196
implementation //############################################################### ■
198
uses System.SysUtils, System.Math;
200
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
202
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
204
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixSDIF<TVALUE>
206
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
208
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
210
/////////////////////////////////////////////////////////////////////// アクセス
212
procedure TMatrixSDIF<TVALUE>.SetRowCount( const RowCount_:Integer );
216
SetLength( _Values, _RowCount * _ColCount );
219
procedure TMatrixSDIF<TVALUE>.SetColCount( const ColCount_:Integer );
223
SetLength( _Values, _RowCount * _ColCount );
226
function TMatrixSDIF<TVALUE>.GetValues( const Y_,X_:Integer ) :TVALUE;
228
Result := _Values[ Y_ * _ColCount + X_ ];
231
procedure TMatrixSDIF<TVALUE>.SetValues( const Y_,X_:Integer; const Value_:TVALUE );
233
_Values[ Y_ * _ColCount + X_ ] := Value_;
236
/////////////////////////////////////////////////////////////////////// メソッド
238
procedure TMatrixSDIF<TVALUE>.ReadValues( const F_:TFileStream );
242
N := _RowCount * _ColCount * SizeOf( TVALUE );
244
F_.Read( _Values[ 0 ], N );
246
P := 8 * Ceil( N / 8 ) - N;
248
F_.Seek( P, soFromCurrent ); // 8 Bytes のアライメント
251
procedure TMatrixSDIF<TVALUE>.ReadValues( const F_:TStreamReader );
254
Ms :TMatchCollection;
256
for Y := 0 to _RowCount-1 do
258
Ms := _Reg.Matches( F_.ReadLine );
260
for X := 0 to _ColCount-1 do Texts[ Y, X ] := Ms[ X ].Groups[ 1 ].Value;
264
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
266
class constructor TMatrixSDIF<TVALUE>.Create;
270
_Reg := TRegEx.Create( '\s+(\S+)' );
273
constructor TMatrixSDIF<TVALUE>.Create;
279
destructor TMatrixSDIF<TVALUE>.Destroy;
285
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixChar
287
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
289
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
291
/////////////////////////////////////////////////////////////////////// アクセス
293
function TMatrixChar.GetTexts( const Y_,X_:Integer ) :String;
295
Result := Char( Values[ Y_, X_ ] );
298
procedure TMatrixChar.SetTexts( const Y_,X_:Integer; const Text_:String );
300
Values[ Y_, X_ ] := AnsiChar( Text_[ 2 ] );
303
function TMatrixChar.GetLines( const Y_:Integer ) :String;
309
for X := 0 to ColCount-1 do Result := Result + Char( Values[ Y_, X ] );
312
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
314
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixFlo4
316
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
318
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
320
/////////////////////////////////////////////////////////////////////// アクセス
322
function TMatrixFlo4.GetValues( const Y_,X_:Integer ) :Single;
324
Result := RevBytes( inherited GetValues( Y_, X_ ) );
327
procedure TMatrixFlo4.SetValues( const Y_,X_:Integer; const Value_:Single );
329
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
332
function TMatrixFlo4.GetTexts( const Y_,X_:Integer ) :String;
334
Result := Values[ Y_, X_ ].ToString;
337
procedure TMatrixFlo4.SetTexts( const Y_,X_:Integer; const Text_:String );
339
if Text_ = 'nan' then Values[ Y_, X_ ] := Single.NaN
340
else Values[ Y_, X_ ] := Text_.ToSingle;
343
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
345
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixFlo8
347
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
349
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
351
/////////////////////////////////////////////////////////////////////// アクセス
353
function TMatrixFlo8.GetValues( const Y_,X_:Integer ) :Double;
355
Result := RevBytes( inherited GetValues( Y_, X_ ) );
358
procedure TMatrixFlo8.SetValues( const Y_,X_:Integer; const Value_:Double );
360
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
363
function TMatrixFlo8.GetTexts( const Y_,X_:Integer ) :String;
365
Result := Values[ Y_, X_ ].ToString;
368
procedure TMatrixFlo8.SetTexts( const Y_,X_:Integer; const Text_:String );
370
if Text_ = 'nan' then Values[ Y_, X_ ] := Double.NaN
371
else Values[ Y_, X_ ] := Text_.ToDouble;
374
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
376
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt1
378
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
380
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
382
/////////////////////////////////////////////////////////////////////// アクセス
384
function TMatrixInt1.GetTexts( const Y_,X_:Integer ) :String;
386
Result := Values[ Y_, X_ ].ToString;
389
procedure TMatrixInt1.SetTexts( const Y_,X_:Integer; const Text_:String );
391
Values[ Y_, X_ ] := Text_.ToInteger;
394
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
396
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt2
398
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
400
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
402
/////////////////////////////////////////////////////////////////////// アクセス
404
function TMatrixInt2.GetValues( const Y_,X_:Integer ) :Int16;
406
Result := RevBytes( inherited GetValues( Y_, X_ ) );
409
procedure TMatrixInt2.SetValues( const Y_,X_:Integer; const Value_:Int16 );
411
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
414
function TMatrixInt2.GetTexts( const Y_,X_:Integer ) :String;
416
Result := Values[ Y_, X_ ].ToString;
419
procedure TMatrixInt2.SetTexts( const Y_,X_:Integer; const Text_:String );
421
Values[ Y_, X_ ] := Text_.ToInteger;
424
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
426
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt4
428
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
430
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
432
/////////////////////////////////////////////////////////////////////// アクセス
434
function TMatrixInt4.GetValues( const Y_,X_:Integer ) :Int32;
436
Result := RevBytes( inherited GetValues( Y_, X_ ) );
439
procedure TMatrixInt4.SetValues( const Y_,X_:Integer; const Value_:Int32 );
441
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
444
function TMatrixInt4.GetTexts( const Y_,X_:Integer ) :String;
446
Result := Values[ Y_, X_ ].ToString;
449
procedure TMatrixInt4.SetTexts( const Y_,X_:Integer; const Text_:String );
451
Values[ Y_, X_ ] := Text_.ToInteger;
454
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
456
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixInt8
458
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
460
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
462
/////////////////////////////////////////////////////////////////////// アクセス
464
function TMatrixInt8.GetValues( const Y_,X_:Integer ) :Int64;
466
Result := RevBytes( inherited GetValues( Y_, X_ ) );
469
procedure TMatrixInt8.SetValues( const Y_,X_:Integer; const Value_:Int64 );
471
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
474
function TMatrixInt8.GetTexts( const Y_,X_:Integer ) :String;
476
Result := Values[ Y_, X_ ].ToString;
479
procedure TMatrixInt8.SetTexts( const Y_,X_:Integer; const Text_:String );
481
Values[ Y_, X_ ] := Text_.ToInt64;
484
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
486
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn1
488
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
490
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
492
/////////////////////////////////////////////////////////////////////// アクセス
494
function TMatrixUIn1.GetTexts( const Y_,X_:Integer ) :String;
496
Result := Values[ Y_, X_ ].ToString;
499
procedure TMatrixUIn1.SetTexts( const Y_,X_:Integer; const Text_:String );
501
Values[ Y_, X_ ] := Text_.ToInteger;
504
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
506
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn2
508
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
510
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
512
/////////////////////////////////////////////////////////////////////// アクセス
514
function TMatrixUIn2.GetValues( const Y_,X_:Integer ) :UInt16;
516
Result := RevBytes( inherited GetValues( Y_, X_ ) );
519
procedure TMatrixUIn2.SetValues( const Y_,X_:Integer; const Value_:UInt16 );
521
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
524
function TMatrixUIn2.GetTexts( const Y_,X_:Integer ) :String;
526
Result := Values[ Y_, X_ ].ToString;
529
procedure TMatrixUIn2.SetTexts( const Y_,X_:Integer; const Text_:String );
531
Values[ Y_, X_ ] := Text_.ToInteger;
534
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
536
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn4
538
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
540
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
542
/////////////////////////////////////////////////////////////////////// アクセス
544
function TMatrixUIn4.GetValues( const Y_,X_:Integer ) :UInt32;
546
Result := RevBytes( inherited GetValues( Y_, X_ ) );
549
procedure TMatrixUIn4.SetValues( const Y_,X_:Integer; const Value_:UInt32 );
551
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
554
function TMatrixUIn4.GetTexts( const Y_,X_:Integer ) :String;
556
Result := Values[ Y_, X_ ].ToString;
559
procedure TMatrixUIn4.SetTexts( const Y_,X_:Integer; const Text_:String );
561
Values[ Y_, X_ ] := Text_.ToInteger;
564
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
566
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TMatrixUIn8
568
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
570
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
572
/////////////////////////////////////////////////////////////////////// アクセス
574
function TMatrixUIn8.GetValues( const Y_,X_:Integer ) :UInt64;
576
Result := RevBytes( inherited GetValues( Y_, X_ ) );
579
procedure TMatrixUIn8.SetValues( const Y_,X_:Integer; const Value_:UInt64 );
581
inherited SetValues( Y_, X_, RevBytes( Value_ ) );
584
function TMatrixUIn8.GetTexts( const Y_,X_:Integer ) :String;
586
Result := Values[ Y_, X_ ].ToString;
589
procedure TMatrixUIn8.SetTexts( const Y_,X_:Integer; const Text_:String );
591
Values[ Y_, X_ ] := Text_.ToInt64;
594
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
596
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
598
//############################################################################## □
600
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
602
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
604
end. //######################################################################### ■