Changeset 4


Ignore:
Timestamp:
Jul 27, 2009, 3:19:14 PM (15 years ago)
Author:
george
Message:
  • Přidáno: Objektová třída TPoint, TDouble.
Location:
ObjectBaseTypes
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • ObjectBaseTypes

    • Property svn:ignore
      •  

        old new  
        33TestApplication.res
        44*.dcu
         5*.~dsk
  • ObjectBaseTypes/TestApplication.bdsproj

    r3 r4  
    11<?xml version="1.0" encoding="utf-8"?>
    22<BorlandProject>
    3   <PersonalityInfo>
    4     <Option>
    5       <Option Name="Personality">Delphi.Personality</Option>
    6       <Option Name="ProjectType"></Option>
    7       <Option Name="Version">1.0</Option>
    8       <Option Name="GUID">{1EE19F66-8842-4091-BF31-E9295482A00F}</Option>
    9     </Option>
    10   </PersonalityInfo>
    11   <Delphi.Personality>
    12     <Source>
    13       <Source Name="MainSource">TestApplication.dpr</Source>
    14     </Source>
    15     <FileVersion>
    16       <FileVersion Name="Version">7.0</FileVersion>
    17     </FileVersion>
    18     <Compiler>
    19       <Compiler Name="A">8</Compiler>
    20       <Compiler Name="B">0</Compiler>
    21       <Compiler Name="C">1</Compiler>
    22       <Compiler Name="D">1</Compiler>
    23       <Compiler Name="E">0</Compiler>
    24       <Compiler Name="F">0</Compiler>
    25       <Compiler Name="G">1</Compiler>
    26       <Compiler Name="H">1</Compiler>
    27       <Compiler Name="I">1</Compiler>
    28       <Compiler Name="J">0</Compiler>
    29       <Compiler Name="K">0</Compiler>
    30       <Compiler Name="L">1</Compiler>
    31       <Compiler Name="M">0</Compiler>
    32       <Compiler Name="N">1</Compiler>
    33       <Compiler Name="O">1</Compiler>
    34       <Compiler Name="P">1</Compiler>
    35       <Compiler Name="Q">0</Compiler>
    36       <Compiler Name="R">0</Compiler>
    37       <Compiler Name="S">0</Compiler>
    38       <Compiler Name="T">0</Compiler>
    39       <Compiler Name="U">0</Compiler>
    40       <Compiler Name="V">1</Compiler>
    41       <Compiler Name="W">0</Compiler>
    42       <Compiler Name="X">1</Compiler>
    43       <Compiler Name="Y">1</Compiler>
    44       <Compiler Name="Z">1</Compiler>
    45       <Compiler Name="ShowHints">True</Compiler>
    46       <Compiler Name="ShowWarnings">True</Compiler>
    47       <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
    48       <Compiler Name="NamespacePrefix"></Compiler>
    49       <Compiler Name="GenerateDocumentation">False</Compiler>
    50       <Compiler Name="DefaultNamespace"></Compiler>
    51       <Compiler Name="SymbolDeprecated">True</Compiler>
    52       <Compiler Name="SymbolLibrary">True</Compiler>
    53       <Compiler Name="SymbolPlatform">True</Compiler>
    54       <Compiler Name="SymbolExperimental">True</Compiler>
    55       <Compiler Name="UnitLibrary">True</Compiler>
    56       <Compiler Name="UnitPlatform">True</Compiler>
    57       <Compiler Name="UnitDeprecated">True</Compiler>
    58       <Compiler Name="UnitExperimental">True</Compiler>
    59       <Compiler Name="HResultCompat">True</Compiler>
    60       <Compiler Name="HidingMember">True</Compiler>
    61       <Compiler Name="HiddenVirtual">True</Compiler>
    62       <Compiler Name="Garbage">True</Compiler>
    63       <Compiler Name="BoundsError">True</Compiler>
    64       <Compiler Name="ZeroNilCompat">True</Compiler>
    65       <Compiler Name="StringConstTruncated">True</Compiler>
    66       <Compiler Name="ForLoopVarVarPar">True</Compiler>
    67       <Compiler Name="TypedConstVarPar">True</Compiler>
    68       <Compiler Name="AsgToTypedConst">True</Compiler>
    69       <Compiler Name="CaseLabelRange">True</Compiler>
    70       <Compiler Name="ForVariable">True</Compiler>
    71       <Compiler Name="ConstructingAbstract">True</Compiler>
    72       <Compiler Name="ComparisonFalse">True</Compiler>
    73       <Compiler Name="ComparisonTrue">True</Compiler>
    74       <Compiler Name="ComparingSignedUnsigned">True</Compiler>
    75       <Compiler Name="CombiningSignedUnsigned">True</Compiler>
    76       <Compiler Name="UnsupportedConstruct">True</Compiler>
    77       <Compiler Name="FileOpen">True</Compiler>
    78       <Compiler Name="FileOpenUnitSrc">True</Compiler>
    79       <Compiler Name="BadGlobalSymbol">True</Compiler>
    80       <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
    81       <Compiler Name="InvalidDirective">True</Compiler>
    82       <Compiler Name="PackageNoLink">True</Compiler>
    83       <Compiler Name="PackageThreadVar">True</Compiler>
    84       <Compiler Name="ImplicitImport">True</Compiler>
    85       <Compiler Name="HPPEMITIgnored">True</Compiler>
    86       <Compiler Name="NoRetVal">True</Compiler>
    87       <Compiler Name="UseBeforeDef">True</Compiler>
    88       <Compiler Name="ForLoopVarUndef">True</Compiler>
    89       <Compiler Name="UnitNameMismatch">True</Compiler>
    90       <Compiler Name="NoCFGFileFound">True</Compiler>
    91       <Compiler Name="ImplicitVariants">True</Compiler>
    92       <Compiler Name="UnicodeToLocale">True</Compiler>
    93       <Compiler Name="LocaleToUnicode">True</Compiler>
    94       <Compiler Name="ImagebaseMultiple">True</Compiler>
    95       <Compiler Name="SuspiciousTypecast">True</Compiler>
    96       <Compiler Name="PrivatePropAccessor">True</Compiler>
    97       <Compiler Name="UnsafeType">False</Compiler>
    98       <Compiler Name="UnsafeCode">False</Compiler>
    99       <Compiler Name="UnsafeCast">False</Compiler>
    100       <Compiler Name="OptionTruncated">True</Compiler>
    101       <Compiler Name="WideCharReduced">True</Compiler>
    102       <Compiler Name="DuplicatesIgnored">True</Compiler>
    103       <Compiler Name="UnitInitSeq">True</Compiler>
    104       <Compiler Name="LocalPInvoke">True</Compiler>
    105       <Compiler Name="MessageDirective">True</Compiler>
    106       <Compiler Name="CodePage"></Compiler>
    107     </Compiler>
    108     <Linker>
    109       <Linker Name="MapFile">0</Linker>
    110       <Linker Name="OutputObjs">0</Linker>
    111       <Linker Name="GenerateHpps">False</Linker>
    112       <Linker Name="ConsoleApp">1</Linker>
    113       <Linker Name="DebugInfo">False</Linker>
    114       <Linker Name="RemoteSymbols">False</Linker>
    115       <Linker Name="GenerateDRC">False</Linker>
    116       <Linker Name="MinStackSize">16384</Linker>
    117       <Linker Name="MaxStackSize">1048576</Linker>
    118       <Linker Name="ImageBase">4194304</Linker>
    119       <Linker Name="ExeDescription"></Linker>
    120     </Linker>
    121     <Directories>
    122       <Directories Name="OutputDir"></Directories>
    123       <Directories Name="UnitOutputDir"></Directories>
    124       <Directories Name="PackageDLLOutputDir"></Directories>
    125       <Directories Name="PackageDCPOutputDir"></Directories>
    126       <Directories Name="SearchPath"></Directories>
    127       <Directories Name="Packages"></Directories>
    128       <Directories Name="Conditionals"></Directories>
    129       <Directories Name="DebugSourceDirs"></Directories>
    130       <Directories Name="UsePackages">False</Directories>
    131     </Directories>
    132     <Parameters>
    133       <Parameters Name="RunParams"></Parameters>
    134       <Parameters Name="HostApplication"></Parameters>
    135       <Parameters Name="Launcher"></Parameters>
    136       <Parameters Name="UseLauncher">False</Parameters>
    137       <Parameters Name="DebugCWD"></Parameters>
    138       <Parameters Name="Debug Symbols Search Path"></Parameters>
    139       <Parameters Name="LoadAllSymbols">True</Parameters>
    140       <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
    141     </Parameters>
    142     <VersionInfo>
    143       <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
    144       <VersionInfo Name="AutoIncBuild">False</VersionInfo>
    145       <VersionInfo Name="MajorVer">1</VersionInfo>
    146       <VersionInfo Name="MinorVer">0</VersionInfo>
    147       <VersionInfo Name="Release">0</VersionInfo>
    148       <VersionInfo Name="Build">0</VersionInfo>
    149       <VersionInfo Name="Debug">False</VersionInfo>
    150       <VersionInfo Name="PreRelease">False</VersionInfo>
    151       <VersionInfo Name="Special">False</VersionInfo>
    152       <VersionInfo Name="Private">False</VersionInfo>
    153       <VersionInfo Name="DLL">False</VersionInfo>
    154       <VersionInfo Name="Locale">1029</VersionInfo>
    155       <VersionInfo Name="CodePage">1250</VersionInfo>
    156     </VersionInfo>
    157     <VersionInfoKeys>
    158       <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
    159       <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
    160       <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
    161       <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
    162       <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
    163       <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
    164       <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
    165       <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
    166       <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
    167       <VersionInfoKeys Name="Comments"></VersionInfoKeys>
    168     </VersionInfoKeys>
    169   </Delphi.Personality>
     3        <PersonalityInfo>
     4                <Option>
     5                        <Option Name="Personality">Delphi.Personality</Option>
     6                        <Option Name="ProjectType"></Option>
     7                        <Option Name="Version">1.0</Option>
     8                        <Option Name="GUID">{1EE19F66-8842-4091-BF31-E9295482A00F}</Option>
     9                </Option>
     10        </PersonalityInfo>
     11        <Delphi.Personality>
     12                <Source>
     13                        <Source Name="MainSource">TestApplication.dpr</Source>
     14                </Source>
     15                <FileVersion>
     16                        <FileVersion Name="Version">7.0</FileVersion>
     17                </FileVersion>
     18                <Compiler>
     19                        <Compiler Name="A">8</Compiler>
     20                        <Compiler Name="B">0</Compiler>
     21                        <Compiler Name="C">1</Compiler>
     22                        <Compiler Name="D">1</Compiler>
     23                        <Compiler Name="E">0</Compiler>
     24                        <Compiler Name="F">0</Compiler>
     25                        <Compiler Name="G">1</Compiler>
     26                        <Compiler Name="H">1</Compiler>
     27                        <Compiler Name="I">1</Compiler>
     28                        <Compiler Name="J">0</Compiler>
     29                        <Compiler Name="K">0</Compiler>
     30                        <Compiler Name="L">1</Compiler>
     31                        <Compiler Name="M">0</Compiler>
     32                        <Compiler Name="N">1</Compiler>
     33                        <Compiler Name="O">1</Compiler>
     34                        <Compiler Name="P">1</Compiler>
     35                        <Compiler Name="Q">0</Compiler>
     36                        <Compiler Name="R">0</Compiler>
     37                        <Compiler Name="S">0</Compiler>
     38                        <Compiler Name="T">0</Compiler>
     39                        <Compiler Name="U">0</Compiler>
     40                        <Compiler Name="V">1</Compiler>
     41                        <Compiler Name="W">0</Compiler>
     42                        <Compiler Name="X">1</Compiler>
     43                        <Compiler Name="Y">1</Compiler>
     44                        <Compiler Name="Z">1</Compiler>
     45                        <Compiler Name="ShowHints">True</Compiler>
     46                        <Compiler Name="ShowWarnings">True</Compiler>
     47                        <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
     48                        <Compiler Name="NamespacePrefix"></Compiler>
     49                        <Compiler Name="GenerateDocumentation">False</Compiler>
     50                        <Compiler Name="DefaultNamespace"></Compiler>
     51                        <Compiler Name="SymbolDeprecated">True</Compiler>
     52                        <Compiler Name="SymbolLibrary">True</Compiler>
     53                        <Compiler Name="SymbolPlatform">True</Compiler>
     54                        <Compiler Name="SymbolExperimental">True</Compiler>
     55                        <Compiler Name="UnitLibrary">True</Compiler>
     56                        <Compiler Name="UnitPlatform">True</Compiler>
     57                        <Compiler Name="UnitDeprecated">True</Compiler>
     58                        <Compiler Name="UnitExperimental">True</Compiler>
     59                        <Compiler Name="HResultCompat">True</Compiler>
     60                        <Compiler Name="HidingMember">True</Compiler>
     61                        <Compiler Name="HiddenVirtual">True</Compiler>
     62                        <Compiler Name="Garbage">True</Compiler>
     63                        <Compiler Name="BoundsError">True</Compiler>
     64                        <Compiler Name="ZeroNilCompat">True</Compiler>
     65                        <Compiler Name="StringConstTruncated">True</Compiler>
     66                        <Compiler Name="ForLoopVarVarPar">True</Compiler>
     67                        <Compiler Name="TypedConstVarPar">True</Compiler>
     68                        <Compiler Name="AsgToTypedConst">True</Compiler>
     69                        <Compiler Name="CaseLabelRange">True</Compiler>
     70                        <Compiler Name="ForVariable">True</Compiler>
     71                        <Compiler Name="ConstructingAbstract">True</Compiler>
     72                        <Compiler Name="ComparisonFalse">True</Compiler>
     73                        <Compiler Name="ComparisonTrue">True</Compiler>
     74                        <Compiler Name="ComparingSignedUnsigned">True</Compiler>
     75                        <Compiler Name="CombiningSignedUnsigned">True</Compiler>
     76                        <Compiler Name="UnsupportedConstruct">True</Compiler>
     77                        <Compiler Name="FileOpen">True</Compiler>
     78                        <Compiler Name="FileOpenUnitSrc">True</Compiler>
     79                        <Compiler Name="BadGlobalSymbol">True</Compiler>
     80                        <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
     81                        <Compiler Name="InvalidDirective">True</Compiler>
     82                        <Compiler Name="PackageNoLink">True</Compiler>
     83                        <Compiler Name="PackageThreadVar">True</Compiler>
     84                        <Compiler Name="ImplicitImport">True</Compiler>
     85                        <Compiler Name="HPPEMITIgnored">True</Compiler>
     86                        <Compiler Name="NoRetVal">True</Compiler>
     87                        <Compiler Name="UseBeforeDef">True</Compiler>
     88                        <Compiler Name="ForLoopVarUndef">True</Compiler>
     89                        <Compiler Name="UnitNameMismatch">True</Compiler>
     90                        <Compiler Name="NoCFGFileFound">True</Compiler>
     91                        <Compiler Name="ImplicitVariants">True</Compiler>
     92                        <Compiler Name="UnicodeToLocale">True</Compiler>
     93                        <Compiler Name="LocaleToUnicode">True</Compiler>
     94                        <Compiler Name="ImagebaseMultiple">True</Compiler>
     95                        <Compiler Name="SuspiciousTypecast">True</Compiler>
     96                        <Compiler Name="PrivatePropAccessor">True</Compiler>
     97                        <Compiler Name="UnsafeType">False</Compiler>
     98                        <Compiler Name="UnsafeCode">False</Compiler>
     99                        <Compiler Name="UnsafeCast">False</Compiler>
     100                        <Compiler Name="OptionTruncated">True</Compiler>
     101                        <Compiler Name="WideCharReduced">True</Compiler>
     102                        <Compiler Name="DuplicatesIgnored">True</Compiler>
     103                        <Compiler Name="UnitInitSeq">True</Compiler>
     104                        <Compiler Name="LocalPInvoke">True</Compiler>
     105                        <Compiler Name="MessageDirective">True</Compiler>
     106                        <Compiler Name="CodePage"></Compiler>
     107                </Compiler>
     108                <Linker>
     109                        <Linker Name="MapFile">0</Linker>
     110                        <Linker Name="OutputObjs">0</Linker>
     111                        <Linker Name="GenerateHpps">False</Linker>
     112                        <Linker Name="ConsoleApp">1</Linker>
     113                        <Linker Name="DebugInfo">False</Linker>
     114                        <Linker Name="RemoteSymbols">False</Linker>
     115                        <Linker Name="GenerateDRC">False</Linker>
     116                        <Linker Name="MinStackSize">16384</Linker>
     117                        <Linker Name="MaxStackSize">1048576</Linker>
     118                        <Linker Name="ImageBase">4194304</Linker>
     119                        <Linker Name="ExeDescription"></Linker>
     120                </Linker>
     121                <Directories>
     122                        <Directories Name="OutputDir"></Directories>
     123                        <Directories Name="UnitOutputDir"></Directories>
     124                        <Directories Name="PackageDLLOutputDir"></Directories>
     125                        <Directories Name="PackageDCPOutputDir"></Directories>
     126                        <Directories Name="SearchPath"></Directories>
     127                        <Directories Name="Packages"></Directories>
     128                        <Directories Name="Conditionals"></Directories>
     129                        <Directories Name="DebugSourceDirs"></Directories>
     130                        <Directories Name="UsePackages">False</Directories>
     131                </Directories>
     132                <Parameters>
     133                        <Parameters Name="RunParams"></Parameters>
     134                        <Parameters Name="HostApplication"></Parameters>
     135                        <Parameters Name="Launcher"></Parameters>
     136                        <Parameters Name="UseLauncher">False</Parameters>
     137                        <Parameters Name="DebugCWD"></Parameters>
     138                        <Parameters Name="Debug Symbols Search Path"></Parameters>
     139                        <Parameters Name="LoadAllSymbols">True</Parameters>
     140                        <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
     141                </Parameters>
     142                <VersionInfo>
     143                        <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
     144                        <VersionInfo Name="AutoIncBuild">False</VersionInfo>
     145                        <VersionInfo Name="MajorVer">1</VersionInfo>
     146                        <VersionInfo Name="MinorVer">0</VersionInfo>
     147                        <VersionInfo Name="Release">0</VersionInfo>
     148                        <VersionInfo Name="Build">0</VersionInfo>
     149                        <VersionInfo Name="Debug">False</VersionInfo>
     150                        <VersionInfo Name="PreRelease">False</VersionInfo>
     151                        <VersionInfo Name="Special">False</VersionInfo>
     152                        <VersionInfo Name="Private">False</VersionInfo>
     153                        <VersionInfo Name="DLL">False</VersionInfo>
     154                        <VersionInfo Name="Locale">1029</VersionInfo>
     155                        <VersionInfo Name="CodePage">1250</VersionInfo>
     156                </VersionInfo>
     157                <VersionInfoKeys>
     158                        <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
     159                        <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
     160                        <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
     161                        <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
     162                        <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
     163                        <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
     164                        <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
     165                        <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
     166                        <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
     167                        <VersionInfoKeys Name="Comments"></VersionInfoKeys>
     168                </VersionInfoKeys>
     169        </Delphi.Personality>
    170170</BorlandProject>
  • ObjectBaseTypes/TestApplication.dpr

    r3 r4  
    1010  UObjectByte in 'UObjectByte.pas',
    1111  UInterfacedBits in 'UInterfacedBits.pas',
    12   UObjectDouble in 'UObjectDouble.pas';
     12  UObjectDouble in 'UObjectDouble.pas',
     13  UObjectPoint in 'UObjectPoint.pas',
     14  UObjectNumber in 'UObjectNumber.pas';
    1315
    1416{$R *.res}
  • ObjectBaseTypes/UMainForm.pas

    r3 r4  
    5757    Add(BoolToStr(Result.Value) + ' := ' + BoolToStr(Operand1.Value));
    5858
    59     // Ordinal
    60     Result.Value := False;
    61     Int := TInteger(Result.Ordinal);
    62     Add(IntToStr(Int.Value) + ' := ordinal ' + BoolToStr(Result.Value));
    63 
    64     Result.Value := True;
    65     Int := TInteger(Result.Ordinal);
    66     Add(IntToStr(Int.Value) + ' := ordinal ' + BoolToStr(Result.Value));
    67 
    6859    // OrTo
    6960    Result.Value := True;
     
    9889    Bool := Result.EqualTo(Operand1);
    9990    Add(BoolToStr(Bool.Value) + ' := ' + Result.Value + '.EqualTo(' + Operand1.Value + ')');
     91
     92    // Length
     93    Result.Value := 'ABCD';
     94    Int := Result.Length;
     95    Add(IntToStr(Int.Value) + ' := ' + Result.Value + '.Length');
     96
     97    // Reverse
     98    Operand1.Value := 'ABCD';
     99    Result.Assign(Operand1);
     100    Result.Reverse;
     101    Add(Result.Value + ' := ' + Operand1.Value + '.Reverse');
    100102  end;
    101103end;
  • ObjectBaseTypes/UObjectBoolean.pas

    r3 r4  
    1111  IComparable = interface
    1212    function EqualTo(Operand: TInterfacedObject): TBoolean;
    13     function HigherThen(Operand: TInterfacedObject): TBoolean;
    14     function LowerThan(Operand: TInterfacedObject): TBoolean;
    1513  end;
    1614
    17   TBoolean = class(TInterfacedObject, IAssignable, IComparable, IOrdinal)
     15  TBoolean = class(TInterfacedObject, IComparable, IAssignable)
    1816    Value: Boolean;
    19     function Ordinal: IOrdinal;
    20     function Predecessor: IOrdinal;
    21     function Successor: IOrdinal;
    22     function Low: IOrdinal;
    23     function High: IOrdinal;
    2417    procedure Invert;
    2518    function EqualTo(Operand: TInterfacedObject): TBoolean;
     
    6154end;
    6255
    63 function TBoolean.High: IOrdinal;
    64 begin
    65   Result := TBoolean.Create;
    66   TBoolean(Result).Value := True;
    67 end;
    68 
    6956function TBoolean.HigherThen(Operand: TInterfacedObject): TBoolean;
    7057begin
     
    8067end;
    8168
    82 function TBoolean.Low: IOrdinal;
    83 begin
    84   Result := TBoolean.Create;
    85   TBoolean(Result).Value := False;
    86 end;
    87 
    8869function TBoolean.LowerThan(Operand: TInterfacedObject): TBoolean;
    8970begin
     
    9273    Result.Value := Value < TBoolean(Operand).Value;
    9374  end else raise EInvalidCast.Create('Typecast error');
    94 end;
    95 
    96 function TBoolean.Ordinal: IOrdinal;
    97 begin
    98   Result := TInteger.Create;
    99   TInteger(Result).Value := Integer(Value);
    10075end;
    10176
     
    10883end;
    10984
    110 function TBoolean.Predecessor: IOrdinal;
    111 begin
    112   raise ENotImplemented.Create('Not implemented');
    113 end;
    114 
    115 function TBoolean.Successor: IOrdinal;
    116 begin
    117 
    118 end;
    11985
    12086end.
  • ObjectBaseTypes/UObjectByte.pas

    r3 r4  
    44
    55uses
    6   Classes, SysUtils, UObjectTypeBase, UInterfacedBits;
     6  Classes, SysUtils, UObjectTypeBase, UInterfacedBits, UObjectNumber, UObjectBoolean;
    77
    88type
    9   TByte = class(TInterfacedObject, IAssignable)
     9  TByte = class(TInterfacedObject, IAssignable, IOrderable)
    1010  private
    1111    function GetAsBits: TInterfacedBits;
     
    1414    Value: Byte;
    1515    procedure Assign(Source: TInterfacedObject);
     16    function HigherThen(Operand: IOrderable): TBoolean;
     17    function LowerThan(Operand: IOrderable): TBoolean;
     18    function Max(Operand1, Operand2: IOrderable): IOrderable;
     19    function Min(Operand1, Operand2: IOrderable): IOrderable;
    1620    property AsBits: TInterfacedBits read GetAsBits write SetAsBits;
    1721  end;
     
    3741end;
    3842
     43function TByte.HigherThen(Operand: IOrderable): TBoolean;
     44begin
     45
     46end;
     47
     48function TByte.LowerThan(Operand: IOrderable): TBoolean;
     49begin
     50
     51end;
     52
     53function TByte.Max(Operand1, Operand2: IOrderable): IOrderable;
     54begin
     55
     56end;
     57
     58function TByte.Min(Operand1, Operand2: IOrderable): IOrderable;
     59begin
     60
     61end;
     62
    3963procedure TByte.SetAsBits(const Value: TInterfacedBits);
    4064var
  • ObjectBaseTypes/UObjectDouble.pas

    r3 r4  
    33interface
    44
     5uses
     6  UObjectNumber, UObjectTypeBase, UObjectBoolean;
     7
     8type
     9  TDouble = class(TInterfacedObject, IAssignable, IOrderable)
     10    procedure Assign(Source: TInterfacedObject);
     11    function HigherThen(Operand: IOrderable): TBoolean;
     12    function LowerThan(Operand: IOrderable): TBoolean;
     13    function Max(Operand1, Operand2: IOrderable): IOrderable;
     14    function Min(Operand1, Operand2: IOrderable): IOrderable;
     15  end;
     16
    517implementation
    618
     19{ TDouble }
     20
     21procedure TDouble.Assign(Source: TInterfacedObject);
     22begin
     23
     24end;
     25
     26function TDouble.HigherThen(Operand: IOrderable): TBoolean;
     27begin
     28
     29end;
     30
     31function TDouble.LowerThan(Operand: IOrderable): TBoolean;
     32begin
     33
     34end;
     35
     36function TDouble.Max(Operand1, Operand2: IOrderable): IOrderable;
     37begin
     38
     39end;
     40
     41function TDouble.Min(Operand1, Operand2: IOrderable): IOrderable;
     42begin
     43
     44end;
     45
    746end.
  • ObjectBaseTypes/UObjectInteger.pas

    r3 r4  
    44
    55uses
    6   SysUtils, Classes, UObjectTypeBase, UObjectBoolean;
     6  SysUtils, Classes, UObjectTypeBase, UObjectBoolean, UObjectNumber;
    77
    88type
    9   TInteger = class(TInterfacedObject, IAssignable, IComparable, IOrdinal)
     9  TInteger = class(TInterfacedObject, IAssignable, IOrdinal)
    1010  private
    1111  public
  • ObjectBaseTypes/UObjectString.pas

    r3 r4  
    44
    55uses
    6   SysUtils, UObjectTypeBase, UObjectBoolean, UObjectInteger;
     6  SysUtils, UObjectTypeBase, UObjectBoolean, UObjectInteger, StrUtils;
    77
    88type
     
    1919    procedure Insert(Index: TInteger; SubString: TString);
    2020    function Pos(SubString: TString): TInteger;
     21    procedure Reverse;
     22    function LeftString(Count: TInteger): TString;
     23    function RightString(Count: TInteger): TString;
    2124  end;
    2225
     
    5356end;
    5457
     58function TString.LeftString(Count: TInteger): TString;
     59begin
     60  Result := TString.Create;
     61  Result.Value := StrUtils.LeftStr(Value, Count.Value);
     62end;
     63
    5564function TString.Length: TInteger;
    5665begin
     
    7079function TString.Pos(SubString: TString): TInteger;
    7180begin
     81  Result := TInteger.Create;
    7282  Result.Value := System.Pos(SubString.Value, Value);
     83end;
     84
     85procedure TString.Reverse;
     86begin
     87  Value := StrUtils.ReverseString(Value);
     88end;
     89
     90function TString.RightString(Count: TInteger): TString;
     91begin
     92  Result := TString.Create;
     93  Result.Value := StrUtils.RightStr(Value, Count.Value);
    7394end;
    7495
  • ObjectBaseTypes/UObjectTypeBase.pas

    r3 r4  
    1313  end;
    1414
    15   IOrdinal = interface
    16     function Ordinal: IOrdinal;
    17     function Predecessor: IOrdinal;
    18     function Successor: IOrdinal;
    19     function Low: IOrdinal;
    20     function High: IOrdinal;
     15  ISortable = interface
     16    procedure Sort;
     17  end;
     18
     19  IStreamable = interface
     20    function GetStream: TStream;
     21    procedure SetStrem(Stream: TStream);
    2122  end;
    2223
Note: See TracChangeset for help on using the changeset viewer.