![]() |
|
Advertisement
|
The Clarion Reference Library Programming Objects In Clarion
|
Clarion Magazine is more than just a great place to learn about Clarion development techniques, it's also home to a massive collection of Clarion source code. Clarion subscribers already know this, but now we've made it easier for subscribers and non-subscribers alike to find the code they need.
The Clarion Magazine Source Library is a single point download of all article source code, complete with an article cross-reference.
Subscribe to the source code library now
Source code will still be available via individual articles. Nothing's going away. This is an added feature, not a replacement for how you get source code now.
If you do not have a regular Clarion Magazine subscription you pay $64.95 for a one year source library subscription.
If you do have a regular Clarion Magazine subscription you pay just pay just $39.95 for a minimum one year library subscription, plus you get free upgrades for as long as you have a current magazine subscription. In other words, you pay a one time fee of $39.95.
If you wish to subscribe to Clarion Magazine and buy the source library subscription at the same time, the store will give you the magazine subscriber pricing on the source library.
When you complete your purchase you'll receive a confirmation email telling you to log in to My ClarionMag where you'll find your link to the source library download. The zip file contains a signed, SetupBuilder-powered installer which will set up the source code library on your computer. The C3PA compatible installer will detect your Clarion version and by default will install the Source Code Library under your Clarion 3rdparty directory. Please use the default location for Clarion Desktop compatibility. See below for a partial list of included source.
At present there are well over 300 zipped source examples included in the library. The download is in excess of 30 megabytes.
As a subscriber to the Clarion Source Code Library you are entitled to use the source code and examples without restriction in your own applications. You may not, however, distribute the source code or use it to produce third party products without the permission of CoveComm Inc, publisher of Clarion Magazine.
You are entitled to free upgrades as follows:
Log in to My ClarionMag to download the latest release.
In addition to the full list of articles the source code library now comes with a categorized tree view of the articles (partial screen shot shown below):

The articles listed in the tree view are links to the article summary (below, in the same document). The summary also has links to the source code (which is on your hard disk) and the original article on the ClarionMag web site.
The following is a partial list of articles containing source code included in the library, from newest to oldest. Articles with source posted after December 31 2006 are not listed here.
| Source for: | Manifests for Hand Coded Apps (updated) |
| Date: | 2006-12-30 |
| Summary: | Clarion 6 includes support for XP manifests in APPs. But what about hand coded programs? Mark Riffey shows how to add a manifest to your PRJ. Updated with a Vista screen shot, courtesy of Carl Barnes. |
| Source for: | Printing a "No Records" Report |
| Date: | 2006-12-22 |
| Summary: | The standard behavior for a Clarion, ABC, report, if there is no data, is to pop up a message which says "No records". Suppressing this message is easy, but what if you want to print a report that says "No records"? Bruce Johnson shows how it's done. |
| Source for: | A Callback Technique for Capesoft's FileManager2 |
| Date: | 2006-12-21 |
| Summary: | CapeSoft's FileManager2, and its more recent incarnation FileManager3, are amazing products: they completely automate the process of upgrading client databases, whether local or across a network, and make it easy to do file maintenance. Randy Rogers shows how to add a callback procedure to FM2 to provide user feedback during startup. |
| Source for: | No! You Can't Cancel |
| Date: | 2006-12-13 |
| Summary: | Clarion developers are a nasty bunch. They do not want to let their end users cancel forms. At least it seems so from the frequency with which questions are asked about trapping the Escape key or Windows' red X. Dr. Parker shows how it's done. |
| Source for: | A Customized Deep Assign Function |
| Date: | 2006-12-12 |
| Summary: | The deep assign operator (:=:) is a powerful tool, but it doesn't work in all circumstances. Alan Telford shows how to extend deep assign functionality using WHO and WHAT. |
| Source for: | Controlling Controls |
| Date: | 2006-11-30 |
| Summary: | Steve Parker has a customer browse which must indicate whether a customer has an email address, and if the email address is present, allow the user to send an email. But as usually seems to happen, the obvious solutions don't apply. |
| Source for: | Solving Problems With Finite State Machines |
| Date: | 2006-11-24 |
| Summary: | Finite State Machines are a useful technique for many programming tasks, including text searching. If you've ever done any complex text parsing you may even have used one of these without knowing it. John Christ explains. |
| Source for: | Adding Arrays To Generic Queues With HOWMANY |
| Date: | 2006-11-17 |
| Summary: | Alan Telford uses Excel to view queue data, as explained in an earlier article. That version of his generic-queue-to-CSV exporting procedure couldn't handle arrays in queues, but Clarion 6's new HOWMANY function makes arrays in generic queues usable. |
| Source for: | Threads: When START Starts |
| Date: | 2006-11-10 |
| Summary: | You may think that when you START a procedure, it immediately starts. This is not, however, true. Steve Parker shows how to exercise control over when a STARTed procedure actually begins to run on its own thread. |
| Source for: | Recursive Adds |
| Date: | 2006-10-26 |
| Summary: | "Heads down data entry" makes the ability to add multiple records without having to return to a browse desirable. Even customers in lighter duty situations want it. Dr. Parker shows how to deliver the goods. |
| Source for: | Classes For Background Processes |
| Date: | 2006-10-20 |
| Summary: | C6 introduced true threading, and threads are a great way to handle background tasks. But threads seem very procedural - you start some code running, and it runs until it ends. What if you want to use threads in an object-oriented environment? Is it even possible to have a class that runs on its own thread? How do you control threads in an object-oriented environment? David Harms demonstrates one approach to threading classes. |
| Source for: | Throwing Users Out: Methods of Computation |
| Date: | 2006-10-17 |
| Summary: | Having determined, in the previous episode, how to throw a user out of a window, Steve Parker returns to the problem of knowing when to throw the user out. |
| Source for: | Replicating IDLE: Throwing Users Out |
| Date: | 2006-10-12 |
| Summary: | "When the user hasn't done anything for x minutes (or seconds), I want to close the window. How can I do this?" This question comes up fairly frequently. As is so often the case using Clarion, there are a number of ways to accomplish the goal of throwing the user out. |
| Source for: | Solving Sudoku Puzzles With Clarion, Part 2 |
| Date: | 2006-09-27 |
| Summary: | Jon Waterhouse explains his Sudoku solver, written in Clarion. This program uses a deductive approach as much as possible, and falls back on guessing only where deduction is impossible. Part 2 of 2. |
| Source for: | Solving Sudoku Puzzles With Clarion, Part 1 |
| Date: | 2006-09-21 |
| Summary: | Jon Waterhouse explains his Sudoku solver, written in Clarion. This program uses a deductive approach as much as possible, and falls back on guessing only where deduction is impossible. Part 1 of 2. |
| Source for: | Roll Your Own Web Search Engine |
| Date: | 2006-09-14 |
| Summary: | Jim Albrecht shows how you can create your own web search engine in Clarion using Skip Williams' WebFetch DLL. |
| Source for: | Storing GROUPs in INI Files |
| Date: | 2006-09-08 |
| Summary: | Jeff Slarve demonstrates a small function that stores any group as field/value pairs in an INI file, and can also restore data from an INI file. |
| Source for: | Improving On The Non-Related Lookup Template |
| Date: | 2006-07-17 |
| Summary: | Clarion ships with a template that allows you to do a lookup from a table that is not related to the primary table. While very useful, it offers room for improvement, as Nardus Swanevelder demonstrates. |
| Source for: | Beautifying Clarion Applications |
| Date: | 2006-07-13 |
| Summary: | Beauty may only be GUI deep, but that's no reason to hide your beautiful code with an ugly shell. Roel Abspoel shows how to dress up your apps with that "glass panel" look. |
| Source for: | Another Single Browse For Multiple Lookups |
| Date: | 2006-07-10 |
| Summary: | Several years ago Clarion Magazine published an article on using a single browse for multiple lookups. Nardus Swanevelder looks at the subject again, and comes up with some improvements. |
| Source for: | A Class Wrapper for the SimpleOCR API |
| Date: | 2006-07-06 |
| Summary: | While developing a document management system, John Dunn faced a requirement for scanned documents. To reduce data entry time and increase the accuracy of the indexed data he decided to add Optical Character Recognition (OCR) capabilities to the program. |
| Source for: | Global Variables, Threads, Critical interSections and the Dangers of Unprotected Sets, Part 2 |
| Date: | 2006-06-29 |
| Summary: | Inspired by the "CapeSoft Clowns" at the recent Aussie DevCon, John Morter sets out to create an easier way to manage thread-safe variable assignments under Clarion 6. In this concluding part John explains the class source. |
| Source for: | Global Variables, Threads, Critical interSections and the Dangers of Unprotected Sets |
| Date: | 2006-06-22 |
| Summary: | Inspired by the "CapeSoft Clowns" at the recent Aussie DevCon, John Morter sets out to create an easier way to manage thread-safe variable assignments under Clarion 6. Part 1 of 2. |
| Source for: | External Business Rules with the In-Memory Driver |
| Date: | 2006-06-21 |
| Summary: | Towards the end of 2004 Nardus Swanevelder wrote a series of articles on Clarion's Business rules, and how they could be configured at runtime. In this update, Nardus shows how to use configurable business rules with the In-Memory Driver. SOURCE LINK UPDATED! |
| Source for: | Using RMChart with Clarion |
| Date: | 2006-06-15 |
| Summary: | After researching several charting alternatives, Al Randall happened upon RMChart, a free, lightweight wrapper around Microsoft's GDIPLus graphics library. Al shows how to create charts in Clarion using the DLL version. |
| Source for: | Nifty Window Tricks And Smart DLL Loading |
| Date: | 2006-04-20 |
| Summary: | It's an age old question: "How do I use a Windows API function that is not available in all versions of Windows?" The simple answer is that you only call the function if it's available at runtime. You do this by attempting to dynamically load the module where the function resides, and if that succeeds you call the function by address. If you can successfully load the module and get the address of the procedure, it exists in this version of Windows. There's no need to try to identify the version of Windows; either the function exists or it doesn't. In this article Larry Sand demonstrate this technique with some API calls that are only available in Windows 2000 and later, and which allow you to gradually fade in a window and make an area transparent or opaque. |
| Source for: | Aesthetically Pleasing Recursive Updates |
| Date: | 2006-04-17 |
| Summary: | Clarion makes it easy to do recursive inserts, where you continue to insert records without going back to the browse each time. It is a matter of but a few mouse clicks. But how about recursive updates? Henry Plotkin looks at the ugly way, and the pretty way. |
| Source for: | Mixing Clarion With.NET, Part 6 |
| Date: | 2006-04-13 |
| Summary: | In the concluding part of this series, Wade Hatler shows how to make COM and C++ wrappers, and demonstrates some nifty ways to spruce up a standard Clarion window via .NET. |
| Source for: | Updating Hot Fields |
| Date: | 2006-04-11 |
| Summary: | On a browse window, Hot Fields significantly extend the display of information. Fields for which there is no space in the list control, data from other files (related or not), run time computed data are all nicely handled with Hot Fields. But when Steve Parker experiments with read-only entry fields on a browse, he finds out his users now want to use these fields update values. |
| Source for: | Using DOS Files To Send Printer Codes |
| Date: | 2006-03-31 |
| Summary: | If your applications need to talk directly to printers on parallel ports, or to serial devices, you can use the Windows API. Or, as Olivier Cretey explains, you an simply use a Clarion DOS file. |
| Source for: | The Easiest Way To Write To A Printer Port |
| Date: | 2006-03-30 |
| Summary: | In the last less-than-action-packed installment, Steve Parker said that he was not going to create a template for the write-directly-to-port wrapper procedure discussed. There is a very good reason for not creating that template. Itıs been done already. At least twice. |
| Source for: | Clarion Challenge Results - Remove Links |
| Date: | 2006-03-23 |
| Summary: | The results for the March 2 "Remove Links" Clarion Challenge are in! And we have detailed analysis courtesy of CapeSoft's Profiler, plus a .NET surprise. |
| Source for: | Print Directly to Printer Made Easier |
| Date: | 2006-03-20 |
| Summary: | In his last adventure in API land, Steve Parker explored sending control codes directly to a printer port. In this installment he wraps that code up into a function call. |
| Source for: | PROP:SQL And Embedded Single Quotes |
| Date: | 2006-03-10 |
| Summary: | If you use MS-SQL with your Clarion programs, and you write your own SQL statements, then you've probably run into problems with quote characters. SQL statements use quote characters to delimit streams, and if you have quotes inside your strings you need to double them up so MS-SQL doesn't treat them as the end of the string. This article by John Griffiths will show you a few quoting tricks, and will also provide you with a handy function - SingleQuoteDoubler() |
| Source for: | Writing To A Printer Port: Sending Escape Codes |
| Date: | 2006-03-08 |
| Summary: | The problem: How to send a control code (a.k.a. escape sequence or printer control) to a printer? The Clarion report structure no longer supports sending embedded control codes. There is no Clarion statement that allows sending them, at least not since CDD. Steve Parker explores the mystery of talking directly to Windows printers. |
| Source for: | Encrypting Data With Number Base Conversion |
| Date: | 2006-03-02 |
| Summary: | Most programmers are familiar with base 2 (binary) numbers, base 10 (decimal) and base 16 (hex). But using arbitrary number bases can also be a useful way to encrypt data for transmission by phone or other voice methods. Dermot Herron shows how he applies this technique to transfer vital information to customers. |
| Source for: | Anyone Home on the Network? |
| Date: | 2006-01-20 |
| Summary: | IsNetworkAlive, IsDestinationReachable, GetLastError, FormatMessage, GetDriveType, WnetGetConnection - the odyssey to know the status of the network began with a printer error. It was the most peculiar printer error Steve Parker and Henry Plotkin had ever seen. |
| Source for: | Next Month Anniversary Date Function |
| Date: | 2006-01-19 |
| Summary: | Inspired by Carl Barnes Better Date article, John Griffiths offers up this function to get anniversary dates on specific days of the month. |
| Source for: | Edit-In-Place: Getting User Confirmation |
| Date: | 2006-01-13 |
| Summary: | No good deed, it is said, goes unpunished. And now Henry Plotkin comes to realize that Edit-in-place is ready, willing and able to punish the good-deed-doing Clarion developer. Perfectly willing. |
| Source for: | A Better DATE Function |
| Date: | 2006-01-09 |
| Summary: | Carl Barnes improves on the standard Clarion DATE function with a version that corrects a bug and works with negative month and day values. |
| Source for: | IsNetworkAlive: When You Don't Need to Know That Much |
| Date: | 2005-12-23 |
| Summary: | Steve Parker's colleague Henry Plotkin recently examined ways of checking whether a client PC was able to talk to another, named, PC on the network. Henry liked the IsDestinationReachable API, but as Steve shows, IsNetworkAlive still has its uses. |
| Source for: | Translating Mapped Drives To UNC |
| Date: | 2005-12-23 |
| Summary: | Steve Parker recently objected to having to translate mapped drive letters to UNC names in order to check whether or not network resources were available. Paul Attryde, with his characteristic unstinting help, pointed Steve to a fairly easy and very solid solution. |
| Source for: | Modifying The Frame Background - A 10 Minute Template, Part 2 |
| Date: | 2005-12-16 |
| Summary: | Someone asked recently on the newsgroups if there was an easy way to change the background color of an application frame. This is a question Geoff Bomford frequently asked himself, and never found a satisfactory answer. He happened to find a solution that was good enough to turn into a simple template. Part 2 of 2. |
| Source for: | Using GetLastError and FormatMessage to Check the Network |
| Date: | 2005-12-15 |
| Summary: | As Henry Plotkin discovered in his previous article, IsDestinationReachable is a less-than-perfect API call for detecting network problems. In this installment, Henry expands his analysis with the GetLastError and FormatMessage calls. |
| Source for: | Hello, Server? |
| Date: | 2005-12-12 |
| Summary: | If Henry Plotkin's application runs across a network, he wants to know if that network is working or not. If the network drops while the program is trying to access files, the user might get an error message. Or they might not. Or they might get a "Save As" dialog, as happened recently. If they do get a message, it is unlikely that they will comprehend it. Something more user friendly is in order. |
| Source for: | Modifying The Frame Background - A 10 Minute Template |
| Date: | 2005-12-08 |
| Summary: | Someone asked recently on the newsgroups if there was an easy way to change the background color of an application frame. This is a question Geoff Bomford frequently asked himself, and never found a satisfactory answer. He happened to find a solution that was good enough to turn into a simple template. Part 1 of 2. |
| Source for: | A FileDropBox With Conditional Content |
| Date: | 2005-11-30 |
| Summary: | There are always situations where the contents of a FileDropBox, either a FileDropListBox or a FileDropCombo, is dependant on some criteria, usually the contents of an entry field or another FileDropBox. But a FileDropBox is always file loaded, and this loading is done when the form opens; after that the FileDropBox remains pretty static. Maarten Veenstra shows how to change the FileDropBox's content at runtime. |
| Source for: | Memory Mapped Files in Clarion |
| Date: | 2005-11-18 |
| Summary: | Sometimes you need a secure way to communicate between applications, as Marty Honea discovered when he wanted a single login for multiple EXEs. After considering a variety of schemes, Marty found that Memory Mapped Files fit the bill perfectly. |
| Source for: | A Tree in a Page Loaded Browse: The Sequel, Part 3 |
| Date: | 2005-11-11 |
| Summary: | Browse boxes formatted as trees are handy for all sorts of things. File loaded trees are easy; page loaded trees, however, can be a nightmare. In this series David Podger and Deon Canyon build on an earlier approach demonstrated by Ronald van Raaphorst. This final installment looks at cutting and pasting. |
| Source for: | A Tree in a Page Loaded Browse: the Sequel, Part 2 |
| Date: | 2005-11-04 |
| Summary: | Browse boxes formatted as trees are handy for all sorts of things. File loaded trees are easy; page loaded trees, however, can be a nightmare. In this series David Podger and Deon Canyon build on an earlier approach demonstrated by Ronald van Raaphorst. Part 2 of 3. |
| Source for: | Exporting APPs and DCTs to XML |
| Date: | 2005-10-28 |
| Summary: | XML is everywhere these days; everywhere, that is, but in your DCTs and APPs. But as Harley Jones shows, exporting your APP or DCT to XML can be a great benefit, for documentation, and for other purposes. Part 1 of 2. |
| Source for: | Internationalization Tools Standards: Learning from an ABC Calendar Workaround |
| Date: | 2005-10-20 |
| Summary: | Anyone who has internationalized a large application knows that one of the more time consuming tasks is dealing with third party products which attack internationalization in ways that do not allow languages choices at run time. Even in a pure ABC context, creating multi-language applications is challenging but generally possible, although there is a notable exception in the ABC calendar classes. Phil Will shows how to prepare your code for translation, using the misbehaving calendar classes as an example. |
| Source for: | Mixing Clarion With .NET, Part 4 |
| Date: | 2005-09-29 |
| Summary: | September's focus on .NET continues with Wade Hatler's series on using Clarion and .NET together. In this installment Wade shows how to how to pass string, date, time and decimal parameters from .NET to Clarion. |
| Source for: | Mixing Clarion with .NET, Part 3 |
| Date: | 2005-09-21 |
| Summary: | September's focus on .NET continues with Wade Hatler's series on using Clarion and .NET together. In this installment Wade shows how to call Clarion procedures from inside .NET applications. |
| Source for: | Mixing Clarion with .NET, Part 2 |
| Date: | 2005-09-15 |
| Summary: | Now that you know how to call methods in .NET, it's time to put some WinForms objects inside of Clarion windows. It's surprisingly easy once you know a few tricks, as Wade Hatler demonstrates. |
| Source for: | Mixing Clarion with .NET, Part 1 |
| Date: | 2005-08-31 |
| Summary: | The .NET framework is extremely large, growing and very well supported. Right out of the box the framework has hundreds of classes that are well thought out and which integrate seamlessly with .NET applications. These classes cover a very wide range of the things you might want to do, once Clarion.NET arrives. But there's no need to wait. In the first article in this series, Wade Hatler looks at calling .NET classes from Clarion code. |
| Source for: | Fetching A Web Page With WinInet |
| Date: | 2005-08-23 |
| Summary: | There are a few different tools you can use to get a web page from a server, and one readily available solution is to use Windows' own WinInet DLL. Skip Williams shows how it's done. |
| Source for: | Speeding Development With Defaults And Small Templates |
| Date: | 2005-08-16 |
| Summary: | Faced with a conversion of a DOS application to Clarion 6.2, Phil Will came up with of two simple things to do with templates and the defaults file that saved a tremendous amount of time in development, and greatly eased application maintenance. |
| Source for: | Using Local Classes Instead Of Local Routines |
| Date: | 2005-08-11 |
| Summary: | Local classes are often touted as a replacement for procedure routines. But what are local classes, why do you need them, and what can you do with them? Nardus Swanevelder answers these questions, and shows how easy it is to use local classes. |
| Source for: | Online Mapping And Routing In Clarion |
| Date: | 2005-06-22 |
| Summary: | Online mapping is a useful and increasingly popular tool for personal and business use. Colin Wynn shows how easy it is to interface to MSN mapping and routing with a Clarion application. |
| Source for: | A Multi-Threaded Queue Of Queues |
| Date: | 2005-06-21 |
| Summary: | Queues make all kinds of data handling fast and easy. With Clarion 6, queue access gets a little more complicated, since queues by themselves are not thread safe. And what if you use queues of queues? Svetlana Zusman shows how to lock nested queues for thread safety and maximum efficiency. |
| Source for: | Generic DLLs The Template Way |
| Date: | 2005-05-26 |
| Summary: | A truly generic DLL can be difficult to achieve using the standard templates. Hand-coding the DLL, as Jeff Slarve recently described, is one option; another is to use a specialized template to manage the creation of the export file. Bjarne Havnen shows how it's done. |
| Source for: | A Better DosFileLookup |
| Date: | 2005-05-13 |
| Summary: | When some standard Clarion functionality doesn't meet your need, what do you do? First, you embed some code. Then, when you need that code elsewhere, you start thinking about how to avoid duplicating the embeds. As Dave Harms shows, often the easiest solution is to create a custom, derived ABC class, and tell the templates to use your class instead of the ABC original. |
| Source for: | Modifying the Common Dialogs: How Hard Could It Be? |
| Date: | 2005-05-12 |
| Summary: | Have you ever wanted to add a button or other control to one of the built-in common dialogs for opening a file, saving a file, or printing? Jim Kane thought it would be nice to add a multi-page TIFF preview button to the file open dialog. How hard could it be? |
| Source for: | Version Control with CVS and Clarion 6.x, Part 2 |
| Date: | 2005-04-21 |
| Summary: | Recently, Nardus Swanevelder introduced the open source CVS version control system to ClarionMag readers. Now Bernie Grosperrin advances this topic, showing how to use CVS with Clarion 6.x. Part 2 of 2. |
| Source for: | Version Control with CVS and Clarion 6.x |
| Date: | 2005-04-15 |
| Summary: | Recently, Nardus Swanevelder introduced the open source CVS version control system to ClarionMag readers. Now Bernie Grosperrin advances this topic, showing how to use CVS with Clarion 6.x. Part 1 of 2. |
| Source for: | Limit An App To A Single Instance: DDE Strikes Back |
| Date: | 2005-04-12 |
| Summary: | In days of old, when programmers were bold and DDE was the ultimate tool, if one wished to limit one's application to a single instance, it was quite easy. But Microsoft has deprecated DDE, and has done its best to move programmers to other solutions. As a result, that old DDE instance-limiting code doesn't always work as expected. Unless you add a modern twist, as Steve Parker shows. |
| Source for: | Compiling C with the Clarion IDE, Part 3: Naming and Mangling |
| Date: | 2005-03-28 |
| Summary: | Ever find some C source on the Internet that does exactly what you need? So you rewrite and convert it to Clarion code, then try to get it to work again. Carl Barnes will show you how easy it is compile C modules with your Clarion code. One small change to the C header, create a Clarion include file and, Bob Z's your uncle, you're calling the C function. Part 3 of 3. |
| Source for: | Compiling C with the Clarion IDE, Part 2: Calling C from Clarion |
| Date: | 2005-03-22 |
| Summary: | Ever find some C source on the Internet that does exactly what you need? So you rewrite and convert it to Clarion code, then try to get it to work again. Carl Barnes will show you how easy it is compile C modules with your Clarion code. One small change to the C header, create a Clarion include file and, Bob Z's your uncle, you're calling the C function. Part 2 of 3. |
| Source for: | Progress Bars for Queues: Using The ABC QueueProcessManagerClass |
| Date: | 2005-03-18 |
| Summary: | What do you do if you have a queue to process, and you want to display a progress bar to the user? You can write your own code, or, as Bjarne Havnen shows, you can use the undocumented ABC QueueProcessManagerClass. |
| Source for: | Compiling C with the Clarion IDE, Part 1: It's Easier Than You Think |
| Date: | 2005-03-17 |
| Summary: | Ever find some C source on the Internet that does exactly what you need? So you rewrite and convert it to Clarion code, then try to get it to work again. Carl Barnes will show you how easy it is compile C modules with your Clarion code. One small change to the C header, create a Clarion include file and, Bob Z's your uncle, you're calling the C function. Part 1 of 3. |
| Source for: | Enriching The User's Experience With RTF Displays |
| Date: | 2005-03-11 |
| Summary: | Text is becoming more and more of a requirement for applications, and large text fields have never displayed comfortably within the Clarion list box. Stephen Bottomley shows how easy it is to use RTF to create a custom display format for your data. |
| Source for: | Converting TPS Files To A New Layout Part 2 |
| Date: | 2005-03-04 |
| Summary: | No matter how hard you plan your database design; sooner or later you will want to change the layout of your application's TPS data files. In this second of two parts, Abe Jimenez describes the actual data conversion. |
| Source for: | Converting TPS Files To A New Layout |
| Date: | 2005-02-24 |
| Summary: | No matter how hard you plan your database design; sooner or later you will want to change the layout of your application's TPS data files. Clarion has a mechanism for converting files in the dictionary editor, but it doesn't work on files that contain BLOBs or arrays. It also doesn't help if your application is installed in multiple sites, where the Clarion dictionary editor is not available. If you make changes to the file's structure and then distribute your application, your end users will get that dreaded error 47. That is, unless you do what Abe Jimenez does. |
| Source for: | When Edit-In-Place Bites Back Some More |
| Date: | 2005-02-11 |
| Summary: | Henry Plotkin really thought he had a pretty clever solution to a problem when he submitted When Edit-In-Place Bites Back to Clarion Magazine. When a reader pointed out further problem with EIP and the use of the mouse, Henry went back to the drawing board. |
| Source for: | Creating An Invoice Application Using C6.1 Legacy Edit-In-Place |
| Date: | 2005-01-21 |
| Summary: | Invoicing is a common requirement for Clarion business applications. Bill Rollins shows how to create a useful edit-in-place invoice using Clarion 6.1 and the legacy (Clarion) templates. |
| Source for: | Understanding Clarion Templates Part 6: Using #GROUPs |
| Date: | 2005-01-20 |
| Summary: | Dave Harms continues his template writing series with an explanation of #GROUP structures, which are really template language procedures. |
| Source for: | When Edit-In-Place Bites Back |
| Date: | 2005-01-17 |
| Summary: | Users have a way of discovering problems even the most rigorous testing cannot uncover, as Henry Plotkin finds out. |
| Source for: | Embedding Fonts In Clarion Apps |
| Date: | 2005-01-14 |
| Summary: | Embedding resources into a program is common practice in Windows programming. Surely, Clarion must be able to use the Windows Resource file system to access a font stored away as a binary resource. But how does Clarion handle this? David Bratovich explains. |
| Source for: | Mysteries of the iPod |
| Date: | 2005-01-14 |
| Summary: | In honor of the new PlanetClarion podcasts, Vince Du Beau divulges some of the hidden information on the iPod, Apple's highly successful digital music player. |
| Source for: | Using Arrays in Databases |
| Date: | 2004-12-23 |
| Summary: | Arrays in databases? You can't in SQL and you shouldn't in TPS! But there are times when arrays really do make sense. Dermot Herron shows how to use OVER to get the benefits of arrays with non-arrayed file layouts. |
| Source for: | Calling the Skype API |
| Date: | 2004-12-22 |
| Summary: | By now you've probably heard of Skype, the free internet telephony service that makes the Planet Clarion podcast possible. But Skype is much more than just a free phone call. David Harms shows how to call the Skype API to manage calls, send instant messages, and much more. |
| Source for: | A Copy/Paste Popup Menu |
| Date: | 2004-12-10 |
| Summary: | Clarion entry controls may have support for Ctrl-C and Ctrl-V for copy and paste, but what do you do when a client asks for the Copy/Paste popup menu? If you're Nardus Swanevelder, you start writing some code. |
| Source for: | An Introduction to Hand-Coding Reports |
| Date: | 2004-12-09 |
| Summary: | Dermot Herron continues his series for the beginning Clarion programmer with a look at how to easily manage complex reports by using the report template and a little hand code. |
| Source for: | Managing Report Page Breaks With The C6 Break Manager |
| Date: | 2004-11-26 |
| Summary: | Geoff Bomford shows how to use the new BreakManagerClass to get control over report page breaks. This comrehensive article is a great introduction to this important new technology. |
| Source for: | A Configurable Expression Editor, Part 2 |
| Date: | 2004-11-19 |
| Summary: | Since Clarion does not have a good integral tool for defining an expression at runtime, Tim Phillips went ahead and built one, using his Basic Editor as the foundation. In this second of two parts Tim shows how the code works. |
| Source for: | A Configurable Expression Editor, Part 1 |
| Date: | 2004-11-05 |
| Summary: | Since Clarion does not have a good integral tool for defining an expression at runtime, Tim Phillips went ahead and built one, using his Basic Editor as the foundation. Part 1 of 2. |
| Source for: | Using Clarion's Business Rules, Part 2 |
| Date: | 2004-10-29 |
| Summary: | In Part 2 of this series, Nardus Swanevelder explains the inner workings of the RulesManager class. |
| Source for: | Critical Procedures: Synchronization for the Lazy |
| Date: | 2004-10-29 |
| Summary: | To protect data that's shared across threads, you can use a Critical Section, but if you fail to release the Critical Secition when you're done with it, you have a Critical Problem. The solution: use a Critical Procedure instead. |
| Source for: | Extending the FileManager Class: Shorthand Fetches |
| Date: | 2004-10-29 |
| Summary: | One of the most commonly used commands in Clarion is GET, which can retrieve records from both files and queues. The ABC equivalent is the FileManager.Fetch method, which isn't necessarily easier to use. Mike Hanson shows how to make your fetches quick and easy. |
| Source for: | Implementing a Critical Section: Fast and Effective |
| Date: | 2004-10-21 |
| Summary: | The Critical Section is the construct most commonly used to protect reading and writing non-threaded, static data in multi-threaded applications. And using Critical Sections is easier than you think. |
| Source for: | Using Clarion's Business Rules, Part 1 |
| Date: | 2004-10-21 |
| Summary: | Nardus Swanevelder begins a new series of articles explaining how to use Clarion's business rules capability to make your data validation flexible and configurable. |
| Source for: | DevCon Pre-Conference Training: Day 3 |
| Date: | 2004-09-30 |
| Summary: | While Day 1 and 2 of the pre-conference training sessions focused on new functionality provided by C6, Day 3 focused on taking advantage of capabilities available to us since Clarion 4 introduced Object Oriented Programming (OOP) and the Application Building Classes (ABC). |
| Source for: | Dynamic Table-Based Tagging |
| Date: | 2004-09-17 |
| Summary: | Sometimes a simple tagging solution is the ideal solution, and sometimes you need something a bit more robust. When his users began requiring features not included in a readily available tagging class, Chris set out to create his own tagging functionality using a highly flexible, table-based approach. |
| Source for: | Handling Nullable Fields in an ABC Application |
| Date: | 2004-09-17 |
| Summary: | It's no secret that Clarion doesn't handle nullable fields very well. In keeping with the ideal of simplicity, Clarion considers the value of a Null string to be blank, and a Null number to be zero. And in most cases, this is fine, and can make your code easier to use and maintain. But there are occasions when you have a Nullable field that really needs to be Null. |
| Source for: | Break Dancing With Clarion |
| Date: | 2004-09-16 |
| Summary: | Clarion 6.1 has introduced some improvements to the report designer. These aren't the sort of changes that will, on their own, make you want to run out and upgrade to C6.1, but they are important advances nevertheless. In the first article in this review Geoff Bomford covers the use of pre-Clarion 6.1 techniques for performing some common report break tasks, and in the next article will discuss the use of the BreakMgr Class, a new tool in Clarion 6.1 for handling the same tasks a little better! |
| Source for: | Generating A Unique Registration Code |
| Date: | 2004-07-26 |
| Summary: | Registering software usually involves entering some sort of registration code. But how do you go about creating such a code to give to your customers, and then how do you validate in the customer's application? Vince Du Beau demonstrates a registration scheme using a product type code and a user name. |
| Source for: | Recording Audio: An Introduction To OCXs, Part 3 |
| Date: | 2004-07-14 |
| Summary: | OCX technology has been around for years, but not that many Clarion developers use OCX components. Ben Brady shows how to use a readily-available OCX to record and encode audio. Part 3 of 3. |
| Source for: | Recording Audio: An Introduction To OCXs, Part 2 |
| Date: | 2004-07-08 |
| Summary: | OCX technology has been around for years, but not that many Clarion developers use OCX components. Ben Brady shows how to use a readily-available OCX to record and encode audio. Part 2 of 3. |
| Source for: | Recording Audio: An Introduction To OCXs, Part 1 |
| Date: | 2004-07-08 |
| Summary: | OCX technology has been around for years, but not that many Clarion developers use OCX components. Ben Brady shows how to use a readily-available OCX to record and encode audio. Part 1 of 3. |
| Source for: | Migrate Your Topspeed Application To Firebird, Part 2 |
| Date: | 2004-06-07 |
| Summary: | Faced with a conversion from Topspeed to Firebird, Jimmy Rogers wrote an extensive template to automate the process as much as possible. Part 2 of 2. |
| Source for: | AutoComplete In An On-Demand Drop Down Combo |
| Date: | 2004-06-07 |
| Summary: | Why would you want to learn how to code AutoComplete into a Drop Down combo when a Drop Down Combo already does that? The big answer is speed. If you have a number of Drop Down Combos (DDCs) on a page, each referencing a file that has a growing number of records, then even just opening the window will become very slow. Stuart Andrews demonstrates his approach to coding on-demand drop down combos. |
| Source for: | Migrate Your Topspeed Application To Firebird, Part 1 |
| Date: | 2004-05-27 |
| Summary: | Faced with a conversion from Topspeed to Firebird, Jimmy Rogers wrote an extensive template to automate the process as much as possible. Part 1 of 2. |
| Source for: | Cryptography and Clarion: Using the MSCrypto API Part 2 |
| Date: | 2004-05-26 |
| Summary: | Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication. Increasingly, cryptography is important to software developers, and with the US government having lifted restrictions on the export of strong encryption, a solution is now widely available to Windows developers. In this two-part article Ron Webb explains what cryptography is all about, and introduces a Clarion class wrapper for the MS Crypto API. Part 2 of 2. |
| Source for: | Cryptography and Clarion: Using the MSCrypto API |
| Date: | 2004-05-21 |
| Summary: | Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication. Increasingly, cryptography is important to software developers, and with the US government having lifted restrictions on the export of strong encryption, a solution is now widely available to Windows developers. In this two-part article Ron Webb explains what cryptography is all about, and introduces a Clarion class wrapper for the MS Crypto API. |
| Source for: | Understanding Clarion Templates Part 5: Enhancing Code Templates |
| Date: | 2004-05-21 |
| Summary: | In this installment on code templates, David Harms shows how to properly display text in a template, and conditonally generate code. |
| Source for: | Detecting Drive Types |
| Date: | 2004-05-14 |
| Summary: | Rumors to the contrary, SneakerNet is not dead! Sometimes you still need to copy data to physical, removable media. As Andrew Guidroz shows, there are some API calls that can help. |
| Source for: | Understanding Clarion Templates Part 4: Writing Code Templates |
| Date: | 2004-05-11 |
| Summary: | David Harms continues his series on learning the template language with an introduction to writing code templates. |
| Source for: | Generating MS SQL Server Side Triggers |
| Date: | 2004-04-30 |
| Summary: | Although Ayo Ogundahunsi finds the new client side triggers bold and ingenious, he still prefers the traditional way of using server-side triggers. In this article he demonstrates how to use a custom template to create server side triggers for database auditing. |
| Source for: | Burning COM: How To Write CDs in Windows XP With ICDBurn |
| Date: | 2004-04-29 |
| Summary: | When Andrew Guidroz's article idea was made redundant by Mark Riffey's article on popping up the Windows XP CD burn wizard, Andrew decided to grab COM by the horns and figure out just how to use the ICDBurn COM interface in Clarion. He ended up with two examples, one using Jim Kane's COM classes, the other using SoftVelocity's COM classes. |
| Source for: | A Hunka-Hunka Burnin' CD Data, or Two Steps Forward, One Step Back(up) |
| Date: | 2004-04-15 |
| Summary: | An integrated backup system can be a great way to provide complete service to your customers. But what happens when your users want to back up to CD? Mark Riffey explains a technique that makes use of the Windows XP burn wizard. |
| Source for: | System Tray Popup Windows |
| Date: | 2004-03-31 |
| Summary: | Shortly after installing Outlook 2003 Jim Kane noticed small windows appearing in the tray area when a new email message came in. He found these very useful, so he set about creating the same kind of popup messages in Clarion. |
| Source for: | Compiled Reports From Report Writer |
| Date: | 2004-03-31 |
| Summary: | As far as Henry Plotkin is concerned, the best thing about Clarion Report Writer is the ability to set up the finished page without having to adjust the position of each individual band. The next best thing about Report Writer is that report testing is much faster. It does not require a compile-link cycle. It does not require minimizing Clarion, starting the application and navigating to the report. Wouldn't it be nice to be able to design reports in Report Writer, and then just copy them into a Clarion report procedure? Actually, it can be done, and fairly easily. |
| Source for: | A Class Wrapper for Brice Schagane's Menu Buttons |
| Date: | 2004-03-26 |
| Summary: | Nik Johnson gets his copy of Tips & Techniques and quickly discovers a solution to his screen real estate problem: Brice Schagane's menu button. For easier re-use, Nik shows how to convert Brice's code into a class. |
| Source for: | Validating Credit Card Numbers |
| Date: | 2004-03-02 |
| Summary: | Credit card processing is a common requirement in application development. And before you submit a credit card number to your bank for processing, it helps to make sure it's a well-formed number. Abe Jimenez explains the code you need to do the job. |
| Source for: | How To Stop Trashing The Template Registry |
| Date: | 2004-03-02 |
| Summary: | How many times have you run a second instance of Clarion, without turning on multi-user development, only to have your registry trashed? In this article Danie de Beer describes a utility by Mark Goldberg that makes trashed registries a thing of the past. |
| Source for: | Template Styles in Clarion 6 |
| Date: | 2004-02-27 |
| Summary: | When Clarion 6 first became available to Early Access Program participants, there were many changes to the templates, but there were also some significant changes to the template language. Russ Eggen looks at how to use these changes to improve the appearance of your templates, while maintaining backward compatibility. |
| Source for: | Creating Derived ABC Classes With a Template |
| Date: | 2004-02-27 |
| Summary: | In this article Harley Jones explains some of the behind-the-scenes magic that Clarion performs on ABC windows and controls, and how you can do the same with custom templates. |
| Source for: | Auto-Complete Files And URLs With SHAutoComplete |
| Date: | 2004-02-26 |
| Summary: | Ever wonder how you can add an auto-complete feature like that used in Internet Explorer to your applications? Carl Barnes shows how to use IE's code, via the SHAutoComplete API function. |
| Source for: | Browse Greenbars in Clarion 6 |
| Date: | 2004-02-05 |
| Summary: | Giving a presentation on Clarion 6 can be a tricky thing, when the topic everyone wants to know about, in this case greenbars, is the one thing you haven't prepared. Under intense pressure and close scrutiny, Carl Barnes and Steve Parker discovered just how this new feature works. |
| Source for: | Porting to the C6 Threading Model: The AutoLog Example Part 2 |
| Date: | 2004-01-22 |
| Summary: | Clarion C6 has gone gold and so it's time to start getting serious about porting applications. In this series of articles Carl Barnes looks at porting some of the C55 example applications to C6. Part 2. |
| Source for: | Porting to the C6 Threading Model: The AutoLog Example |
| Date: | 2004-01-16 |
| Summary: | Clarion C6 has gone gold and so it's time to start getting serious about porting applications. In this series of articles Carl Barnes looks at porting some of the C55 example applications to C6. |
| Source for: | Accessing Version Resource Information |
| Date: | 2004-01-13 |
| Summary: | It's often useful to know the version of a particular EXE or DLL your customer is using, and Windows EXEs and DLLs do have a standard format for version information. There are tools readily available to put this information in your Clarion apps, and now Brian McGinnis demonstrates how to extract that information at runtime. |
| Source for: | Save and Restore Window Size and Location |
| Date: | 2003-12-31 |
| Summary: | Nardus Swanevelder goes on a template-writing quest to blend window size and location saving with the IceTips Cowboy SQL Templates and Ingasoftplus's Easy Resize and Split templates. |
| Source for: | Creating Utilities For MS SQL 2000 |
| Date: | 2003-12-31 |
| Summary: | Clarion's PROP:SQL is an often under-appreciated language statement. As Bernie Grosperrin shows, you can use PROP:SQL for lots of things, including creating SQL utilities for MSSQL. This task is made even easier with Dan Pressnell's clever "Query from Queue" mechanism. |
| Source for: | A Simple Versions And Annotations Template |
| Date: | 2003-12-05 |
| Summary: | Recently Ronald van Raaphorst realized he needed some kind of annotation system for his Clarion app. The result was this template that lets a developer record changes in any procedure, and print an overview of all annotations per procedure or application. |
| Source for: | NAME() Becomes Irrelevant |
| Date: | 2003-12-04 |
| Summary: | NAME has been an important attribute of the FILE statement for a long time. In Clarion 6, however, there is a new feature that makes PROP:NAME irrelevant in many situations, as Henry Plotkin shows. |
| Source for: | Moving Applications to Oracle: RI And AutoNumbering Part 2 |
| Date: | 2003-11-28 |
| Summary: | Jon Waterhouse takes a detailed look at the differences between relational integrity and autonumbering in Topspeed databases and Oracle databases. Although specifically about Oracle, this series also contains useful general information about converting to SQL. Part 2. |
| Source for: | The Windows API: Downloading Files Part 3 |
| Date: | 2003-11-28 |
| Summary: | The Windows API offers numerous benefits to Clarion developers, including performance improvements and productivity gains from leveraging existing, reliable code. In this series Veronica Chapman demonstrates how to use the Windows API to connect to the internet and download (and optionally expand) files. Conclusion. |
| Source for: | Moving Applications to Oracle: RI And AutoNumbering Part 1 |
| Date: | 2003-11-21 |
| Summary: | Jon Waterhouse takes a detailed look at the differences between relational integrity and autonumbering in Topspeed databases and Oracle databases. Although specifically about Oracle, this series also contains useful general information about converting to SQL. Part 1. |
| Source for: | The Windows API: Downloading Files Part 2 |
| Date: | 2003-11-21 |
| Summary: | The Windows API offers numerous benefits to Clarion developers, including performance improvements and productivity gains from leveraging existing, reliable code. In this series Veronica Chapman demonstrates how to use the Windows API to connect to the internet and download (and optionally expand) files. Part 2 of 3. |
| Source for: | The Windows API: Downloading Files Part 1 |
| Date: | 2003-11-14 |
| Summary: | The Windows API offers numerous benefits to Clarion developers, including performance improvements and productivity gains from leveraging existing, reliable code. In this series Veronica Chapman demonstrates how to use the Windows API to connect to the internet and download files. Part 1 of 3. |
| Source for: | Data Structures and Algorithms Part XXIV - Floyd's All Pairs Algorithm |
| Date: | 2003-10-30 |
| Summary: | Alison Neal discuss Floyd's All Pairs algorithm, which provides the shortest path between all pairs of nodes in a graph. |
| Source for: | Trees, Recursion, and Many to Many Checkboxes |
| Date: | 2003-10-17 |
| Summary: | Most of the data you deal with probably fits nicely into a parent/child, relational data structure. But sometimes you have data that works better as a self-join, where data in one table relates back to other data in the same table. Randy Long shows how to use trees, recursion, and many-to-many checkboxes to manage this kind of data. |
| Source for: | Data Structures and Algorithms Part XXIII - Dijkstra's Shortest Path Algorithm |
| Date: | 2003-10-06 |
| Summary: | Have you ever needed to work out the shortest path between two locations? Alison Neal shows how to do this in Clarion, using Dijkstra's Shortest Path Algorithm |
| Source for: | Translation, Clarion Style: Selected Topics |
| Date: | 2003-09-18 |
| Summary: | Nardus Swanevelder continued his translation series with a look at screen design issues, third party applications, and changing languages at runtime. |
| Source for: | Translation, Clarion Style: Runtime Issues |
| Date: | 2003-09-18 |
| Summary: | Nardus Swanevelderl complete the runtime translation discussion with examples of loading translation strings from a database, and applying this translation to a multi-DLL application. |
| Source for: | Translation, Clarion Style: Currencies And Measurement |
| Date: | 2003-09-12 |
| Summary: | Nardus Swanevelder continues his series on translation with a template to convert currencies and measurements, and a brief look at dynamically created text, controls, and windows. |
| Source for: | A Basic Editor For Text Fields: Conclusion |
| Date: | 2003-09-11 |
| Summary: | Clarion's TEXT control is versatile and useful, but has next to no word processing capabilities. But as Tim Phillips shows, it's relatively easy to add capabilities like search/replace, block reformatting, and more. Part 2 of 2. |
| Source for: | A Basic Editor For Text Fields: Introduction |
| Date: | 2003-09-04 |
| Summary: | Clarion's TEXT control is versatile and useful, but has next to no word processing capabilities. But as Tim Phillips shows, it's relatively easy to add capabilities like search/replace, block reformatting, and more. Part 1 of 2. |
| Source for: | Translation, Clarion Style |
| Date: | 2003-08-13 |
| Summary: | Ever wonder how multi-language support really works in Clarion? In part 2 of this series, Nardus Swanevelder shows how to translate standard Clarion messages. |
| Source for: | Data Structures and Algorithms Part XXII - Critical Path Analysis |
| Date: | 2003-08-13 |
| Summary: | Alison Neal's algorithms series resumes this week in Clarion Magazine, with a discussion of critical path analysis software. |
| Source for: | Translation, Clarion Style |
| Date: | 2003-08-07 |
| Summary: | Ever wonder how multi-language support really works in Clarion? In part 1 of this series, Nardus Swanevelder shows how to add basic translation capabilities to you applications. |
| Source for: | Breaking Reports On Computed Fields |
| Date: | 2003-07-17 |
| Summary: | Henry Plotkin is assigned a new report, "Open invoices, aged by date." Only the Invoice file contains fields for invoice number, date, amount, previous balance, payments and debits. No "open" flag. No "age." Henry ponders how to filter, order and group the report records without having those fields at hand. |
| Source for: | String Flinging Part 2 |
| Date: | 2003-07-15 |
| Summary: | What uses most of the memory in typical Clarion applications? Strings, most probably. And you may not realize that you're wasting a lot of memory by how you handle those strings. Jim Gambon digs into strings and comes up with some memory- and time-saving tips and techniques. Part 2 of 2. |
| Source for: | String Flinging Part 1 |
| Date: | 2003-07-11 |
| Summary: | What uses most of the memory in typical Clarion applications? Strings, most probably. And you may not realize that you're wasting a lot of memory by how you handle those strings. Jim Gambon digs into strings and comes up with some memory- and time-saving tips and techniques. Part 1 of 2. |
| Source for: | Clarion, COM, Soap, and HTTP |
| Date: | 2003-07-10 |
| Summary: | Recently Shane Vincent wanted to add a no-cost solution to the credit card authorization process. His solution involved a couple of open source COM components, Jim Kane's COM interface generator, and a couple of Clarion wrapper classes. |
| Source for: | A String To CString Converter |
| Date: | 2003-06-26 |
| Summary: | Sometimes you need to pass CSTRINGs to a function, and it's inconvenient to create variables for the purpose - you just want to pass in string literals. But Clarion (at least through version C6 EA4-5) all literal strings are STRINGs. So how do you do it? With a class, of course. |
| Source for: | Creating XML Files With The Clarion 6 DOM Parser |
| Date: | 2003-06-26 |
| Summary: | Clarion 6 ships with class wrappers for the CenterPoint XML library, which includes SAX and DOM parsers. Although there is as yet no documentation for the Clarion class wrappers, they're actually quite easy to use. David Harms shows how to use the DOM classes to write an RSS XML file. |
| Source for: | How to Display An Image In A ListBox Header (Part 2) |
| Date: | 2003-06-25 |
| Summary: | Have you ever wished that you could place an image on a listbox header? In this article Randy Rogers explains how to use subclassing to place little triangles in the header, like those used in Microsoft Outlook to display a column's sort order. Part 2 of 2. |
| Source for: | How to Display An Image In A ListBox Header (Part 1) |
| Date: | 2003-06-23 |
| Summary: | Have you ever wished that you could place an image on a listbox header? In this article Randy Rogers explain the first of two techniques (that is, hacks) that he uses to place little triangles in the header, like those used in Microsoft Outlook to display a column's sort order. Part 1 of 2. |
| Source for: | Clarion Magazine's RSS Feeds |
| Date: | 2003-06-20 |
| Summary: | Wondering what those new XML icons are on the ClarionMag home page? They're RSS feeds, and in combination with an RSS reader they make it possible for you to get notification of articles and news items when they appear on the web site. No more waiting for the weekly update emails! |
| Source for: | Creating An XML RSS Web Site Summary With Clarion 6 (Part 2) |
| Date: | 2003-06-13 |
| Summary: | Ever wonder how easy or difficult it is to work with XML? Consider the RSS specification, which is used to create summaries of items on a web site. In this second of two parts, David Harms looks in detail at the code. |
| Source for: | Creating An XML RSS Web Site Summary With Clarion 6 (Part 1) |
| Date: | 2003-06-06 |
| Summary: | Ever wonder how easy or difficult it is to work with XML? Consider the RSS specification, which is used to create summaries of items on a web site. With relatively little work, you can create RSS files in Clarion, using some of the new XML capability in Clarion 6. In this installment, David Harms looks at the RSS specification and presents some Clarion source. Part 1 of 2. |
| Source for: | A Tree In A Page Loaded Browse |
| Date: | 2003-05-30 |
| Summary: | Clarion has a template for building a tree list control (RelTree). One of the disadvantages of this control is that the maximum tree level is fixed by the number of files you use in it. In this article, Ronald van Raaphorst outlines a simple idea for a non-level-limited, page loaded tree, using a standard browse control. |
| Source for: | Veronica's Short History Of The Windows Operating Systems (Part 2) |
| Date: | 2003-05-28 |
| Summary: | It is true that the Clarion environment tends to, or tries to, hide as much of Microsoft's OS as possible. This is good for beginners, but bad for the experienced programmer. Sooner or later beginners (if they don't become discouraged) gain a certain amount of experience and want more. In this series, Veronica Chapman surveys the history of the Windows operating system(s), and provides an introduction to Clarion's Windows API capabilities, including a nifty example app and an updated LIBMaker. Part 2 of 2. |
| Source for: | Finding Source With Enhanced Templates |
| Date: | 2003-05-23 |
| Summary: | Although templates are wonderful they can also be the source of great frustration. Something like a small change in the dictionary can create havoc when you try to compile the program associated with that dictionary, and it can be very difficult to locate the offending source. As Steffen Rasmussen shows, some template modifications can make finding that problem source code a lot easier. |
| Source for: | Veronica's Short History Of The Windows Operating Systems (Part 1) |
| Date: | 2003-05-22 |
| Summary: | It is true that the Clarion environment tends to, or tries to, hide as much of Microsoft's OS as possible. This is good for beginners, but bad for the experienced programmer. Sooner or later beginners (if they don't become discouraged) gain a certain amount of experience and want more. In this series, Veronica Chapman surveys the history of the Windows operating system(s), and provides an introduction to Clarion's Windows API capabilities. Part 1 of 2. |
| Source for: | Mutexes: Serializing File Access |
| Date: | 2003-04-04 |
| Summary: | Steve Parker finishes up his look at Clarion 6 synchronization objects with the mutex. Part 2 of 2 |
| Source for: | A Naıve Look at The Mutex |
| Date: | 2003-04-03 |
| Summary: | Steve Parker finishes up his look at Clarion 6 synchronization objects with the mutex. Part 1 of 2 |
| Source for: | Demystifying C6 Threading (Part 3) |
| Date: | 2003-03-28 |
| Summary: | Mutexes, semaphores, critical sections, reader/writer locks; all of these things are part of Clarion 6, and they all have to do with the new support for unlocking Clarion threads so they run like real operating system threads. Should you care? If you write any embedded code, yes, you should. Should you worry? That all depends on what kind of embedded code you write. Part 3 of 3. |
| Source for: | My First Function Library |
| Date: | 2003-03-21 |
| Summary: | If you've never created a function library, Alan Telford wants to talk to you. You will make your first function library. And yes, it will be important to you! You will enjoy it! You will remember it for life! |
| Source for: | Post-mortem Debugging: How I stopped fearing the GPF |
| Date: | 2003-03-14 |
| Summary: | Sometimes, when you're testing that almost completed application, it crashes. No rhyme or reason, and inspection of the last code changes reveal nothing out of place. Re-run and it crashes again. Where do you go? To the debugger for a quick post mortem. Russ Eggen shows how to track down those tricky GPFs. |
| Source for: | Menu Buttons In Clarion |
| Date: | 2003-03-11 |
| Summary: | If you've ever used Intuit's Quicken software, you will have seen Menu Buttons in action. Instead of a standard menu bar across the top of the window, Quicken uses what appear to be flat, transparent buttons, which display a popup menu when clicked. Brice Schagane shows how to get the same effect in a Clarion application. |
| Source for: | Debugging Queues With Excel |
| Date: | 2003-02-27 |
| Summary: | Like a lot of Clarion programmers, Alan Telford thinks queues are the greatest thing since sliced bread. But it isn't always easy viewing queue data when you're tracking down a queue data-related bug. To solve this problem, Alan created a procedure that makes it easy to export queue data to Excel, which is an excellent tool for viewing tabular data. |
| Source for: | Data Structures and Algorithms Part XVI - The Huffman Compression Algorithm (Part 2) |
| Date: | 2003-02-25 |
| Summary: | In her latest installment, Alison Neal discusses the Huffman compression algorithm, which is the same compression algorithm that is used by PkZip. The algorithm yields approximately 40% compression for text files. The test application included with the article reduces the provided test file from 20kb to 12kb in size, and then decompresses it back to its original state. Part 2 of 2. |
| Source for: | Data Structures and Algorithms Part XVI - The Huffman Compression Algorithm (Part 1) |
| Date: | 2003-02-21 |
| Summary: | In her latest installment, Alison Neal discusses the Huffman compression algorithm, which is the same compression algorithm that is used by PkZip. The algorithm yields approximately 40% compression for text files. The test application included with the article reduces the provided test file from 20kb to 12kb in size, and then decompresses it back to its original state. Part 1 of 2. |
| Source for: | Interfaces Everywhere |
| Date: | 2003-02-03 |
| Summary: | Some time ago Jim Kane created the OLETCL class to use COM objects with a VB-like syntax. OLETCL relied on a quirk in Clarion's COM and thread handling, but with Clarion 6's new threading model OLETCL will no longer work. That prompted Jim to finish a COM interface generator he'd started many years earlier. |
| Source for: | Data Structures and Algorithms Part XV - Priority Q |
| Date: | 2003-01-30 |
| Summary: | In this second of two parts, Alison Neal continues her examination of traditional (i.e. not Clarion) Queues. This week's subject: the Priority Queue. |
| Source for: | Getting Dynamic With Report Writer |
| Date: | 2003-01-30 |
| Summary: | This action packed episode picks up where Ben Brady ("Integrating Clarion Report Writer Into Your Applications") leaves off. Ben showed how to integrate the Report Writer engine into standard Clarion apps. In this article, Dr. Parker shows how to add more flexibility to the process of using Report Writer from an app. |
| Source for: | A Calculator Class And Template |
| Date: | 2003-01-24 |
| Summary: | Nardus Swanevelder's search for a free XP-like Clarion calculator was fruitless, but he found some free Clarion 4 source code. Nardus shows he he converted that source into a class and templates. |
| Source for: | Debug De Program With Debuger |
| Date: | 2003-01-23 |
| Summary: | Looking for another way to debug your programs? Skip Williams' Debuger class (yes, that's how it's spelled) logs system messages, detects duplicate messages, and will even conditionally invoke the Clarion debugger. |
| Source for: | Integrating The Clarion Report Writer Into Your Applications (Part 2) |
| Date: | 2003-01-16 |
| Summary: | The Clarion Report Writer is a great tool for creating standalone or ad-hoc reports, and is not only for developers, but for end users armed with a copy of the Clarion Report Writer and enough technical savvy about your database schema to use the tool as well. And as Ben Brady shows, it's easy to integrate Report Writer reports into your application. Part 2 of 2. |
| Source for: | Integrating The Clarion Report Writer Into Your Applications (Part 1) |
| Date: | 2003-01-06 |
| Summary: | The Clarion Report Writer is a great tool for creating standalone or ad-hoc reports, and is not only for developers, but for end users armed with a copy of the Clarion Report Writer and enough technical savvy about your database schema to use the tool as well. And as Ben Brady shows, it's easy to integrate Report Writer reports into your application. |
| Source for: | Calling A Clarion Application With PHP |
| Date: | 2003-01-06 |
| Summary: | PHP is a hugely popular scripting language used mainly for web development; Clarion is a Windows language used mostly for business software development. What do they have to do with each other? In this article, Ville Vahtera shows how to create a Clarion application which can be executed from, and have its output captured by, PHP. |
| Source for: | DNA for Clarion: Manipulating Browse Cells With A VLBPROC (Part 2) |
| Date: | 2002-12-20 |
| Summary: | Virtual List Boxes (VLBs) are one of the least-understood and most under-appreciated features of the Clarion language. In this two-parter, Stephen Bottomley explains VLBs, and introduces a class that you can use standalone, or to control the display of an existing browse. Part 2 of 2. |
| Source for: | Web Validation From Your Clarion App Using NetTalk |
| Date: | 2002-12-20 |
| Summary: | Recently, Mark Riffey had a need to for one of my Clarion programs to access a SQL database, hosted on the web, in order to determine if the customer's access to a service had expired. It was a fairly simple task using CapeSoft NetTalk, as Mark demonstrates. |
| Source for: | CLASSy ASCII File Importing |
| Date: | 2002-12-20 |
| Summary: | Earlier this month Steve Parker wrote an article on importing ASCII files into a database using Konrad Byers' ASCII file class. In this article, Steve describes a class by Dave Harms that makes fixed record length ASCII importing configurable at runtime. |
| Source for: | Data Structures and Algorithms Part XIII - Trie Hard |
| Date: | 2002-12-19 |
| Summary: | In her last installment, Alison Neal introduced a data structure called the Trie, which is used for storing strings in computer memory. In this article Alison continues her discussion of the Trie, and covers some of the other methods that are contained in the Trie Class, namely the Search, Print and Kill methods. |
| Source for: | DNA for Clarion: Manipulating Browse Cells With A VLBPROC (Part 1) |
| Date: | 2002-12-19 |
| Summary: | Virtual List Boxes (VLBs) are one of the least-understood and most under-appreciated features of the Clarion language. In this two-parter, Stephen Bottomley explains VLBs, and introduces a class that you can use standalone, or to control the display of an existing browse. Part 1 of 2. |
| Source for: | Parsing Strings In ASCII Files |
| Date: | 2002-12-05 |
| Summary: | Konrad Byers' recent article on a class for accessing and processing ASCII files really spoke to Steve Parker. In this article, Dr. Parker combines that class with some string parsing code to extract field data from an ASCII file record. |
| Source for: | Data Structures and Algorithms Part XII - Trie This |
| Date: | 2002-12-04 |
| Summary: | In this article Alison Neal introduces a data structure known as the Trie, which is basically a type of general tree, containing words rather than numbers. The Trie is an immensely useful data structure when storing strings in memory. The Trie has been used for such things as computerized Boggle and Yahtzee games, and file compression algorithms. |
| Source for: | Clarion SOAP Revisited |
| Date: | 2002-11-28 |
| Summary: | The Simple Object Access Protocol (SOAP) has been covered before in Clarion Magazine, but only from the Clarion end. In this article, Radventure's Erik Pepping shows how to create the server in C# and the client in Clarion. |
| Source for: | Determining Gender With Clarion (Part 2) |
| Date: | 2002-11-19 |
| Summary: | Inspiration can come from the strangest sources. An automatic complaint letter generator sends Geoff Robinson on a quest to create a gender guessing function using regular expressions. Part 2 of 2. |
| Source for: | Determining Gender With Clarion (Part 1) |
| Date: | 2002-11-14 |
| Summary: | Inspiration can come from the strangest sources. An automatic complaint letter generator sends Geoff Robinson on a quest to create a gender guessing function using regular expressions. Part 1 of 2. |
| Source for: | Quick COM Using A Windows Script Component |
| Date: | 2002-11-13 |
| Summary: | Everyone knows that Clarion can do COM, but did you know that you can interface a Clarion program toCOM? Wayne Price shows how to use a Windows Script Component to create a Clarion program that's usable by any programming language that can call COM objects. |
| Source for: | A Class For The ASCIIng |
| Date: | 2002-11-08 |
| Summary: | ASCII files are commonplace in programming, but their use in Clarion is generally more complicated than in other languages because Clarion can only do ASCII file I/O via an ASCII file driver declared file. Declaring such a file can become quite a nuisance, and breaks Konrad Byers' golden rule of never having to program the same thing twice. Enter the any ASCII file class. |
| Source for: | Data Structures and Algorithms Part XI - Binary Search Tree Indexing |
| Date: | 2002-11-08 |
| Summary: | Have you ever wanted to key index a text file so that you can fetch a single record directly? In this article Alison Neal shows how you can do this using a Binary Search Tree. |
| Source for: | Receiving Email With MAPI (Part 2) |
| Date: | 2002-10-30 |
| Summary: | MAPI email has been discussed in previous Clarion Magazine articles, but for the most part these articles cover sending email. In this series, Konrad Byers shows how to receive email with MAPI. Part 2 of 2. |
| Source for: | Data Structures And Algorithms Part X - Going Out Of Your Tree? |
| Date: | 2002-10-24 |
| Summary: | In the previous installment in this series, Alison Neal discussed the AVL Tree or Height Balanced Tree; in this article Alison continues her discussion of the AVL Tree and shows how to delete an individual item while still maintaining the sub tree heights. |
| Source for: | Receiving Email With MAPI (Part 1) |
| Date: | 2002-10-23 |
| Summary: | MAPI email has been discussed in previous Clarion Magazine articles, but for the most part these articles cover sending email. In this two-part series, Konrad Byers shows how to receive email with MAPI. |
| Source for: | Clarion Challenge Results: ContainsMatch |
| Date: | 2002-10-17 |
| Summary: | We received a record number of entries for the Clarion Challenge to create a ContainsMatch function. Gordon Smith has analyzed and benchmarked the code, and provides illuminating commentary. And yes, we do have a winner. |
| Source for: | How Not To Ignore The Form Template |
| Date: | 2002-10-04 |
| Summary: | In the previous episode, Steve Parker began "ignoring" the Form template, having previously ignored the report and browse templates. He stated that while he ignores the Form templateıs prompts the most, he ignores the Form template the least. In this final installment in the series, Steve explores what really matters about forms. |
| Source for: | A Template For Exporting Classes |
| Date: | 2002-09-20 |
| Summary: | Lee White has previously written about creating a template wrapper for classes. That template worked fine, but only in single EXE applications. What about multi-DLL apps? This time around Lee shows how to create a wrapper that handles the tricky business of exporting, and handling exported, classes. |
| Source for: | A Tool For Understanding Template Symbols |
| Date: | 2002-09-19 |
| Summary: | To be an effective template programmer, you need to know what values various template symbols contain at code generation time. Steffen Rasmussen presents a code template that you insert at any embed point, and which prints out all (or selected) currently available template symbol values. |
| Source for: | TopSpeed INI Files |
| Date: | 2002-09-13 |
| Summary: | INI files are handy, but not always the best way to store initialization information in an already database-enabled application. As it turns out, it's not that difficult to use TPS (or other database files) as drop-in replacements for text INI files in ABC applications. In this article Tim Phillips explains how you can extend the ABC IniClass with just 25 lines of code, and drop in your own INI file handler. |
| Source for: | OLE Drag & Drop |
| Date: | 2002-09-06 |
| Summary: | If you want to drag a URL from Internet Explorer and drop it onto, say, a Clarion text box, regular drag and drop won't do the trick. You need OLE Drag and Drop. Clarion Magazine's resident master of all things OLE, Jim Kane, shows how it's done. |
| Source for: | Data Structures and Algorithms Part VII - Up a Tree |
| Date: | 2002-08-29 |
| Summary: | In this installment of this series on data structures and algorithms, Alison Neal talks about the Tree data structure (which is not the same thing as a Clarion tree control). |
| Source for: | Adding Page Of Pages To A Clarion Report |
| Date: | 2002-08-16 |
| Summary: | For many years now it has been difficult to add a Page of Pages variable to a Clarion report. It has also been difficult to print more than one copy of a report without clicking on the print/report button twice, or using the printer properties to specify multiple copies. Inspired by Bruce Johnson's ABC book, and some conversations at ETC III, Nardus Swanevelder finds a solution to both problems. |
| Source for: | Class Wrapper Templates The Easy Way |
| Date: | 2002-08-15 |
| Summary: | In earlier releases of ABC, class wrapper templates were difficult to create. After creating his first class, Lee White, inveterate hand coder and template writer, went searching for a way to create a template wrapper for that class. What he found was a pleasant surprise. |
| Source for: | Finding Field Names |
| Date: | 2002-08-14 |
| Summary: | Ever find yourself looking through generated file declarations for certain fields? Here's a quick template by Andrew Guidroz that will help. |
| Source for: | Custom Queue Sorting |
| Date: | 2002-07-24 |
| Summary: | Clarion queues have two basic sorting methods built in - numeric, and alphabetical. But there are times when neither of those will suffice. Gordon Smith shows how to implement a custom queue sorting procedure. |
| Source for: | A Single Browse For Multiple Lookups |
| Date: | 2002-07-05 |
| Summary: | There have been a few threads in the newsgroups lately regarding techniques for handling a multitude of lookup tables in an application. Randy Rogers recently faced this situation, and came up with an efficient solution. |
| Source for: | Creating A Dynamic Option Box |
| Date: | 2002-07-05 |
| Summary: | Creating an option box is straightforward: select the option box, populate the radio buttons, compile and run. But users often want changes to option boxes that require a recompile. Steffen Rasmussen offers up a dynamically configurable option box, based on a list control. |
| Source for: | The RanDum Phrase Generator |
| Date: | 2002-06-21 |
| Summary: | Hereıs a neat little program by Lee White that generates random phrases, suitable for security applications such as automatically generated passwords. |
| Source for: | The Checkbox Class Performance Upgrade |
| Date: | 2002-06-20 |
| Summary: | Last year David Harms wrote an article about using browse checkboxes to manage many-to-many relationships. Faced with using this code on a remote database via an Intenet connection, he found the peformance unacceptably slow. This redesigned class dramatically reduces network traffic. |
| Source for: | Interfacing With An Interface |
| Date: | 2002-06-12 |
| Summary: | Interfaces are becoming increasingly important in the evolution of ABC. In this article, Phil Will shows how to implement the WindowComponent interface to make the currently selected control more visible to the user. |
| Source for: | Positioning List Box Totals |
| Date: | 2002-06-11 |
| Summary: | Sometimes you'll want to place total fields below list boxes, and in some cases those totals need to be positioned exactly below a column. This is easy if the user doesn't resize any columns, but what if you do allow resizing? Brice Schagane shows how to align the total fields with the columns at runtime. |
| Source for: | Data Structures and Algorithms Part II - The List |
| Date: | 2002-05-17 |
| Summary: | How many times have you been asked to write a list? Lists are everywhere: there are shopping lists, to do lists, lists of people's contact details, and lists of appointments. The List is so pervasive and so valuable that many people have spent many years discovering how to effectively represent this structure in computer memory with the greatest efficiency. |
| Source for: | Look Out, It's Outlook! (Part 2) |
| Date: | 2002-05-14 |
| Summary: | The subject of interfacing with MS Outlook comes up regularly on the newsgroup. Mark Riffey takes a second look at his Outlook code, and discovers unexpected help in MS Word. Part 2 of 2. |
| Source for: | Look Out, It's Outlook! (Part 1) |
| Date: | 2002-05-09 |
| Summary: | The subject of interfacing with MS Outlook comes up regularly on the newsgroup. Mark Riffey takes a second look at his Outlook code, and discovers unexpected help in MS Word. Part 1 of 2. |
| Source for: | Accessing TPS Files Via ASP |
| Date: | 2002-05-08 |
| Summary: | In this article Brian Staff provides an introduction to Active Server Pages, or ASP, for Clarion developers. With ASP you can use the TopSpeed ODBC driver to display a TPS file (or any ODBC compliant data) in a browser. |
| Source for: | Required Fields Times Two |
| Date: | 2002-04-26 |
| Summary: | A lot has been written lately in Clarion Magazine about validating required fields. Carl Barnes validates the notion that there's no such thing as too much Clarion knowledge, and lays out his approach to required field handling. |
| Source for: | It's an XML World! |
| Date: | 2002-04-25 |
| Summary: | XML is everywhere, as Jim Kane is beginning to see. In this article Jim shows how to use the MS DOM XML parser to manage XML documents. |
| Source for: | Data Structures and Algorithms Part I: The Dynamic Stack |
| Date: | 2002-04-19 |
| Summary: | On the newsgroups it happens time and time again: a Clarion newbie asks: "How do I implement a Tree in Clarion?" or "How do I implement a List in Clarion?" These aren't questions about tree controls or list boxes; they're about established, standard data structures. Here is the first article in a series by Alison Neal outlining how to implement standard data structures and algorithms in Clarion. |
| Source for: | OCX Controls: Web Browser, Media Player, and pcAnywhere |
| Date: | 2002-04-11 |
| Summary: | OCXs are a quick and sometimes easy way to add a lot of functionality to your applications. Peter Rabolt shows how he used web browser, media player, and remote control OCXs to beef up one of his apps. |
| Source for: | Secondary Forms (Part 2) |
| Date: | 2002-03-20 |
| Summary: | Sometimes there are too many fields to place on a single window. Sometimes fields can be grouped according to a logical division of data types. Sometimes, spreading fields so that not all of them are displayed simultaneously makes the data easier to digest. Sometimes the user wants multiple screens and sometimes it just looks better to use multiple pages to display data. |
| Source for: | Secondary Forms (Part 1) |
| Date: | 2002-03-15 |
| Summary: | Sometimes there are too many fields to place on a single window. Sometimes fields can be grouped according to a logical division of data types. Sometimes, spreading fields so that not all of them are displayed simultaneously makes the data easier to digest. Sometimes the user wants multiple screens and sometimes it just looks better to use multiple pages to display data. |
| Source for: | Using Real Icons In The Listbox Header - Part 2 |
| Date: | 2002-02-26 |
| Summary: | For quite some time Steffen Rasmussen has been working with the idea of sorting listboxes by clicking on the header, and showing the sort order with an icon. His previous solution (described in Clarion Magazine) used characters in the header to show sort orders; in this series, Steffen shows how to use real icons via buttons. Part 2 of 3. |
| Source for: | Using Real Icons In The Listbox Header - Part 1 |
| Date: | 2002-02-22 |
| Summary: | For quite some time Steffen Rasmussen has been working with the idea of sorting listboxes by clicking on the header, and showing the sort order with an icon. His previous solution (described in Clarion Magazine) used characters in the header to show sort orders; in this series, Steffen shows how to use real icons via buttons. Part 1 of 3. |
| Source for: | The CASE Statement Revisited |
| Date: | 2002-02-19 |
| Summary: | When you have complex program logic, nested IF statements can easily get out of hand. Brian Staff finds another way using a non-traditional CASE statement syntax. |
| Source for: | Running Totals: A Reader's Perspective |
| Date: | 2002-02-14 |
| Summary: | Steffen Rasmussen revisits Steve Parker's article on Running Totals, and contributes a template. |
| Source for: | Using KEYSTATE For Backdoors And Other Tricks |
| Date: | 2002-02-01 |
| Summary: | The Clarion KEYSTATE function returns the status of the "shift type" keys (Shift, Ctrl, Alt), the lock keys (Caps Lock, Num Lock, Scroll Lock), and the Insert key (overwrite or insert). It might sound like KEYSTATE isnıt good for much more than displaying information on the status bar, but in fact this function is a great tool for detecting unusual keystroke combinations (including when the numeric keypad has been used), which you can use to implement hidden features in your applications. |
| Source for: | Getting A Handle On The System Tray |
| Date: | 2002-01-30 |
| Summary: | One main benefit of Windows programming is being able to have multiple applications open at once. The problem with this is that if you have ten programs active at once, you have ten programs cluttering up your task bar, and ten icons to Alt-Tab through to land on your desired application. So - the system tray to the rescue! This article by James Cooke (not Gordon Smith, as earlier indicated - my apologies James! ed.) covers the basic steps required for parking an app in the system tray, and responding to events on that icon. |
| Source for: | Interfacing With C++ Part 2 |
| Date: | 2002-01-21 |
| Summary: | In this second of two parts, Gordon Smith concludes his demonstration of how Clarion interfaces and C++ abstract base classes can be freely interchanged between Clarion, TopSpeed C++ and Microsoft Visual C++. |
| Source for: | Interfacing With C++ Part 1 |
| Date: | 2002-01-18 |
| Summary: | This article demonstrates how Clarion interfaces and C++ abstract base classes can be freely interchanged between Clarion, TopSpeed C++ and Microsoft Visual C++. Not only does this provide a convenient conduit for mixed language development, it also allows objects to be shared across languages. In practice it is possible to build a very powerful C++ library by simply wrapping existing or third party code within a Clarion compatible interface. Part 1 of 2. |
| Source for: | Write A Word Processor In Five Minutes |
| Date: | 2002-01-17 |
| Summary: | Inspired by a 30 page tutorial on creating a text editor in Delphi, Vince Du Beau decided to see how he could improve on the example in Clarion. The result: a word processor in five minutes. |
| Source for: | Handling COM Events - Part 2 |
| Date: | 2002-01-16 |
| Summary: | The one area of COM that the Clarion OLE control is particularly weak in is receiving events. When the OLE control works, it works very well and is very simple to use. However, more often than not, it does not work, and in a case like that you'll need Jim Kane's OLE event code. Read on. Part 2 of 2. |
| Source for: | Handling COM Events - Part 1 |
| Date: | 2002-01-11 |
| Summary: | The one area of COM that the Clarion OLE control is particularly weak in is receiving events. When the OLE control works, it works very well and is very simple to use. However, more often than not, it does not work, and in a case like that you'll need Jim Kane's OLE event code. Read on. Part 1 of 2. |
| Source for: | The Clarion Advisor: Sizing Windows |
| Date: | 2001-11-28 |
| Summary: | Clarion is a great tool for writing custom apps. And every once in a while, Andrew Guidroz II has a requirement from a customer for a window that is as unique as the individualıs desktop. But how to know what size to make the window? |
| Source for: | Checkboxes For Many-to-Many Relationships: The Source Code |
| Date: | 2001-11-15 |
| Summary: | There are a lot of ways to show many-to-many relationships between two tables, and some take more work on the part of the user than others. This week Dave Harms explores the inner workings of a derived browse class to manage these relationships. |
| Source for: | Checkboxes For Many-to-Many Relationships |
| Date: | 2001-11-09 |
| Summary: | There are a lot of ways to show many-to-many relationships between two tables, and some take more work on the part of the user than others. Dave Harms shows how to create a linking record between tables with a single mouse click. |
| Source for: | Optimizing DLL Loading - Rebasing Your DLLs |
| Date: | 2001-11-06 |
| Summary: | If you create DLLs with Clarion, then you'll definitely want to read this series of articles. By default, Clarion 32 bit DLLs load more slowly than they need to, and are not sharable between processes. In this installment Carl Barnes shows how to easily rebase your own application's DLLs. |
| Source for: | Controlling Printers With DevMode (Part 2) |
| Date: | 2001-10-30 |
| Summary: | A customer's request to save printer bin selections sent Jim Gambon off on an exploration of the printer DevMode structure. In this two part series Jim explains how to create a 16/32 bit DevMode that really works, and how to use it to get full control of your printers. Part 2. |
| Source for: | Controlling Printers With DevMode (Part 1) |
| Date: | 2001-10-24 |
| Summary: | A customer's request to save printer bin selections sent Jim Gambon off on an exploration of the printer DevMode structure. In this two part series Jim explains how to create a 16/32 bit DevMode that really works, and how to use it to get full control of your printers. |
| Source for: | Report Redirection |
| Date: | 2001-09-25 |
| Summary: | This week Steve Parker takes on report redirection. Although there are excellent third party products available (and Dr. Parker isn't shy about making recommendations), there's something to be learned by reinventing the wheel. |
| Source for: | Designing Crosstab Reports In Clarion (Part 2) |
| Date: | 2001-09-13 |
| Summary: | One of the more common and useful reports is the crosstab report, which can be defined as any report that summarizes data in a two dimensional grid, such as breaking down sales data into monthly or quarterly sales. Other report writing tools often supply a wizard to guide the user through the process of creating this type of report. Clarion, however leaves the programmer to his or her own devices to create this standard summary. Part 2 of 2. |
| Source for: | Designing Crosstab Reports In Clarion (Part 1) |
| Date: | 2001-09-11 |
| Summary: | One of the more common and useful reports is the crosstab report, which can be defined as any report that summarizes data in a two dimensional grid, such as breaking down sales data into monthly or quarterly sales. Other report writing tools often supply a wizard to guide the user through the process of creating this type of report. Clarion, however leaves the programmer to his or her own devices to create this standard summary. Part 1 of 2. |
| Source for: | Normal Files, Normal Display |
| Date: | 2001-09-10 |
| Summary: | One of the basic concepts of normalization is that every record in a file or row in a SQL table should be uniquely identified. Steve Parker addresses two aspects of unique IDs: the generic motivation for using them, and the difficulties they can present when displayed to the end user. |
| Source for: | Finding A File Using Template Code |
| Date: | 2001-08-31 |
| Summary: | The Clarion template language is more powerful than most developers realize. In this article Kevin Erskine hows how he wrote template code to locate and parse the Clarion redirection file so he could parse his own class includes at generation time. |
| Source for: | Migrating The Inventory Application To SQL Server (Part 3) |
| Date: | 2001-08-28 |
| Summary: | In this three part series, Ayo Ogundahunsi takes the Clarion example Inventory application from a flat file TPS database to a MS SQL database, focusing on portability, business rules, relational integrity, and Clarion as an interface tool. |
| Source for: | Running Totals |
| Date: | 2001-08-21 |
| Summary: | Running totals come in two flavors. The first is the constant updating of an account balance in real time, such as a running total in a checkbook application. The other kind is, well, the subject of this 100th article by Steve Parker. |
| Source for: | Migrating The Inventory Application To SQL Server (Part 2) |
| Date: | 2001-08-20 |
| Summary: | In this three part series, Ayo Ogundahunsi takes the Clarion example Inventory application from a flat file TPS database to a MS SQL database, focusing on portability, business rules, relational integrity, and Clarion as an interface tool. |
| Source for: | Migrating The Inventory Application To SQL Server (Part 1) |
| Date: | 2001-08-15 |
| Summary: | In this three part series, Ayo Ogundahunsi takes the Clarion example Inventory application from a flat file TPS database to a MS SQL database, focusing on portability, business rules, relational integrity, and Clarion as an interface tool. |
| Source for: | Internal Help - An Alternative To Commercial Help Systems |
| Date: | 2001-08-09 |
| Summary: | At its most basic, application Help is just a display of a specific block of text when a button is pressed. This is a lot like displaying the memo of a record upon demand, something that Clarion can do easily. That was the starting point for Tim Philips' integrated 'internal' help system. |
| Source for: | When Clarion COM Will Not Do |
| Date: | 2001-07-24 |
| Summary: | Jim Kane reviews some COM fundamentals, and then shows how you can take matters into your own hands and extend Clarionıs COM abilities for those times where Clarion's native COM will not do what you want. |
| Source for: | Recovering Deleted Records |
| Date: | 2001-07-19 |
| Summary: | Fans of the old Clarion (DAT) file format know that unless you use the RECLAIM attribute, deleted records still exist in the data file. That isn't the case for most other drivers. Here's how to make records recoverable, using two new methods in Clarion 5.5. |
| Source for: | "Sometimes" Lookups |
| Date: | 2001-07-06 |
| Summary: | Clarion's ability to validate data with lookups is great, but what happens when you want to only do the lookup sometimes? Steve Parker tells all. |
| Source for: | Using MATCH In Filters and Regular Expressions |
| Date: | 2001-07-03 |
| Summary: | Filters for reports and browses seem to get increasingly complicated over time. In this article Carl Barnes show a trick you can do with MATCH() that will let you create more powerful filters, and which do not require any more code than a simple INSTRING() but can search for multiple substrings. |
| Source for: | Creating #AT Statements The Easy Way |
| Date: | 2001-06-29 |
| Summary: | Writing templates can be tricky, especially when it comes to creating #AT statements that correspond to ABC virtual method embeds. Here's a template that makes that task easy. |
| Source for: | Extending ABC's Edit In Place - Part 2 |
| Date: | 2001-06-22 |
| Summary: | Russ Eggen has heard it all when it comes to Edit In Place (EIP). Well, here's a dirty little secret: ABC's EIP features are fully functional. Part 2 of 2. |
| Source for: | Extending ABC's Edit In Place - Part 1 |
| Date: | 2001-06-15 |
| Summary: | Russ Eggen has heard it all when it comes to Edit In Place (EIP). Well, here's a dirty little secret: ABC's EIP features are fully functional. Part 1 of 2. |
| Source for: | Reading Tables With ADO |
| Date: | 2001-05-21 |
| Summary: | Have you ever wanted to write a generalized utility to work with a data file which may exist on more than one backend database? Do you need a utility to handle a file when you don't have/or want a DCT layout? Have you ever wanted to use ADO (ActiveX Data Objects) in Clarion as a standard way of managing your data? Here's how to get started. |
| Source for: | Creating ODBC Data Sources At Runtime |
| Date: | 2001-05-09 |
| Summary: | One of the drivers that comes with Clarion is the ODBC driver. Although Clarion deals with most of the problems of translating your file access code (e.g. OPEN, CLOSE, NEXT) into calls to the particular ODBC driver that looks after your data file, there is one area where Clarion ignores a potentially useful set of features of the ODBC design. These are the administration functions, which are required before you can access any data source through ODBC. |
| Source for: | Replicating IDLE: All Quiet on the Keyboard? |
| Date: | 2001-05-03 |
| Summary: | Needing to have two inactivity timers running at the same time, Steve Parker goes in search of an IDLE equivalent. |
| Source for: | Clarion and Multi-Edit: Together At Last |
| Date: | 2001-04-24 |
| Summary: | Clarion's own source code editor, although functional, isn't as feature-rich as some other programmers' editors, like American Cybernetics' Multi-Edit. Multi-Edit integrates with any popular programming tools, and as Vince Du Beau explains, you can use Multi-Edit with Clarion too. |
| Source for: | Web Splash Screens |
| Date: | 2001-03-20 |
| Summary: | It's common for a Windows application to need to open a browser window to display a web page. The easy way to do that is by passing a URL to ShellExecute(), but as Carl Barnes shows there are a few tricks you can use to make ShellExecute even more productive. |
| Source for: | The Clarion Challenge Results: Useless Tab Text |
| Date: | 2001-03-14 |
| Summary: | Several weeks ago I tried to plumb the meaning of inverted text on sheet tabs, and in the process came up with a small but useless application that sent tabs scurrying around all four sides of a sheet. I posted my code and challenged ClarionMag readers to fix a glaring bug in the code, write the code more compactly, and finally to come up with a real application for inverted tab text. |
| Source for: | COM: Getting Easier By The Minute (Part 3 of 3) |
| Date: | 2001-02-22 |
| Summary: | COM? Easy? Well, easier, at least. In this three-parter, Jim Kane, Clarion Magazine's resident guru of Microsoft component object technology, shows how to call COM objects with the new COM-compatible INTERFACE in Clarion 5.5. As Jim says, if VB programmers can use COM, so can you! |
| Source for: | COM: Getting Easier By The Minute (Part 2 of 3) |
| Date: | 2001-02-13 |
| Summary: | Easy? Well, easier, at least. In this three-parter, Jim Kane, Clarion Magazine's resident guru of Microsoft component object technology, shows how to call COM objects with the new COM-compatible INTERFACE in Clarion 5.5. As Jim says, if VB programmers can use COM, so can you! |
| Source for: | COM: Getting Easier By The Minute (Part 1 of 3) |
| Date: | 2001-02-06 |
| Summary: | COM? Easy? Well, easier, at least. In this three-parter, Jim Kane, Clarion Magazine's resident guru of Microsoft component object technology, shows how to call COM objects with the new COM-compatible INTERFACE in Clarion 5.5. As Jim says, if VB programmers can use COM, so can you! |
| Source for: | Give It a Nudge: Adjusting Report Position at Runtime |
| Date: | 2000-10-31 |
| Summary: | As good as printers now are, there are inevitable differences between brands and models that make it difficult to consistently print within the bounds of the printable area. Lee White and Steve Parker have the answer: Give that report a nudge. |
| Source for: | An Introduction To Writing Templates: Part 2 |
| Date: | 2000-10-17 |
| Summary: | Writing templates is easier than you think; John Morter explains his borrow-and-adapt approach to becoming productive quickly. Part 2 of 2. |
| Source for: | An Introduction To Writing Templates: Part 1 |
| Date: | 2000-10-10 |
| Summary: | Writing templates is easier than you think; John Morter explains his borrow-and-adapt approach to becoming productive quickly. Part 1 of 2. |
| Source for: | The Nuts And Bolts Of Passing Parameters: Part 2 |
| Date: | 2000-09-15 |
| Summary: | Any time you divide a program up into procedures, you need a way for those procedures to communicate. In this two part article, James Cooke explores the many facets of passing parameters. |
| Source for: | The Nuts And Bolts Of Passing Parameters: Part 1 |
| Date: | 2000-09-12 |
| Summary: | Any time you divide a program up into procedures, you need a way for those procedures to communicate. In this two part article, James Cooke explores the many facets of passing parameters. |
| Source for: | Creating An MS OutLook-Style Menu In Clarion |
| Date: | 2000-08-29 |
| Summary: | Microsoft Outlook uses an innovative menu style thatıs become quite popular. Now Steffen Rasmussen shows how to create the same style of menu in a Clarion application. |
| Source for: | Five Rules for Managing Complexity: Part 1 |
| Date: | 2000-08-22 |
| Summary: | Tom Ruby kicks off a five part series on managing application complexity with a rule about repeating fields. |
| Source for: | Please Mr. Postman: Calling External Functions By Address |
| Date: | 2000-07-05 |
| Summary: | Steve Bottomley explains how to call an external procedure by address when the procedure isn't exported from the DLL. |
| Source for: | Cloning List Boxes Part 2 |
| Date: | 2000-04-25 |
| Summary: | There are many occasions when it is useful to have list boxes that are clones of each other. Jon Waterhouse updates a previous Clarion Online article with a new template and generalized classes. Part 2 of 2. |
| Source for: | Cloning List Boxes Part 1 |
| Date: | 2000-04-18 |
| Summary: | There are many occasions when it is useful to have list boxes that are clones of each other. Jon Waterhouse updates a previous Clarion Online article with a new template and generalized classes. Part 1 of 2. |
| Source for: | Doodling Bitmaps |
| Date: | 2000-04-04 |
| Summary: | Clarion does a reasonable job of handing graphics, but sometimes you need a bit more horsepower. |
| Source for: | Subclassing With A Twist |
| Date: | 2000-03-28 |
| Summary: | Subclassing doesn't always mean OOP - sometimes it means intercepting Windows messages to do things Clarion wouldn't otherwise let you do. |
| Source for: | Edit-In-Place:Lights, Camera, Action...Take Two, Part Two! |
| Date: | 2000-02-15 |
| Summary: | There's more than one way to add edit-in-place to a browse. James Cooke lays the groundwork for making a form look like EIP. Part 2 of 2. |
| Source for: | Edit-In-Place:Lights, Camera, Action...Take Two! |
| Date: | 2000-02-08 |
| Summary: | There's more than one way to add edit-in-place to a browse. James Cooke lays the groundwork for making a form look like EIP. Part 1 of 2. |
| Source for: | Skeleton Basics III: Colors and Backgrounds |
| Date: | 2000-01-25 |
| Summary: | When you think of customizing a web page, colors and background images are probably among the first things that come to mind. In his 75th Clarion article (not all for Clarion Magazine), Steve Parker explains how it's done. |
| Source for: | WebBuilder Skeleton Basics II:ıLogos and Fonts |
| Date: | 2000-01-18 |
| Summary: | In Part 2 of his weekly WebBuilder series Steve Parker explains how to control fonts and logo placement. |
| Source for: | A Class Wrapper For Files |
| Date: | 1999-12-21 |
| Summary: | Imagine you've been asked to write just one piece of cost estimating code that can be used on several quite different sets of files. Jim Kane shows how it's done. |
| Source for: | Edit-In-Place CheckBoxes Done Right |
| Date: | 1999-12-21 |
| Summary: | ABC has a lot of edit-in-place functionality, but EIP check boxes are a bit quirky. Pete Halsted shows how make your browse's checkboxes look and act they way they should. |
Copyright © 1999-2009 by CoveComm Inc. All Rights Reserved. Reproduction in any form without the express written consent of CoveComm Inc., except as described in the subscription agreement, is prohibited.
Clarion Magazine ISSN 1718-9942
One year: $159
(includes all back issues since '99)
Renewals from $109
Two years: $249
Renewals from $199