Be sure to
check out our forum FAQ. You must register
to post messages. To view messages, select the forum that you want to visit from the selection below.

----
Please note: messages from the forum administrator are sometimes being rejected by Spam filters. Please make sure you can receive the administrator's messages by whitelisting forumadmin@dataaccess.com.

Development Team Blog

A couple of weeks ago in a Discovering Visual DataFlex training one of the trainees stumbled over a problem caused by the Current Directory. In this blog I tell you more about the problem and what the Current Directory has to do with it.

The Problem
In the case that let me make this blog a dbBitmap control was used to display an image. A dbBitmap control is a database aware control so the name of the image file is stored in a column of a row in a table. Pictures can be in a folder
...

This week I had the need for a selection list with e-mail addresses that are stored in my Microsoft Outlook address book(s). So I created one. This blog explains in steps what you need to do to make one as well. The blog is based on version 16.1 of Visual DataFlex. If you do not have that version you cannot create the component.

The Selection List
One of the enhancements of Visual DataFlex 16.1 is a cCJGridPromptList class which offers a selection list that is not getting its
...

The Database Connectivity Kits used to add an uppercase (U_) column when tables were converted from DataFlex native databases to an SQL backend. That column was there just to fulfill the need of an uppercase index segment.

However, starting with build 5.0.0.63 (find the latest builds available at ftp://ftp.dataaccess.com/pub/products/connectivity/), the Connectivity Kits were changed and by default they simply use the collating sequence defined for the database on the backend and
...

About a year ago (November 2010) I posted a blog about how to use other graphic formats in the headers of a cCJGrid. A couple of days ago there was a request about how to use other graphic formats in the grid itself. While all the information is in the one-year-old blog I feel you all want to see an example on how to do this. So that is what this blog is about.

In the previous blog I started with describing a column named oYellowCards. The blog was written shortly after the 2010 World
...

In a continuing effort to make resources available to our community the Data Access Worldwide Forums and the Development Team Blog will now be accessible via a mobile application called Tapatalk.

Tapatalk is a forum app on the iPhone, Android, webOS, Windows Phone 7 and BlackBerry. This forum App provides super fast on-the-go forum access to majority of the discussion forums that has activated the Tapatalk plugin.

I have setup a USER DSN in the ODBC Manager (Data Sources) which points to an Microsoft Access demodata database. Now I want to connect to this database with Data Access's Visual Report Writer and with Visual DataFlex Studio. In Visual Report Writer I simply cannot get past the selection of the DSN and in Visual DataFlex Studio I get a "Unable to Login to Server!" message. What is wrong? I thought DataFlex could connect to ODBC databases, isn't that true? If I use Microsoft Excel from Microsoft
...

This week two developers asked me about a folderbrowser/selector. Over the years several solutions have been created (fully) using the Windows API. But as far as I know they all do not have the ability to set the focus on a certain folder shown in the tree. And that is what the developers wanted to have. I said it is "simple" to make a folder selector yourself. This blog tells you how you can create one yourself using Visual DataFlex code and a bit Windows API code.

In almost every Visual DataFlex MDI Windows Application you have a statusbar. The statusbar is usually drawn at the bottom of your panel and is divided in one of more panes. Usually the first pane is reserved for statushelp. This blog tells you how you can change the appearance of a CodeJock statusbar and its panes.

Font
Changing the appearance of the statusbar means changing font attributes. The font settings of the statusbar and its panes are not exposed directly via properties
...

If the program you write starts a task of which you know it will take some time it is important to indicate this to the user. You can do this by making use of the cursor_control object. The cursor_control object is an instance of the CursorShape class and created if you add:

Code:

Use DfCursor.Pkg

to your code.

Once the object is instantiated you can send the message cursor_wait to the object and you will see the mouse cursor changed from the I-beam or the arrow to a hourglass
...

This is the third blog article about getting more out of the web browser control. In comments I have been asked to show code that uses the web browser control. In the first blog I mentioned that the web browser control is used in a welcome dialog for Database Explorer. Let's review the code for that dialog in this blog.

The dialog
Let's look at the dialog again, the picture shows how it looks like.
...

This blog teaches you how to write code to get a list of all the modules in use by the current process. This information is useful when you want to know if a certain module (DLL, OCX) has been loaded or not. It is a kind of debugging information. I would not advise you to add this in each and every program.

To make a list of modules we need a couple of Windows API functions. First we need to get the ID of the current process (that it your executable). You can retrieve this by calling
...

If you are in a need to have a unique ID in your application you might want to make use of a Universally Unique IDentifier (UUID). The term UUID is interchangeable with GUID (Globally Unique ID). A UUID is a string that contains five blocks of hexadecimal digits. The Windows API has functions for this and in this blog I show you how to create UUIDs in Visual DataFlex.

An example of a valid UUID string is: 2CA263F1-5C94-11E0-84CC-002170FBAC5B. As you can see it consists of 8 hexadecimal
...

In the first blog I told you how to connect to the HTML document object inside your Microsoft Internet Explorer browser object. How you can dynamically load a string holding a HTML document structure. In this blog I will extend this a bit.

Let's go back to the Did You Know dialog in DataBase Explorer and look what extras we can learn from there.

Context Menu
If you bring up that dialog and you right click the browser control you will notice you cannot get to
...

Since the introduction of COM in Visual DataFlex, around Visual DataFlex version 5, there has been a example application that contains an ActiveX object that represents Microsoft's Internet Explorer. In the example, that loads a default web-page, you can enter another address, click on a hyper-link which loads a new page, go back or forward, all the usual operations you can do with Internet Explorer itself too. While this example is good you can do much more and this blog is informing you about
...

The ComboForm class is part of the Visual DataFlex product since it was introduced in 1996. The control is also called a drop-down box and combines a single value entry control with a list of options. By setting the property Entry_State to false you turn the control into a select only list, users can rotate through the values with a arrow-down/arrow-up keys and open the list by clicking on the arrow on the right. Usually the list is static and does not extend during the program run.

This blog informs you about the Data Source selection in Visual Report Writer. Visual Report Writer is a product created by Data Access Worldwide and fully written in Visual DataFlex. For this blog I used version 1.4 which was released in 2011. If you did not try or saw the product before you can download and try the report writer freely for 60 days. I also advise you to visit the Data Access Synergy conference in Orlando (March 30 - April 1); we will show the product there and organize a special
...