The (Updated) Other Side Of Delphi
      
      
      This was a UK BUG MasterClass
        held on 24th March, 1998 in Hammersmith, England.
      
      Click here for the files that
        accompany this seminar.
      
      
      This Masterclass looks at some of the non-VCL aspects of Delphi
      application programming. We look at the Windows API and Windows
      messages, Delphi experts, Delphi packages, COM and file handling.
      
      The Masterclass runs from 10am until 6pm with the following
      agenda:
      
      
10:00 a.m. Introduction
      Looking Through Windows
      This section will focus on the Windows API. It will begin with
      an overview of attempting to tackle the Windows API from the
      perspective of a Delphi programmer unfamiliar with it, or
      scared by it.
      
        Sending Messages
        Here we investigate the message-based model of Windows and
        examine the approaches available in the API and natively in
        Delphi for sending messages around the system.
        
          - SendMessage
          
 - PostMessage
          
 - Perform
        
 
        Receiving Messages
        The tables are turned here and we look into the mechanisms
        in place for receive messages for custom processing:
        
          - Message handlers
          
 - Window procedure methods
        
 
        
        Non-standard VCL messages and their
        raîson d'être:
        
          - Component notifications for modifying normal Windows
            notification message behaviour
          
 - Component messages for VCL custom mechanics
        
 
        
        The special case of application window messages, exemplified
        by enabling a TScrollBar to correctly react to system user
        interface changes.
      
      
11:30-11:45 a.m. Break
      
        Launching Applications
        Delphi does not support launching other applications with
        any cosy VCL routines. It is not necessarily obvious how to
        deal with the various APIs that help you out so we will look
        at them here.
        
        Win16 approaches to launching applications:
        
          - LoadModule
          
 - WinExec
          
 - ShellExecute
        
 
        
        Win32 preferred approaches:
        
          - CreateProcess
          
 - ShellExecuteEx
        
 
        Waiting For Programs To Terminate
        When you launch an application, you sometimes need to be
        notified when it finishes. This is quite easy in Win32,
        although there are a few choices to make for smooth
        operation.
        
      
      1:00-2:00 p.m. Lunch
      Digging Inside Delphi
      Here we look at some not so well understood areas of Delphi,
      often considered the realm of propeller heads. You can wear
      your propeller with pride after making it through this
      afternoon.
      
        Experts
        Not an in-depth analysis of experts by any stretch, but an
        overview of what they are, how they work and how they are
        written.
        Packages
        What are these new-fangled things all about?
        What's the difference between design-time and run-time
        packages?
        What are the pros and cons?
        How do you successfully deploy packages?
        What are the implications?
        Hopefully these questions and more will be moot by the next
        section.
        Interacting With The Delphi IDE
        We're back to packages again here! A nice side effect of
        package technology gives us an alternative to the
        much-feared expert interfaces in the Open Tools API.
      
      4:00-4:15 p.m. Break
      
        Run-Time Type Information (RTTI)
        What is it? Why is it? What can it do for you?
      
      COM
      There is a lot of intrigue surrounding this acronym that
      needs to be dispelled. COM is quite sensible once you
      understand it.
      
        Interfaces
        Apart from half a unit, an interface is also a key
        concept in COM. We examine the syntax and the point of
        interfaces
        COM Servers & Clients
        How do these work, and why should we bother?
      
      Organised Filing
      This section will be included if time permits.
      
      Sometimes a database table is over the top and you just want
      to store information in a normal disk file. Delphi has
      complete support for this, but not everyone can find it. We
      will browse through the support for:
      
        - Text files
        
 - Binary files
        
 - File sharing
        
 - File streams