       

      27 

      

    JVaK  Windows ,  ,     
  .        
   . 
     ,  :      ,   
   !      , 
,   ,   : "   !".  
         ,   
 ,   ...      ,  
  ,         
,    ,       
 .. .   ? 
      :    Delphi!   
         
.       ,     
            
  .	: 

     

          ,    
         
.          ' 
       ,     
 ,       ( 
    ) ,         
   . 11       
,       . 

      

            
 Delphi. 

       Delphi 

      ,      
  Delphi. 

     " " 

         ,   ,   
 . 

        

       ,         
     . 

638


       

                
 .    ,    
    .   ,    
     . 
            .   
 ,      . ,  
,  ,    ,     
       (        
 ).  ,       
,          . 
          , 
       (     ).  
  ,       !   
 !      ! 
         .       
        ,  
  ,     .  :  
^^^ _^1- , ,      
.    ,    
   ,      . 
           .    
   ,      
,          
.      .  . 

         

    ,    " " (  
-)  ,   ,  
    ,   ""  
    .  ,  
   "" ,      
 ?   ,     :  
-     ,   
    . 
    Delphi          
. ,          
 , , ,     
.       ?     
      (,  , 
 ,  ),      
.  ,      -,  
  ,       ,  
      (    
   )  . 
                
   .    
 (   Debug,    *  )  
-'        
  $IFDEF, $IFNDEF, $ELSE  $ENDIF.   
 ""    . 

    DataSet   :=  GetData;   //      . 
    {$ifdef  Debug} 
    TestResultSet   :=  Sort_Tortoise(DataSet);   //  . 
    {$endif} 
    ResultSet := Sort_Hare(DataSet); //  . 
    {$ifdef Debug} 
    if not CompareData(ResultSet, TestResultSet) then 
    // ? 
    Raise Exception.Create('  DataSorting '); ($endif} 
       Debug,    . 
    DataSet := GetData; //   . TestResultSet := 
Sort_Tortoise(DataSet); //  . ResultSet := Sort_Hare(DataSet); 
//  . if not CompareData(ResultSet, TestResultSet) then 
    // ? Raise Exception.Create('  DataSorting '); 


     27.    639 

       Debug       
,         . 

    DataSet   := GetData;   //    . ResultSet   := 
 Sort_Hare(DataSet);   //  . 

     ,        
 ,     .    
    .    
   .   Project^Options     
Project Options,   Directories/Conditionals,     
Conditional defines.  . 27.1     (Debug  
Alpha).        . 
       ,     
 Project<=>Build All  ,    . 

     ! 
              
  . 

    {$define  Debug} 

    ,       ,   ,  
   .   , , 
    ,      
 .       

    {$undef Debug} 

        Debug   ,    
  $ DEFINE    . ,  
          ,  
 . 
       ,     , 
      .   , 
          
  ,       .   
   Compiler   Project Options,  
 . 27.2. 

    . 27.1.    Project Options   
   


        . 


    . 27.2.    Project Options   
   

       Optimization.     . 
       ,   , 
      .   
       $0+  $0-. 

    640  VI.   

       Stack Frames.    ,    
      ,      .  
   ,       . 
-'   $W+  $W-. 
       Range Checking.    ,  
     .     
  ,   ,      
 .        
 $R+  $R-. 
       Assertions ().        . 
         
  . ,        
.   $+  $-. 
       Overflow checking (Q).     ,  
         
   .   Range Checking,   
   ,    ,  , . 
  $Q+  $Q-. 
       , ,      
  .      
  ! 

      Assert 

     Assert    Delphi 3.     
   /.      
,    ;     
^,   .  
  : 

    Assert(< >) 

       , ,     
  ,   . 

    procedure  Foo(Count:   Cardinal); begin 
    Assert (Count   <   SizeOf(Word)); 
    end; 

       ,    ,  
  . 27.3. 
     ,       ,      
 if. . . else.   ,      
 Assert        .  
     $ASSERTIONS  ON  
$+,     Assert $ASSERTIONS OF 
    F  $- (     Assert     
 ). 

    . 27.3.    Assert 

               
   ,  ,   . 

    {$ifdef Debug} {$ASSERTIONS ON} {$else} 
    f$ASSERTIONS OFF} {$endif} 

           Assert?  
(,     ).     
  ,    .  , 
     ,  ,     . 

    function CountMe: Integer; 
    const ReferenceCount: Integer = 0; 
    begin 
    Inc(ReferenceCount) ; 


     27.    
    641 21   Delphi 3.   


    Result := ReferenceCount; end; 

    ,       Assert.  ,  
 ,     Assert,  
    ,    .    
  . 

      

         ,      
,      . ,    
  , ^    .  
Delphi   ,      
 . 
     ,        
         .  
       -, 
         .  
     ,       
,    ,   . 
         
 ,   . 27.4. 

    . 27.4.    ,     
  ?.. 

    ,           
: "        ,  
        ".    
   ,       
       .     
,        .  
      Delphi    
 . 

      Delphi 

    -,    ,      
,           
        
 ,    ...  , 
     Delphi,     
       ,  
" ",   " " 
(,  ,    \ bug, .. , . 
. .),  Delphi. 
      Delphi  ,     
  (  ) ,  ,    
 .    Delphi ,  : 
           Delphi,  
   , , ,     
.  , 90%   10%   
,           
,    10%  . 

     IDE   

         Delphi 3    
 (IDE)    ,     
  ,  ,   ( ). ,   
-   ,   Tools^Options   
   Environment Options    
Preferences (   . 27.5). 

    642	 VI.   

        Preferences   . 
       Integrated Debugging.      
,    ,     Run  . 
              
, ,        
,   .     
^J^fj^J^0 __:>' ^SHEJlKESffi1        
   .     
     . 
    I  1 

    . 27.5.   Preferences   
  Delphi 

    Step Program Block.   ,    
      begin. . . end  
 .    ,     
           
 . 
    Hide Designers on Run.    ,  Object Inspector  
,    ,     
 .      
,       
. ,     ,   . 
    Break on Exception.    IDE   
     ,     
    try,._._.except.   
  ,   !1""i ~" ^^ 
,   ,    
"( . 27.5" 27.7).  ^ 1)    
    ,   .	- ~
    3 

    . 27.6.        Break 
on Exception 

    . 27.7.    ,     

    ,  Break on Exception ,     
   Delphi, - ]        
 ,     try. . .except.  
    ,       Delphi, 
      . 
    G 

     27.    643 

       Minimize on Run.    IDE   . 
  Hide Designers on Run,      
  . 
      Display   Environment Options    
  Visible Gutter.       
 ,      (. 27.8), 
    (    )  
 . 

         

        ,     
 . Delphi     
, ..          . 
             
Project^Options     Project Options   Compiler 
(. 27.9). 

    . 27.8.      

    . 27.9.  Compiler   Project Options 

         . 
       Debug Information.     . 
            
   .     $D  $DEBUGINFO. 
       Local Symbols.       
, , ,  ,    
implementation.          , 
       .  
  $L  $LOCALSYMBOLS. 
       Symbol Info.        , 
       ,     
.   ,       
,   .     
  .    
     $Y  $REFERENCEINFO. 
         Debug Information  Local Symbols  
  . ,   ,   
      (  
    ). 
    unit MyUnit; 
    {$D-} 
    interface 
      $D-    Local Symbols  
Symbol Info,        . 

    644  VI.   

    I  1 
        Delphi   DCU- (, VCL)  
    ,   ,   
     . 

      

               
,         .  
         
.  ,     
,     ,    
     . 
             
 ,     ,     
.     , ,  -     
.        ,  
     .	........... 
      Delphi     
 ,    Run (. 27.10). 

    . 27.10.   Run     

       . 
       Run.          
.        ,    
    -   (,  
 ).    Break on Exception,   
        . 
       Step Over.      ,  
   ,      , 
    ,      . 
       . 

     27.    645 

    I  I 
    Trace Into.     ,    
     .  , , 
,     ,      
      .      
 , ,     
    ?.-1 , .?._  
OnPaint.      |      
 ,    ,    
  OnPaint...     ,   
       .      
, ,   jj^   ,~ 
".	, < ..     .   .<    . .--.. 
    Trace to Next Source Line.       , 
   ,    *   ,   
  Windows API, ,   ,   
 .    ,    
^?11 -    ,     
         |   
          . 
    Run to Cursor.        , 
   -   ,   
    ,      .     
 ?_    ?_1i ^?^ 
  Run to ' ^^^  
       ,   
      . 
     ^  ,    
,   ~"'  ,   
,   . 27.11. 

    . 27.11.    ,      
  ,     

    No code was generaled ( !he cuiertt . 

       Show Execution Point.       
      '	   . 
   ,  , ,      
   (        ). 
       Program Pause.       
.      . 
       Program Reset.    ""    
      ,   .  
          
           ,  <F9>  
Run.         Editor 
  Options. ,  Step Over   <F8>, 
        BRIEF  
   <Ctrl+Fl 1>.     
    Run,    . 27.10.  , 
    ,      ( 
         ). 

       

          , ,  
,     .     
   Watch List,    
    ,  
  Evaluate/Modify,      
 (     '    ). 
          Run^AddWatch  
       ,   
    Hijcom^^tcjp   Add Watch at Cursor.  
    Watch Properties,   . 27.12. 
     Expression (     
).    ,      
  ,     * (y+z).   
     ,     
 ,     ,  
,   "  Assert".   
  ,     . 

    646	 VI.   

     Repeat Count    ,      
      . ,     
  826833  : 

    var 
    BigArray: array[1..1000] of Integer; 

         BigArray,   1 000   
    (     825    
!).        BigArray [826]  
  Repeat Count  8.      
     OT8_26jrioJ!33 
      Digits      
     . 
      Enabled    ,  
    ,    . ,   
^^^ __   ,     
  ,          
   . 
              
 .  Default      
 .  ,   ,   
         , 
  .  / dump     
,   ,      
  . 

     . 27.13       Watch List. 
 ,        ,  
   . 

    . 27.12.    Watch Properties   
       

    . 27.13.   

        . 
       Variable 'X' inaccessible here due to optimization ( 'X' 
 - ).       
 (      ^),    
    -   . 
       Symbol was eliminated by linker (  ). 
     ,       
    . 
         ,     
,     Foo [ 5 ],     
 Foo   . 

     

         ,    
 . ,       
  ?   ,   , 
     .      
 ,         
  .      ,   
     ,   .  
  -   ,  , ,_?_ 
_    ,.>1-{  
   (,     !).   , 
  , .. ,    
 .       . 

     27.    647 


      Evaluate/Modify 

        Evaluate/Modify   
RunOEvaluate/Modify (. 27.14).       
        , 
          Evaluate/Modify. 
        Expression  ,     Watch 
Properties (. . 27.12).     Evaluate  ,  
    Result.       
  (   !),     
    New Value .    Modify,  
  .       
 ,       ,  
       ,   ,  
,       . 

    . 27.14.    Evaluate/Modify    
   

    I  1 
      Evaluate/Modify  , ..     
,  .  ,      Watch List 
  Evaluate/Modify       
         
  Evaluate. 

     ,    Watch List,   Evaluate/Modify  
   ,        
 .         ,  
 . 
     ,  Watch List    Evaluate/Modify  
,          . 
        
Evaluate/Modify:        ,   
       . 

            

     Delphi 3    ,     
  :         
     ,      
   .    ? ,     
   ,  Watch List   ! 

       

      (breakpoint)    STOP   ( 
             
).          ,  
   ,       
 .       . 
         
    ,   . 
  Delphi        
  .    . 
         . 
    1.           
   Toggle Breakpoint (    <F5>)  
       .     
     . 
    2.     Run^Add Breakpoint,     Edit 
breakpoint (. 27.15).       
   New.      Filename  Line 
Number            
  .  Condition  Pass count   
   . 

    648  VI.   

             
 Breakpoint List   . 
       Breakpoint List   View=>Breakpoints (. 
27.16).            
           Disable 
(        Enable)    
   Delete.  View Source  Edit Source   
    ,    Edit Source  
     .  Properties    
Edit breakpoint,   . 27.15,     
  . 

    . 27.15.    Edit breakpoint   
   

    . 27.16.   Breakpoint list     

               
  ,    Add     
, Delete All    ,   Disable All  Enable 
        . 
             
  Edit breakpoint (. . 27.15)     
     . 
     ,    Condition,    
 .       
  ,   ,   . 
  ,   .  , 
     .    , 
          ,  
        - 
 . 
     ,    Pass count,    
       ,  
       .   
           
     .   
    ,    ,    
   . 

      

    ,      , ,   
            
   . ,     ,  
    ,      ,  
    ,       
  ,    ,   - 
 ""     . 

     DLL 

       Delphi      
   (Turbo Debugger for Windows). Delphi 3  
  DLL    . Windows   
 DLL      ,   
    ,   
 DLL.      RunOParameters    
 Run Parameters.    DLL (DPR-   
 library, a  program),  Host Application  ,    
      DLL ,     
  Browse. 
          DLL    
   ,    ,  
  ,     .. 
             ActiveX,   
 OLE. 

     27.    649 


     CPU () 

     CPU        
 . ,    Turbo Debugger for Windows, 
  ,   .   
    Intel x86   
,  ,       ,  
  . 
     CPU   ,      , 
,   .   ultima ratio,  , 
     ,      
 ,    5.      CPU  
         
 ... 
       CPU,    (   
).      RegEdit   
Windows 95 (Windows NT).  RegEdit     
 .    HKEY_CURRENT_USER.    
   Software,    Borland, Delphi , ,  3. ! 
        Debugging.    ,   
,    /   .   
   EnableCPU   1. 
       Delphi      View^CPU Window. 
        View=>CPU Window.    . 27.17, 
    .     ,  . 

    . 27.17.  CPU  . 

       Code pane.       
    (    ,  
 ).  ,     , 
  .      
   .      
     CPU   . 
       Register pane.      16  
.  ,      
,   . 
       Flags pane.     14  . 
    1,     0. 
        . 
       Stack pane.      .  
        . 
       Data pane.        
   .      ,   
  . 
    .     CPU    .  
         
    . 

    650  VI.   


       

     Thread Status, Modules  Call Stack   
,       . 
      Thread Status      . 
      View=>Threads,    
  Thread Status (. 27.18). 

    IU- Thiead Status 


    . 27.18.   Thread Status    
   

          . 
       Thread ID.   ,   
 . 
       State.  ;   Running  Stopped.   
 ,     ,    
Runnable^	' "~ 
       Status.        . 
Breakpoint ,     ", Stepped  
     , Faulted   
 -    Unknown   . 
       Location.       , 
    .     
    ,  32-   . 
              
   ,  -?__,^.-  Thread 
Status.  ,     ,    
   .   _  Make Current. 
           
    . 
            View Source  Go to 
Source.     ,      
     . 

     Modules 

      Modules    (-     
  ),     
 .      DLL  
,    ,^..., 
  .    ,    
. 27.19,   View^Modules.       
: Name ( ), Address (   )  Path ( 
 ,     ).     
 , ^ ^_ ^ Heji3,,ipro ,   
,      ""    
     CPU. 

     Call Stack 

            ,   
       .  
  ,   . 27.20,   View=>Call Stack. 

    . 27.19.   Modules    , 
  

    . 27.20.   Call Stack     
   


     27.    651 

            (DontHitMe  
 ).      ,  
  (Ouch)  ..      ,   
,      .   
   ,    ,   
 .	~ """" 

       VCL 

          Delphi 3, ,  
    VCL (Visual Component Library).   VCL 
    ,  ,   
      .    
  VCL,     ,     VCL,  
,   ,   ,  
 ,   . 
       VCL      
Overflow Checking   .    , 
    . 

    I  1 

      

       (brute-force debugging),  " ",  
 ,     ,   , 
 , ,      , 
      . 
            ;  
 '^ ,  -   ,    ( 
     ,     
API       ,    
 ,  ,       ). 
                 
  .     ,       
 . 

     

          "  ",     
        . 

         

               
.      TLabel     
  .       
    . 
        ExtractFileDir  ExtractFilePath  
  Delphi 3.         
   ,   ,   .    
 (   File1* New Application)     
  TButton    TLabel (   ,   
. 27.21). 
        TButton       OnClick. 

    procedure TForml.ButtonlClick(Sender:   TObject); begin 
    Labell.Caption   := ExtractFileDir(Application.ExeName); 
    Label2.Caption   := ExtractFilePath(Application.ExeName); end;	'--    

    (Application. ExeName     .)  
 <F9>         .  
   ,     . 
           DLL,    , 
,  .   ,   DLL      
    .    
,        ,  
  .     ,  
             . 

    652	 VI.   

     ,   ,      
      TButton (     
 TMemo. ScrollBars  ssVertical).     , 
  . 27.22. 

    . 27.21.       
 TLabel 

       OnClick   . 

    procedure  TForml.ButtonlClick(Sender:   TObject); 
    var MemStat:   TMemoryStatus; 
    begin 
    VirtualAlloc(nil, 1000000, MEM_RESERVE, PAGE_READWRITE); // 1 
MemStat.dwLength := SizeOf(TMemoryStatus);	// 2 GlobalMemoryStatus(MemStat); 
// 3 Memol.Lines.Add(IntToStr(MemStat.dwAvailVirtual)); // 4 
    end; 


    . 27.22.       

         API- VirtualAlloc   1. 
          
   . API- GlobalMemoryStatus 
         . 
    MemStat,     
TMemoryStatus.   GlobalMemoryStatus    
   ,    2,     
( 3)        4. 
       ,       
,          
 ,   .  . 27.23     
  . 
      (  VirtualAlloc),  ,     
DLL   60  (!)       
 .     Windows 95    
  ,  60   ... 

    . 27.23.         
  


    ShowMessage 

        ,    
 .    ,   , 
  ,       
,     .  ,     
,  ,    . 

     27.    653 

     ShowMessage ( .Dialags)     . 
          . 
           ( 
  MessageDlg,        , 
       ). 
    ShowMessage      ,   
     Format;     
,         . 
      .      , 
     GlobalMemoryStatus. 
         TButton   .  
 OnClick    . 

    procedure  TForml.ButtonlClick(Sender:   TObject); 
    var MemStat:   TMemoryStatus; 
    begin 
    MemStat.dwLength   :=  SizeOf(TMemoryStatus); GlobalMemoryStatus(MemStat); 
    with MemStat  do  ShowMessage(Format('Memory  load:   %d%%'#13  + 'Total  
physical:   %d'#13+'Available physical:   %d'#13  + 'Total page  file:   
%d'#13  +   'Available page  file:   %d'#13  + 'Total  virtual:   %d'#13   +   
'Available  virtual:   %d', [dwMemoryLoad,   dwTotalPhys,   dwAvailPhys,   
dwTotalPageFile, dwAvailPageFile,   dwTotalVirtual, dwAvailVirtual])); end; 

    ,        #13 (ASCII- 
 ).         , 
    .  . 27.24 ,  
       . 
       Memory load  Available physical,   
,         ! 

    . 27.24.   ShowMessage     


       

              
  Write  WriteLn.      
 ,     ( 
Projecf=>'0pt!orfs,  Linker   Generate Console Application)  
  $APPTYPE CONSOLE   DPR-. ,   
  , "     
  $APPTYPE   . 

    {$ifdef Debug} {$APPTYPE CONSOLE} {$endif} 

              
 . 
        jjritejHJjH WriteLn   
   I/O Error 103, ,      . 

      J 
     ,      ,   ,  
       ShowMessage. ,   
  ,    ,   . 

    procedure TForml.ButtonlClick(Sender: TObject); 
    var MemStat: TMemoryStatus; 
    begin 
    MemStat.dwLength := SizeOf(TMemoryStatus); 
    GlobalMemoryStatus(MemStat); 
    with MemStat do 


    654  VI.   


    begin 
    WriteLnJ^qrrnatt'Memory load: %d%%',[dwMemoryLoad])); 
    WriteLn(Format"( 'Total physical: %d', [dwTotalPhys])); 
    WriteLn(Format('Available physical: %d',[dwAvailPhys])); 
    WriteLn(Format('Total page file: %d',[dwTotalPageFile])); 
    WriteLn(Format('Available page file: %d',[dwAvailPageFile])); 
    WriteLn(Format('Total virtual: %d',[dwTotalVirtual])); 
    WriteLn(Format('Available virtual: %d',[dwAvailVirtual])); end; end; 

       . 27.25. 

    . 27.25.       

      
      Pascal ,   Format  
,      (WriteLn    
).     Format   ;  
, _ ^^ 1_ __.^^.,^.,.1  
     ,,_. 

      Log- 

          (Log-)  
    ,       
"  ".   ,      
. ~ ~~	~  
         __,_ ___^^?0,  
 WriteLn (...)  WriteLn (LogFile, . . . ),  LogFile   
   TextFile.        
        .    , 
      ,    
        . 
          
    . 

     27.1. \UDELPHi3\Chap27\ULOG. PAS.   
  

    unit uLog; 
    interface 
    procedure Log(S: String); 
    implementation 
    uses 
    Windows, SysUtils; var 
    LogFile: TextFile; 
    LogCriticalSection: TRtlCriticalSection; 


     27.    655 


    pj:9cedu.r,e_,Lqg (3: string) ; var 
    SystemTime: TSystemTime; 
    FileTime: TFileTime; begin 
    GetSystemTime(SystemTime); 
    SystemTimeToFileTime(SystemTime, FileTime); 
EnterCriticalSection(LogCriticalSection); WriteLn(LogFile, Format('%s %.8x%.8x %s', 
    [FormatDateTime('yy.mm.dd hh.mm.ss', Now), 
    FileTime.dwHighDateTime, FileTime.dwLowDateTime, S])); 
LeaveCriticalSection(LogCriticalSection) ; end; 
    procedure Startup; var" 
    FileName: String; begin 
    InitializeCriticalSection(LogCriticalSection); FileName := Format('Log 
file for %s at %s.txt', 
    [ParamStr(0), DateTimeToStr(Now)]); while Pos(':', FileName) > 0 do 
    FileName[Pos(':', FileName)] := '.'; while Pos('/', FileName) > 0 do 
    FileName[Pos('/', FileName)] := '-'; while Pos('\', FileName) > 0 do 
    FileName [ Pos ('V, FileName)] := '.'; AssignFile(LogFile, FileName); 
Rewrite(LogFile); end; 
    procedure Shutdown; begin 
    CloseFile(LogFile); 
    DeleteCriticalSection(LogCriticalSection); end; 
    initialization Startup; finalization Shutdown; end. 

       ,     .   
         ,   
     .   
   ,   . 

    unit MyUnit; 
    interface 
    uses 
    {$ifdef Debug} uLog, {$endif} 
    Windows, Messages," SysUtils, Classes, ... 
        . 
    {$ifdef Debug} 
    Log(Format('Entering the Foo procedure; Bar = %d',[Bar])); 
    {$endif} 

    He       ,  
     . 
     uLog      . -, 
       ,   
 ,     . 
     ,      
   . -,   
  (critical section),       
     .        
 24, "  ". 

     . 27.26       Notepad. 


    656	 VI.   


    . 27.26.     

        ?     
?  ,      .   
     " "  " 
 ,  ". 

         

           (  ,  
   bug ().  . .),  ,    
 (    ,    ).  
     : , 
  !        
  .   ,    ,  
   ,   .     
          
 ! 
        ,      ,  
  ,     . 
      !  "  "    .  
       .    
       ,      
,      ,   
     ,     
 . 
               
 .           
,    . 

    Error Setting Debug Exception Hook 

       ,  . 27.27, ,  
 _, ,  ,    
    .  ?  
  Run^Program Reset     .  
?   Program^Build .    ?  
          .   
       ... 

    . 27.27.  Error setting debug exception hook 


    Access Violation 

          , ,   
 ...    ,         
,    ,        
      access violation     , 
,    "  "     
    ,   .    

     27.    657 

       (. 27.28),  ,  ( )   
( )  . ^   , 
  ,   ,    
 -.	"" ---._ 
      . ^_ Search^pincl Error,.  
 (   )     ,   
     .   ,    
 ,  .     ,   
  -  VCL  ,   
 ,        , 
      . 
      VCL   , ,  ,  
   ,  ,      
      -    . 

    Stack Overflow 

      (stack overflow) ,   32- 
  ,   16-,        
 .          
Delphi 3     . ,    
    !1 

    function BlowTheStack (I:   Integer):   Integer; var  J:   Integer; begin 
J   :=  2; 
    Result   :=  BlowTheStack(I*J); end; 

              
  J   .     
 ,   . 
     ,        
  ,   ,      . 

    External Exceptions 

       External exception,   . 27.29,  
    ,  
He-Delphi- (DLL).      WINDOWS. PAS, 
   Delphi;      STATUS_xxxxx. 
,   . 27.29   C000001D 
  STATUS_ILLEGAL_INSTRUCTION. , ,  
  ,  ,       ,  
_          
Ҹ     . 

    . 27.28.     

    . 27.29.      


      TD32.EXE 

     , ,      Delphi 3,  
    .   ,  
  .     
  Borland (TD32.EXE),^   Turbo Assembler 
 Borland C++.    ,     Delphi, TD32 
,   Delphi_Her.  , TD32  
^^-?_ ,  , ,   
   -   .   ,    
  ,     .  ,   
     ,    . 

    658  VI.   


     

              
   ,    
 Delphi   ,  ,     
.    ,         
  .      ,   , 
    ,    ,   
 ,    ,    . 
   ... 

     27.   	659 
