Calvin Hsia's WebLog

thoughts from a professional developer

  • Calvin Hsia's WebLog

    String Optimization: More detail

    • 3 Comments
    In the prior post ( String Optimization. How does it work? ) I described an optimization of how the Assignment statement calls the expression evaluator for string concatenation statements. There are certain limitations with this optimization. For example...
  • Calvin Hsia's WebLog

    String Optimization. How does it work?

    • 5 Comments
    In this post: Quiz: String performance optimization , I showed some very similar code with drastically different performance. When VFP sees an assignment statement like this: var = <something> here’s what happens. The variable on the...
  • Calvin Hsia's WebLog

    Quiz: String performance optimization

    • 7 Comments
    This code takes .03 seconds to run on my computer Try running it on yours. ns= SECONDS () x="" FOR i = 1 TO 30000 x=x+"OneTwoThree" ENDFOR ? SECONDS ()-ns ? LEN (x) Modified slightly, it takes 15 seconds. That's 500 times...
  • Calvin Hsia's WebLog

    Get the available paper bins from a printer

    • 5 Comments
    Sometimes you might want to find out how many paper bins a printer has. (Thanks to Barbara P for original question, code.) lcPrinterName = GETPRINTER () nPrinters= APRINTERS (laAvailPrinters) FOR i = 1 TO nPrinters IF UPPER (laAvailPrinters...
  • Calvin Hsia's WebLog

    GetLastError: how does it work with DECLARE DLL ?

    • 6 Comments
    Many Windows APIs can fail for various reasons. For example FormatMessage indicates failure by returning 0. (see GetLastError is a number. What does it mean? ) To get further information about the failure, call the GetLastErrror API, which queries the...
  • 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 &quot;My Documents&quot; 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...
Page 13 of 18 (429 items) «1112131415»