Calvin Hsia's WebLog

thoughts from a professional developer

  • Calvin Hsia's WebLog

    GetLastError is a number. What does it mean?

    • 5 Comments
    A customer asked I'm getting an error 12 back from a GetLastError call, and I've seen a number of sites that tell me I can figure out what that error is by sending it to SysErrorMessage. But nothing I've seen shows how to declare SysErrorMessage...
  • Calvin Hsia's WebLog

    How to filter out unwanted sounds via Fourier Transform

    • 6 Comments
    In this post about The Fast Fourier Transform , I described how simple it was to create a filter to remove unwanted sound from a WAV file. In order to do that, I needed some code to read and write a WAV file. Then I used the FFT to convert to the frequency...
  • Calvin Hsia's WebLog

    The Fast Fourier Transform

    • 8 Comments
    A long time ago in college, I learned a lot about signal processing. A microphone produces a signal, and a speaker processes that signal back into sound. Why is CD quality sound sampled at 44 Khz ? Because human hearing ranges from 20-20 Khz and the Nyquist...
  • Calvin Hsia's WebLog

    A difficult debugging scenario

    • 2 Comments
    A customer had a problem with printing. I don’t know all the details about the setup. Trevor had a repro scenario in his office in North Carolina, and I used Remote Desktop to access it. It was composed of 3 virtual machines. One was a Citrix domain controller...
  • Calvin Hsia's WebLog

    Getting parameters from inherited classes

    • 0 Comments
    Visual Foxpro allows you to create a class that inherits behavior from another class. This includes properties, events and methods. The base class could have a method like this: PROCEDURE FooBar LPARAMETERS strParm as string , nParm2 as Integer...
  • Calvin Hsia's WebLog

    Creating a quick report from any cursor

    • 1 Comments
    For probably more than a decade, Fox can create a “quick report” from any table or cursor. CREATE CURSOR TEST ( name c( 10 )) CREATE REPORT dummy FROM test This will create a default quick report that can be used for any purpose. It...
  • Calvin Hsia's WebLog

    Binding to Internet Explorer Instances

    • 7 Comments
    A customer wanted to run code whenever a user started Internet Explorer. A possible solution is to use a timer to check the Running Object Table periodically: ox= CREATEOBJECT ("monitor") ox. show DEFINE CLASS monitor as Form AllowOutput...
  • Calvin Hsia's WebLog

    Strongly typed methods and properties

    • 12 Comments
    VFP allows you to generate COM servers using the OLEPUBLIC keyword. These objects can have custom properties. For example, a Customer object can have an Address property of type string. Other client applications (VFP, Excel, VB.Net, VB Script) can...
  • Calvin Hsia's WebLog

    How to use DEVMODE

    • 8 Comments
    I received a question about how to use DEVMODE . Below is some sample code that retrieves the screen’s current width/height screen resolution and rotates it for a few seconds if supported by your machine (mostly on Tablet PCs) The user’s question...
  • Calvin Hsia's WebLog

    Computer music on the radio

    • 4 Comments
    If you listen to an AM radio that’s placed near a computer, you can hear interference. I can put my radio next to my tablet and hear all the calculations being done as my ink handwriting is being converted to text. The AM frequency range is from...
  • Calvin Hsia's WebLog

    The .Object member

    • 0 Comments
    If you have an ActiveX control and you want intellisense to show just the control’s members, you can use the virtual “object” member. A control is hosted in a container, which has ambient properties For example, type this in the command window:...
  • Calvin Hsia's WebLog

    What printers are available to your program?

    • 1 Comments
    The APRINTERS function allows you to enumerate all the printers to which your application can print. ?"Printer info" ShowPrinters( 0 ) ?"More printer info" ShowPrinters( 1 ) PROCEDURE ShowPrinters(nMode) n= APRINTERS (aa,nMode...
  • Calvin Hsia's WebLog

    How do I backup files that are still in use without shutting down the application?

    • 0 Comments
    In my prior post ( Puzzle: Why does backing up a data file require web application shut down? ) the customer wanted to keep the application running while doing a backup of the data files The reason the code seemed to work in the VFP IDE is because...
  • Calvin Hsia's WebLog

    Puzzle: Why does backing up a data file require web application shut down?

    • 3 Comments
    A customer reported a problem: Customer has a VB/ASP .NET web app that uses VFP data via the provider. When they do a nightly backup of the VFP data (via a simple .CMD with XCOPY), the web app starts tossing errors as it processes SQL commands....
  • Calvin Hsia's WebLog

    Inheritance levels

    • 1 Comments
    The program below generates code to demonstrate 1000 levels of inheritance of VFP objects. The code looks like this: DEFINE CLASS c1 as c2 ENDDEFINE DEFINE CLASS c2 as c3 ENDDEFINE DEFINE CLASS c3 as c4 ENDDEFINE That...
  • Calvin Hsia's WebLog

    Foxpro Language into a table

    • 3 Comments
    Sometimes it’s useful to get the VFP language into a table, including commands, functions, properties, events, and methods. CREATE CURSOR lang (word c( 30 ), stuff c( 20 )) FOR nType= 1 to 4 n= ALANGUAGE (aa,nType) FOR i = 1 to n ...
  • Calvin Hsia's WebLog

    The mechanics of Sudoku

    • 8 Comments
    The rules of Sudoku are so simple (see Sudoku puzzles screen capture ) that it seems easy to write the mechanics of the puzzle in Fox. It took 20 minutes to write this. Move the mouse over a desired square and type a digit key. ‘0’ means erase what’s...
  • Calvin Hsia's WebLog

    Sudoku puzzles screen capture

    • 17 Comments
    I love doing crossword puzzles: I’m a huge fan of Merle Reagle (I have all his books www.sundaycrosswords.com ) and I love the NY Times Sunday puzzles, both of which come in the Seattle Times. We also love listening to the NPR Sunday Puzzle by Puzzlemaster...
  • Calvin Hsia's WebLog

    Move your "My Documents" folder

    • 1 Comments
    The “My Documents” special folder feature of Windows helps users to separate their programs from their data. The default location for “My Documents” is a few levels down in the Explorer hierarchy C:\Documents and Settings\calvinh\My Documents...
  • Calvin Hsia's WebLog

    Have you used remote assistance ?

    • 7 Comments
    I wanted to demonstrate something on my machine to somebody in another location. Using remote assistance is easy. It allows another person to view and/or control your computer from another location. Try it with yourself (the term hermaphrodite comes...
  • Calvin Hsia's WebLog

    Use Windows 2003 Server and remote desktops for debugging

    • 5 Comments
    When debugging a process, you are often examining the context of a process at a breakpoint. When done, you resume the suspended process. However, just the act of resuming causes various events to fire that may not have fired when not debugging. These...
  • Calvin Hsia's WebLog

    Why a large picture works, but a small one fails?

    • 0 Comments
    In my last post Enable crop and zooming in on your digital photograph display form there is code that seemed to work just fine for me, but failed for others. I subsequently fixd the code in that post to call ValidateRect , which works around the problem...
  • Calvin Hsia's WebLog

    Enable crop and zooming in on your digital photograph display form

    • 22 Comments
    I wanted to add the ability to zoom into a portion of a photograph on my photo viewer. Below is some code that processes the MouseUp, MouseDown and MouseMove events to add a yellow dotted-dash selection rectangle using a Shape control that the mouse can...
  • Calvin Hsia's WebLog

    Print method parameters are undocumented

    • 2 Comments
    The Print method of the Form or _screen shows only one parameter (the text to print) is accepted. Furthermore, the property sheet, documentation and intellisense show only the one parameter. However, more parameters are accepted as demonstrated by this...
  • Calvin Hsia's WebLog

    Interesting form paint behavior

    • 18 Comments
    A customer sent us a repro scenario of a problem. There was a fairly complicated form with a PageFrame tab control with several pages, each with grids and other controls on it. Sometimes, the form did not paint completely, even though the grid did. It...
Page 13 of 17 (424 items) «1112131415»