Smalltalk MT 4.0
|The sample can be compiled to an EXE|
|The sample can be compiled to an OCX|
|The sample can be compiled to a DLL|
|New in version 4|
|The sample demonstrates the minimum
requirements to use a COM object, whether it is on the same machine or on a
different machine. The sample consists of a client and a server portion.
The server application, SSERVER.EXE, implements a simple stream class as a LocalServer. Instances of the class supports a limited form of the IStream interface.
The client application, SCLIENT.EXE, uses the class implemented by the server.
Both programs are compatible with the SimpleServer sample from the Windows SDK.
|SimpleCOMServer is a simple COM Server that
exports variations of an Add method. It demonstrates the basic steps
to create a COM Server.
The associated Visual Basic project wraps a UI around SimpleCOMServer.
|SRandom is a simple server implemented using a dual interface. IRandomStream implements a random number generator that can be accessed using IRandomStream or via OLE Automation. The latter allows scripting languages such as Visual Basic to access the functionality.|
|CustomButton is a simple hot-tracking button implemented in Smalltalk.|
|SpxView is a Windows Explorer Extension that displays the contents of an XML project file. After registration, opening a file with the .SPX extension opens a new Explorer window that displays the contents of the project.|
|StopLite demonstrates ActiveX programming. It replicates the functionality of the Stoplite sample in the Microsoft Windows SDK.|
|SimpleContainer implements a basic OLE container, using the document - view architecture. The user can select an OLE object from a list of available OLE servers, and embed it into the current document.|
|OLE||STALK||STALK extends the Smalltalk development environment with an OLE Automation server. The server lets you evaluate an arbitrary string of Smalltalk expressions and returns the result of the evaluation.|
|Demonstrates how to integrate a third party
The component used by this sample is Calendar Control 8.0 (which comes with MS Office).
|ActiveX||ActiveX\Licensed OCX Sample||Shows how to use a licensed ActiveX control.|
|Demonstrates how to use the Masked Edit control.|
|ActiveX||ActiveX\Shockwave Flash||Demonstrates how to use the Shockwave Flash control.|
|Demonstrates how to use the Web Browser control. The project also includes a wrapper for the browser control.|
|Interface Builder Samples|
|GUI Builder||Builder\Custom Button||Demonstrates implementing a custom button with
properties that can be edited with the GUI builder.
CustomButton plays a sound (a WAV file) when the user clicks it. The event is passed up the event handler chain, so further actions can be attached to the button, and the button can be used like a regular button.
CustomButton opens a dialog that lets the user enter the sound file. The sound file name is then appended to any generated initialization code.
|GUI Builder||Builder\Generic||Demonstrates how to design a simple application that includes a menu, dialogs and event handlers.|
|GUI Builder||Builder\Pool Sample||By default, the Interface Builder assigns
standard IDs to child controls and menu items.
The sample uses custom identifier names for the controls and menus.
|Common Controls\Animation Sample||Demonstrates how to use the animation control.|
|Common Controls\Comboboxex Sample||Displays a ComboboxEx in a dialog.|
|Common Controls\DragListBox Sample||Illustrates using the DragListBox common
|Common Controls\Hot Key Sample||Illustrates using a HotKey control.
Controls\Property Sheet Sample
|Illustrates property pages and sheets. The
sample displays two property pages.
pages1.sp is a project that contains a version with in-memory templates.
pages2.sp is a project that contains a version that loads an external resource DLL.
|Common Controls\ReBar Sample||Iillustrates using a ReBar control.|
|Common Controls\Slider Sample||Illustrates using Sliders, ProgressBars and UpDown controls.|
|Common Controls\Tab Sample||Illustrates using a TabControl to show and hide
|Common Controls\Time&Date Sample||Illustrates using Time and Date controls.|
|This sample illustrates using a toolbar.
|Common Controls\TreeView Sample||Illustrates using a TreeView and a custom implementation of drag and drop. You can drag the colored balls from one place to another in the window.|
|Dialogs\Dialog Application Sample||Demonstrates how to start an application that displays only a dialog box. The dialog displays the list of logical drives and, for each drive the user selects, the percentage of free space in a progress bar.|
|Dialog Boxes||Dialogs\Dialog Sample 1||This sample illustrates setting and retrieving dialog data using #setData and #getData.|
|Dialog Boxes||Dialogs\Dialog Sample 2||Illustrates basic event handling and validation.|
|API Sample||API Sample||Demonstrates how to invoke API functions and pass parameters.|
|Clipboard||Clipboard Sample||Scripts that access the clipboard.|
Illustrates using OLE Drag and Drop and TreeView.
The sample displays a TreeView and lets the user drag items in the tree view, and drop color names onto the tree view.
It also demonstrates using the clipboard to achieve the same result.
|Graphics||Hello World Sample||HelloWorldWindow inherits from GraphicsWindow
and paints 'Hello World' onto its client area.
|Help||Help Sample||This sample displays a help file and supports
context-sensitive help. Help is in the Windows help format, however, the
steps to use HTML help are identical.
Note: Recent versions of the HTML Help control call the Windows help system when they encounter an non-HTML help file.
|Floating point||Native FP||Demonstrates how to use native floating point arithmetic across method calls.|
|Printing||Printing Sample||A script that draws an ellipse onto the default printer.|
|Runtime Symbols||Runtime Symbol Sample\symtest
|Illustrates using symbols at runtime. The sample displays a dialog box that converts between symbol IDs and the associated strings. It is also possible to add new symbols.|
|Timer||Timer Sample||The sample uses WinTimer to update a progress bar in a dialog. As the progress bar advances, the time intervals are increased.|
|Window Procedure||WndProc Sample||The standard window procedure in Window is heavily optimized and may be difficult to read. The sample window procedure implements the same functionality in a more friendly way.|
|AUTORUN displays and lets the user modify the current autorun settings (the autorun settings control which devices use the auto play feature).|
|Clock is a simple analog clock similar to the Windows clock accessory. It demonstrates elliptic regions (a Window can be confined to a non-rectangular region).|
|Exception Handling||EHS||EHSDemo demonstrates exception handling and finalization.
EHSDemo>>test invokes #test: with a block that, depending on user input,
- returns from the home context (block return)
- raises an exception
EHSDemo>>test: evaluates the argument block in a nested exception handler. The outer handler handles the software exception ST_EXCEPTION_ABORT, and passes all other exceptions to the next handler in the chain. The inner handler installs a termination handler that will be invoked whenever the
control-of-flow returns from the guarded body. The finalization block will be executed whatever the outcome of executing the block is.
|Fibers||Fiber Sample||This example implements a fiber based file copy operation.
It is a Smalltalk
incarnation of the FIBERS sample in the Windows SDK. The executing thread in the process calls WinFiber class>>convertThreadToFiber, to convert the thread to a fiber. This also allows the resultant fiber to be scheduled by another fiber.
Next, two additional fibers are created, one fiber which performs read operations against a specified file, and another fiber which performs the write operations against a specified file.
The primary fiber then schedules the read fiber. After a succesful read, the read fiber schedules the write fiber. After a succesful write in the write fiber, the write fiber schedules the read fiber. When the read/write cycle has completed, the primary fiber is scheduled, which results in the display of the read/write status. If an error occurs during the read or write fibers, the primary fiber is scheduled and status of the read/write is displayed.
|FileFind is a more advanced Windows application. It sports a
and ListViews that display a report view of files. The user enters a filename to
search for (the name can include wildcards), and FileFind will scan a specified drive
for multiple instances of the same file. For example, if you type readme.txt in the
edit field of the tool bar, you will most likely get a bunch of readme files. The
search is performed in a background task that can be aborted by the user.
When the user clicks on a file in the results pane, the right pane lists the details
of all instances. It then possible to select files and send them to the recycle bin.
|GENERIC is a minimal Windows application.|
|HTMLDialog demonstrates how to display an HTML dialog, pass arguments and retrieve results.|
|MANDELBROT displays a Mandelbrot set. You can zoom into the display.|
|SIMDI is a minimal Windows MDI application.|
|More Samples\CoolBar||CoolWindow demonstrates using the ReBar control with several controls.|
PropertySheet / PropertyPage
|More Samples\DynSheet||DYNSHEET demonstrates using dynamic property sheets using an
While most property pages are built using a resource template, this sample builds in-memory templates for the pages.
|More Samples\ToolTips||The TOOLTIPS project demonstrates using tooltips. The
dialogs create a ToolTip control and add tool windows or process tooltip
notifications to display tool windows.
The first sample dialog, TTTestDialog, associates a tooltip text string with each control. The association is static (i.e., valid during the lifetime of the dialog).
The second sample installs an event handler for the TTN_NEEDTEXT notification. The handle, #onNeedText:, specifies the text to display in the tooltip window.
Dynamic tooltips are useful when displaying text that is only known at runtime, such as a fill ratio.
|GUI||More Samples\TwinEdit||TwinEdit implements a window with two rich edit controls
that are scrolled
synchroneously. The implementation creates a subclassed edit control
with a scrollbar and an edit without the scrollbar style. It then
uses windows subclassing to trap the WM_VSCROLL message and notify its
When the subclassed edit control receives a WM_VSCROLL message, it sends
an EN_MSGFILTER notification with the WM_VSCROLL message to its parent.
The parent window defines a handler for the EN_MSGFILTER notification
message. The handler method passes each included WM_VSCROLL message to
the other edit control, so that it scrolls in sync.
|PHILO is an implementation of the five-philosophers problem, using native threads and synchronization.|
|Res32 inspects the resource section of an executable. The
user can load an EXE or a DLL (in the PE format), and Res32 displays a list
view of all resources in the file.Clicking on individual resources such as
dialogs and menus opens a temporary window that displays the resource in
Unlike some other tools that use Win32 APIs to locate and load the resources, Res32 maps the executable file into memory and analyses the resource section. Res32 can easily be extended to replace individual resources, or to append elements to the resource tree (as long they fit into the same virtual address space).
RichEdit, ToolBar, Ruler
|RichText shows a basic text editor application using the Rich Text Edit control. The application hosts a tool bar, a Ruler control, and toolbar controls that allow the user to set the current font and size.|
|ScribbleDoc illustrates a document - view architecture. The
document is composed of polylines the user can manipulate. The main window
presents two views: a graphical view and a textual list representation. The
user can draw new lines or delete existing ones.
The views are updated accordingly. The result can be saved to and restored from disk.
|SELECT demonstrates a very simple DLL built in Smalltalk. SELECT is the companion DLL for the Select sample in the Windows SDK. For demonstration purposes, the executable DEMO.EXE has been included. You will find the complete sample in the Win32 SDK files.|
|SIMPLEDLL demonstrates a very simple DLL built in Smalltalk. It shows how to accept basic C arguments in Smalltalk functions.|
|SIMPLEXE demonstrates a very simple EXE built in Smalltalk.|
|Wiz97||This sample implements a simple Wizard97.|
Visitors Since 1/1/2000: