Delphi Logo


Home
Membership
Events
Newsletters
Directors
Developers
Resources
Members Only
Classified Ads

 
LADUG logo





Source Code Member Login

The Los Angeles Delphi User Group downloads are for members only!

The LADUG website contains a number of files that are only available to current paid members of the Los Angeles Delphi User Group. Most of these files contain the source code or Microsoft PowerPoint slides from the LADUG meetings.

Your LADUG user name and password are needed to access the downloads available on this web site. You should have received your LADUG user name and password with your membership confirmation. If you have forgotten your user name or password, please contact the LADUG membership director at: membership@ladug.com


 
Topic: Automate Exception Logging
Date: September 2, 2004 Speaker: Steven Colagiovanni
Topic Synopsis: No matter how carefully we craft our applications, sooner or later the users will encounter an unhandled exception. We normally write code to handle exceptions when they’re thrown, because we want our application to recover gracefully. However we should also log these exceptions, so that we can examine them later and fix whatever is causing them.

Microsoft created a series of components for the .NET framework called application blocks. Application blocks help developers implement “best practices” based on Microsoft’s evaluation of a number of production applications. One of these application blocks is the Exception Management Application Block (EMAB), which provides an easy to use, extensible and reliable mechanism for capturing and logging information about exceptions with a single line of code. This captured information can provide valuable information to assist developers and support services with problem resolution.

Steve Colagiovanni created an Exception Management component that is based on the Microsoft EMAB, but also offers extensive non-exception logging capabilities, and can be used in Win32 Delphi applications. This component can easily be extended by creating descendents that save the details of each exception or message wherever the developer wishes, such as in the Windows Application Event Log, a text file, a database, or even sent via email.
Download Source Code - 40 Kbytes  

Topic: Printing in the Raw - (Made Easy)
Date: April 1, 2004 Speaker: Steven Colagiovanni
Topic Synopsis: There are a number of excellent reporting tools for use with Delphi. These products work well for just about any database reporting needs that your customers could ask for. But what happens when you need to print graphics rather than columns of data? Or you need to format data in something other than columns and rows? Unfortunately most database reporting tools can't handle these reporting requirements, or if they do, they fall short in numerous ways.

In times like these, you have to resort to using Delphi's TPrinter class and writing a lot of code to paint and draw on the printer's canvas. Delphi's TCanvas methods are fairly low level and somewhat crude, to say the least. Tasks that should be simple, like drawing a 4" x 6" rectangle on a page, 1" from the left edge and 1" from the top, can be difficult and require a considerable amount of code. Even if you can get the results you expect, printing the same page on a different printer can produce substantially different results.

Steven Colagiovanni has found a way to make these printing jobs far simpler, with much less code to write. Steve has encapsulated all of the complexities and unfriendliness of TPrinter and its canvas in an easy to use Delphi class. This presentation shows how this class turns these printing jobs from mountains into molehills.
Download Source Code - 45 Kbytes Download PowerPoint Slides - 626 Kbytes

Topic: Delphi FREE Stuff: The SourceForge.net Libraries
Date: December 4, 2003 Speaker: Steven Colagiovanni
Topic Synopsis: "Free Components!" This is the favorite phrase of most Delphi developer's, right after, "It compiles, ship it!" Unfortunately, a lot of the free components available on the internet are either unsuitable for general purpose development, have no documentation, or are just not very well written. The TurboPower component libraries have a reputation of being well written and have been used day-in and day-out for several years in a wide variety of development projects. The documentation produced by TurboPower has long had a reputation as being the gold standard to which all other component vendors have been judged.

Foutunately, most of the TurboPower component libraries are now available free from SourceForge.net. However, finding them and getting them installed into Delphi is not as easy as it should be. Steven Colagiovanni conducted a review of the TurboPower libraries that are available from SourceForge.net and provided some simple step-by-step instructions for installing them in Delphi.

The TurboPower libraries are only the tip of the iceberg of what is available on SourceForge.net. Steve also discussed show some of the other Delphi components and libraries are available for FREE on SourceForge.net.
  Download PowerPoint Slides - 563 Kbytes

Topic: The Secrets of TClientDataSet Revealed
Date: October 2, 2003 Speaker: Emery Galambos & Steven Colagiovanni
Topic Synopsis: TClientDataSet was originally introduced as one of the building blocks of MIDAS, to aid in the development of n-tier applications. (MIDAS has now been renamed "DataSnap".) You have probably seen an example of TClientDataSet being used in a MIDAS/DataSnap demonstration. But did you know that TClientDataSet is a unique and powerful dataset in its own right? TClientDataSet includes all of the basic properties, methods and events that are associated with Delphi datasets. This means that you already know a lot about using TClientDataSet and that it can be used with data aware controls. But TClientDataSet can do a lot more.

Emery and Steve explored all those features and uses of TClientDataSet that many people don't know about and that don't require a MIDAS license. If you develop database applications with Delphi, C++ Builder, or Kylix this was a valuable presentation. You will be surprised at all the things that TClientDataSet can do for you that you never knew about.
Download Source Code - 34 Kbytes Download PowerPoint Slides - 132 Kbytes

Topic: Tech Focus session: "Adding Mail-Merge Features to a Database Application"
Date: May 1, 2003 Speaker: Steven Colagiovanni
Topic Synopsis: We've all ben there. No matter how good the database application, sooner or later the customer will want the ability to merge the data in the application with a letter that they want to send out to all their customers.

There are several ways of doing this, most of which involve several hours of coding and debugging. Steve solved this problem by creating a drop-in Delphi component. This component allows a lot of flexibility for the user in designing and formatting their letter, while utilizing classes and code that are already provided with Delphi. By utilizing this component, adding mail-merge capabilities to your program only requires adding a couple of Delphi components and a few lines of code to your application.
Download Source Code - 19 Kbytes Download PowerPoint Slides - 113 Kbytes

Topic: Creating a Delphi Wizard
Date: February 6, 2003 Speaker: Steven Colagiovanni
Topic Synopsis: Delphi 6 provided us with a TLabeledEdit control. This control can save a lot of work at design time. It reduces the number of components that you have to place on a form, and when you move the controls later the labels will move with them, automatically lining up with the edit controls and with consistent spacing between the edit controls and the labels.

Steve has "improved" on Borland's design for this component so that he could create more labeled controls, like a labeled combo box, a list box, and a memo component. Instead of coding all these components by hand, Steve constructed a Delphi wizard that will create a labeled version of any control on the Delphi component palette, including any third party components that are installed. The labeled versions of any data aware controls built by this Wizard have an extra feature that uses the DisplayLabel property of the field that the component is attached to for the label caption.
Download Source Code - 83 Kbytes  

Topic: Tech Focus session: "Implementing Undo in your applications"
Date: December 5, 2002 Speaker: David Novo
Topic Synopsis: David demonstrated two different methods for implementing undo for non-database applications.
Download Source Code - 19 Kbytes Download PowerPoint Slides - 15 Kbytes

Topic: Tech Focus session: "Object Pascal - Object vs. Class" (Follow-up)
Date: March 7, 2002 Speaker: Leicester "Brad" Ford Jr.
Topic Synopsis: This contains the code that was shown as a follow-up to the Febryary 7, 2002 Tech Focus session.
Download Source Code - 5 Kbytes  

Topic: Tech Focus session: "Object Pascal - Object vs. Class"
Date: February 7, 2002 Speaker: Leicester "Brad" Ford Jr.
Topic Synopsis: As part of his ongoing series of "Basic Object Pascal" Technical Focus sessions, Brad Ford discusses the differences between class and object declarations, used to build a dynamic application.
Download Source Code - 12 Kbytes Download PowerPoint Slides - 16 Kbytes

Topic: An Extensible, Object Oriented Runtime Expression Evaluator
Date: January 3, 2002 Speaker: Steve Kramer
Topic Synopsis: Steve Kramer explains and demonstrates Inheritance and Polymorphism through the discussion of an extensible, object oriented Runtime Expression Evaluator. The Runtime Expression Evaluator allows you to evaluate user defined expressions not known at compile time.

For example, suppose you have a Form with an Edit Box named Edit1, and the operator types "ROUND((3 + 6) / 2)" into the edit box. The following line of code takes the user input in Edit1.Text and returns a value of 5 into the variable Result.

Result := Eval(Edit1.Text);

In the expression above, ROUND is a Function, 3, 6 and 2 are Literals, and + and / are Operators.

Using inheritance and polymorphism, you may easily extend the Runtime Expression Evaluator's functionality by creating your own Literal, Operator and Function classes... without ever modifying the expression evaluator itself!
Download Source Code - 13 Kbytes Download PowerPoint Slides - 22 Kbytes

Topic: Creating and Using Type-Safe List Classes
Date: May 3, 2001 Speaker: Steven Colagiovanni
Topic Synopsis: A lot of times programmers need to store an array of objects, records or values. Often these arrays need to contain a different number of elements at runtime, something that Delphi could not do prior to version 4.0. Type-safe lists provide all the functionality of data arrays, but are a completely object oriented way to store your data. Additionally, type-safe lists can provide power and capabilities not available with arrays. This is why the Delphi VCL uses several type-safe list classes. Some programmers have resorted to using a TList to hold arrays of objects, but this approach presents several problems. In addition to being slower, requiring extra coding and type casting, and producing more complex and harder to read code, it also creates the potential for a lot of bugs.

A type-safe list functions much like a TList, but provides considerable error and data protection not available with a TList or TList descendant. Using a type-safe list instead of a TList will eliminate typecasting, reduce coding, improves performance, makes your code easier to read, reduces memory leaks, provides compile time and run time type checking, and is 100% OOP! (The compile and run time type checking helps the programmer to avoid errors and bugs.) Type-safe lists can be created to hold anything! doubles, strings, records or even an array of TEdit controls. Type-safe lists also handle all the maintenance of the items they hold, including managing their own memory and the memory of their contents.
Download Source Code - 329 Kbytes Download PowerPoint Slides - 56 Kbytes

Topic: Back to the Future: RAVE Reports 4
Date: March 1, 2001 Speaker: Lawrence Lichtmann
Topic Synopsis: Nevrona Design's RAVE Reports (aka ReportPrinter Pro) has long stood out from the pack of Windows reporting products because of its unique page-oriented architecture. In addition to visual report design in parallel with continuing support for low-level report construction, the current version has introduced many powerful features including multi-report projects, font mirrors, mirror and data mirror sections, page chaining, fully-customizable data views, report component customization, and open-ended end-user reporting. The soon-to-be released version 4 will add still more power, including native PDF output, a stand-alone reporting engine, and a Web-based reporting server.
  Download PowerPoint Slides - 29 Kbytes

Topic: Using Microsoft's HTML Help with your Delphi Application
Date: July 6, 2000 Speaker: Steven Colagiovanni
Topic Synopsis: An online help system with context-sensitive links is the final featurethat will make any Delphi application truly usable for your end users.With the release of Windows 98, Microsoft implemented a new online helpengine called HTML Help. This is also the default online help systemused with Windows 2000, Microsoft Office 2000, Microsoft SQL Server 7.0,and the MSDN library. This change came with the announcement that therewould be no further development of the existing WinHelp system, and thatHTML Help had replaced it. Other commercial applications are alsostarting to change over to HTML Help.

Steve Colagiovanni explained the differences between WinHelpand HTML Help, along with the advantages and disadvantages using HTMLHelp with your application. Included was a brief introduction toauthoring an HTML Help file. Delphi does not include the abilityto use HTML Help files, so Steve showed us how to get our Delphiapplications to call the HTML Help engine instead of the WinHelp engine.In explaining how to use HTML Help, Steve delved into the VCL to explainhow our applications call WinHelp. Like a few other features in Delphi,there are features for integrating with WinHelp that are poorly documented and not well known.
Download Source Code - 786 Kbytes Download PowerPoint Slides - 154 Kbytes

Topic: Dynamic Applications
Date: June 1, 2000 Speaker: Mark Miller
Topic Synopsis: None available.
Download Source Code - 29 Kbytes  

Topic: Web module
Date: Unknown Speakers: Gabriel Forner and J.T. Taylor
Topic Synopsis: None available.
Download Source Code - 11 Kbytes  

Topic: Design Patterns in Delphi
Date: Unknown Speaker: Mark Miller
Topic Synopsis: Design patterns embody solutions to common problems faced by object oriented software developers every day. Design patterns are a level of abstraction higher than source code, and tend to focus on the relationships and functionality of their participant classes. Design patterns are valuable because they attach labels to successful architectures, enhancing the vocabulary which developers use to communicate ideas. They are also valuable as a reference and learning tool because they are the accumulation of a great deal of thought regarding a particular problem and its corresponding solution. Becoming proficient in the solution without the help of design patterns would require a significant amount of research and personal experience.

Learning about design patterns will save you time, improve your object-oriented architectures, improve your communication with fellow developers, and make you a better programmer. Employing appropriate design patterns in your code will make your product more robust and significantly reduce code maintenance time and cost.
Download Source Code - 83 Kbytes  

Topic: Keep the Habit - Saving state information from Delphi forms and components
Date: Unknown Speaker: Felix Golubov
Topic Synopsis: Felix Golubov's TKeepHabit component provides the ability to store in either ".ini" files or in the Windows Registry, the run-time values for the properties of the form itself, and different components contained on the form. This is a useful and convenient component, and is interesting because of its rather unusual implementation.

After creating the form, the TKeepHabit component restores the form's size and position, and the values of selected components' properties. It also provides explicit calls of the respective event handlers, which in turn can adjust tool panels and show secondary forms. If some secondary form also contains a TKeepHabit component, it will appear in its former place with the former settings of the components it contains. By using this component, a program can have the same look after it launches that it had before exiting.

The TKeepHabit component can save and restore runtime settings for the following types of components: TMenuItem, TCheckBox, TRadioButton, TRadioGroup, TComboBox, TScrollBar, TSpeedButton, TSplitter, TTabControl, TPageControl, TTrackBar, TUpDown, TToolButton and TCoolBar. This list can by easily expanded.
Download Source Code - 284 Kbytes  

Topic: Super Forms
Date: Unknown Speaker: Mark Miller
Topic Synopsis: None available.
Download LADUG Source Code - 17 Kbytes Download PowerPoint Slides - 404 Kbytes
Download OCDUG Source Code - 9 Kbytes  


Separator

Membership | Events | Newsletters | Directors | Developers | Resources | Members Only | Classified Ads | Home |

Have a suggestion for the website? Contact LADUG's Webmaster.

© 1998-2009 Los Angeles Delphi User Group.