Level Extreme .NET Magazine April 2008 issue

Universal Thread Magazine March 2007 issue


News
Links
Downloads
Articles
Book references
Conferences
Magazines
Training
Jobs
Consultants
Companies
Blogs
FAQ
Applications
What's new

User groups

Meetings
User groups
Available speakers
Tips
User group leaders
Subscribe

Miscellaneous

Personalities

Universal Thread documentation

Acronyms
Affiliates
Support area
Team
Troubleshooting
Time zones
Web Service
Terms & Conditions
Copyright

Manage your account for the messages area options, your subscription information, your invoicing, youir banners and your pictures Subscribe to the Universal Thread and get all the benefits related to the messages area A corporate subscription is needed for companies that have more than one developer Access the Universal Thread store to purchase your subscription, corporate subscriptions and banners The Universal Thread is covering several conferences per year. On site, reporters cover the technical aspect of the conference as well as making interviews, taking pictures and videos and other related content. Get all the reports from our coverages site. Universal Thread home page Level Extreme .NET Magazine, a newly published online magazine by Level Extreme about Microsoft .NET technology and its community Universal Thread Magazine, a magazine dedicated to the Visual FoxPro community VFP 7 Wish List

This document contains the wish list for Visual FoxPro 7. It is presently read only as there is no need to continue to modify this document. You can view it but you can't update. If you wish to make a wish for next version of Visual FoxPro, please, use the Visual FoxPro Wish List for that purpose.

SeekValue()
A new seek command with the ability to return a specified expression from a table: SeekValue(eExpression [, nWorkArea | cTableAlias [, nIndexNumber | cIDXIndexFileName | cTagName]],cReturnExpression) This is especially useful in the ControlSource of a grid when you want to display for example the customer's name but only the Customer ID is stored in the table. The function would seek the expression in the table and return a value based on the requested expression. For example, lets assume a grid is bound to the Invoice Table and the grid needs to display the customer name in one of the grid columns. We could set the column's controlsource to the following:

Column1.ControlSource='SeekValue(Invoice.ID,"Customer","ID","Left(Customer.Name,20)")'
This would return the first 20 characters of the customer name. Simon White October 5th, 2001

Menus On all forms
post by:max chen WISH (1) A set option, set OldThingGone yes/no, to get rid of the old, urgly syntax such as @say, @get. Purify the blood of Vfp. WISH (2) Bound with ms sql, make vfp a powerful database tool for SQL. Promote vfp to a direct web database development tool. WISH (3) Better way to co-operate with other language such as vb,vc. Menus On all forms
Just like in vb the ability to have a menu on all forms .

Enhanced Pageframe Control
Like Flat Appearance
Hot Tracking of page captions
Dragable pages like in the project explorer

Data Bound Native treeview Control

A treeview control is what VFP really needs and that too a data bound one with all the current properties + background image and the ability to put it into a grid so each node is a row in the grid.
Metodo PrinterScreen In form create un metod for imprimir the contents form for printer, can posibillity activate / desactivate sys(13). The JPG in Command transparent One Exe with graphics JPG y very tine and more rapid execute in place BMP, But JPG not transparent and BMP yes, I wanna transparent JPG. Exe small size The Exe is very than size. Capacity animation effects in form equal Power Point or similare. Ej. Crush, Flight Left to Right, Splash... Enrique Albán

Pageframe control
Why not a pageframe like tabstrip in VB. There's a lot of properties those would be helpful.

This is an ActiveX control. You can use it in the VFP as ActiveX, I guess. -- VladGrynchyshyn

Event services
How about an ON EVENT with a GETRETURNEVENT() for COM/DCOM stuff I don't know who posted this, but can you elaborate on it? You can take advantage of COM+ events with VFP7.

Data Environment
How about a dataenvironment object - a real one that can be subclassed without too much pain and frustration?

Create a new event called "OnRefresh" which could morph the data that was displayed in a control.
This would allow you to display data in format different from what was stored in the table. It would be useful for lookups were only the linked field is stored or for date types to be displayed in a different format.

Allow ComboBox to be bound to Date type fields
This would allow a programmer to format the display of a date to any format by puting some code in the "Refresh" method. For example the RowSourceType could be set Value and the RowSource property could be adjusted in the Refresh method to "Sat Mar 21, 2001,03/21/2001" so that a date of {03/21/2001} could be displayed as "Sat Mar 21, 2001".

Avoid 255 column limitation of tables and SQL statements

Stay a wee bit more current on the copy to/Export file types.

The current version of vfoxpro can only create an Excel spreadsheet with 16500 rows even though Excel can now handle 65000 rows. We've had 5 (much appreciated) service packs. However, somewhere in there you could have added support for the more recent versions of Excel/pdf/Access...

Get rid of the automatic Menu options when using the Report Designer

Make EVERY menu option part of sysmenu and make it possible to determine when and where EVERY menu option is displayed. In the runtime enviroment don't put any menu options on automatically and don't force me to allow access to menu options that we determine our users should not use!

Make the special menus that FoxPro displays (View,Format,Report....) when using the report designer completely modifiable. In a commercial app we sell, we allow users to modify some of the report layouts and they can really wreak havoc with the data environment, private data session and browse selections on the View and Report menus.

Basicaly, we need to be able to disable the choices on these menus that we do not want (Browse, Table designer, Data Environment,Private Data Session....) but still have access to the others (Grid Lines, Show Postion, Title/Summary, Data Grouping, Variable....). Unfortunatlly, the only way to allow access to some of the choices on the view/report menus is to allow access to the entire menu. As far as I can tell, there is no way to disable the Browse option on the View menu without hiding the entire View pad.

To summarize all the menu requests ... OO menus

Need a good oledb provider for access to VFP Data from SQL 2000!!

There is is an OLE DB provider in VFP7.

Report Designer

  • Support for multiple child grids in reports!!!
  • Support for html formatted text
  • Save Report as Html
  • support for rotating objects or printing vertically, ie. better layout control
  • Save Report as a file that can be opened and viewed later without having to use some other third party tool like Acrobat

Syntax coloring

  • Syntax coloring in code is great but it doesn't print out in color even if you have a color printer

Private data session without a form. Look at the session object available in VFP6, SP3 and above

  • ability to create a private data session for any object or at least custom objects that are used in middle tier without having to have a form. That's what the session object is for. Maybe instead of wishing for things you should learn what you have now

Grids

The text objects in grids should have a WRAP property that allows row sizing when necessary

Like in Vb give each form or object a property with his handle==>so it would be easier to use API. VFP7 objects that the iAccessable COM interface

Read only cursors from a Select statement. Ummm..that's how they've always worked. If you mean read/write cursors, it's already in VFP7

The command 'Select * from [table] INTO CURSOR [cursorname]' should generate a read/write cursor. See above

A function to ZIP files in Foxpro. You can do this today with third-party products. It's highly unlikely this will be a built-in part of the product.

Scrollable ToolBars

Toolbars should be scrollable at design time and runtime There should be a arrows which would allow us to scroll left and right or up and down if all the buttons on the toolbar don't fit in it's current size.

Color Printer, Color Source Code

WIBNIF (Wouldn't It Be Nice IF) you printed the source code out on a color printer, your syntax coloring printed out.

Added by Fred Lauckner - July 12th, 2000

VFP Find Utility

I would like to be able to search for muliple text strings within a method/program. Lets say I need to rename a variable in a FOR LOOP. I would like to look for icnt or endfor. That way I can find all the occurances of icnt and stop when I hit endfor.

Grid should have SelectedRowBackcolor/SelectedRowForecolor

To make it easier to hightlight currently selected row of a grid rather making use of shape. It's just like the Listbox. There are some changes in this area in VFP7.

Multi-line Grid Column Headers

Grid column headers should allow for multiple lines of text. This would allow for more descriptive headers without making the column too wide. It's already in VFP7

Comment Code on the fly in the debugger

The ability to comment out a line or block of code in the debugger. Just like the ability to set a break point to stop a program, this would give programmers the ability skip code during execution.

New entries at the top of Watch window, so I don't have to scroll down all the time.

Function Overloading

Function Overloading is very useful and should be supported in the next version. e.g. Creating two (or more) functions with the same names but with different parameters. I disagree with this. Overloading is not regarded as a good practice. Besides, you can do this now. Just check the parameters that are passed in and branch the code

Edit Format

The Grid should support an edit format where we can place fields not just below each other but anywhere we want kind of like the old "set format to " and also the pageup pagedown keys would go to the next/previous records etc. You can do this now. Put your controls in a container class, then put the container in the grid

BeforeRowColChange Event

The BeforeRowColChange Event should have a new parameter which would tell us what the new row/record is going to be. This is already in VFP7 e.g. If in this event the NewRow Parameter is 10 we would know that the user wants to go to Row/Record 10 and we could allow or not allow this depending on our logic. If NewRow is 0 then we know that there is no such row or that the user clicked on something other that a cell in the grid.

The SQL property should be ReadWrite

DBGetProp("v_customer","View","SQL") and CursorGetProp("SQL") both return the SQL Statement but is ReadOnly. This property should be ReadWrite which would then allow us to change the where clause or event the select statement at runtime.

Insert SQL to use NAME object

I'd like to see INSERT INTO dbfName FROM NAME objectName [BLANK] So we can: SELECT MyTable SCATTER MEMO TO NAME oRec BLANK && already implemented in VFP6 * do stuff to create a new record INSERT INTO MyTable FROM NAME oRec

Creation of Poolable COM Objects

Sure, for web apps you want to open your data, do some action and get out, just like the sample apps. What about LAN and WAN based apps? I'd like to start up 10 instances, each one firing some initialization code only once, reading from the registry, opening say 100 tables, etc... then have all 200 clients run against the 10 instances in the pool. Right now, each client gets their own instance so we have 200 running instead of 10 and (taking up a lot more resources than we need) and most of them are sitting idle. This also gets around the problem of 'too many files open' (which crashes the app un-gracefully), forcing us to run the package on the file server or use SQL server for the back end. Currently only C++ can build components that can be pooled.

Add a Frame Control. Similar to the UI of Outlook - the ability to add sizeable frames or areas of the form.

Thinking of features which we can incorporate from software project management Like even for design specifications if we can have a wizard sections like it would be really helpful for us ANd folks if you can think of more please put it down. i am thinking of lot which can make a visual foxpro developer start off framing system requirements from user requirements and then automate the documents like functional , non functional inverse requirements etc and then planning also can be automated in visual foxpro itself as a wizard

IntelliSense and Auto-List Members, like Visual Basic 5 and above This is already in VFP7

Add to IntelliSense the ability to list properties and methods of non visual classes as you are coding the class. Also if in code you instantiate a User Defined Class, the intellisense for that object should be available as well. Added 10/18/01 DCC

Make Visual FoxPro 7 more Rapid Application friendly, like Visual Basic 5 or 6. Huh? I don't get this. VFP is MORE RAD friendly than VB

Index on ... to ...;
on ... to ...;
on ... to ...

Improve Coverage Profiler

Improve coverage profiler which can produce test cases also all testing strategies if possible VFP7 will ship with a test harness that will do this for you

A tighter control of the DBF and Memo fields to prevent corruption. This is more an issue of application design than anything else

An Alignment property for the container and control
(as delphi)

In-line functions
Like the one in C++. Would help to save some calling overhead.

Two words: No .esl
Ability to create executables and not having to ship a 100 Kb program with 7+ MB worth of libraries.

This won't gain you anything and in fact, will take away from the language

Make it so I do not have to use the ? with MODI COMM and MODI FILE. Huh? I don't get this one. You don't have to use the ? today

ATTACHABLE STATUS BAR TO TOP LEVEL FORM

Also, Status Bar can be manipulated - adding controls to it - so as not to rely on ActiveX status bar which behaves not good enough.

Getting filenames as they really are

We should have facility to retrieve a filename or directory name with distinction of capitals, for example getdir()- Benno Nolthenius
Since the operating system's file name recognition is not case-sensitive, what's the value? - Ed Rauh I had a project that involved a data driven file renaming scheme and the client wanted mixed-case file names so they are more readable in Windows Explorer. Since VFP had no option to respect mixed-case names that application did not meet their specifications. So I agree that in most cases this is unnecessary but it would be useful. I know Visual dBase does support this option and the client was considering having me re-write the application. - Simon White Jul/2001

Have an ability to select multiple files from different directories

MS Common Dialog Control allows to select only from one directory - Nadya Nosonovsky

Images in Combo Boxes, List Box

We should have facility to add Images to comboboxes, listboxes - Hemant Ganpule You can already add images to a listbox. - Craig Berntson

I agree this is desirable. My own workaround (which I admit is not ideal) is to use a single-level Microsoft Treeview instead of a listbox. This lets you display images either in addition to, or instead of, the normal text. - MIKE LEWIS. You can do this today AND with a different image for each item in the list

Conferences & events

VFP Exams released when product is released

Please release the VFP exams at the same time a new VFP version is released.

Currently the VFP MCP exams are released so far behind the product that a new version of VFP is almost to market. -EvanDelay

Classes - VCX

Labels with Control Class

When dropping a custom control class on a form from a table in the DE, an accompanying label is not added. Whenever, you drop other VFP classes onto a form, a label is also added with the caption specified by that property in the table. -- Mark McCasland

Create headers and columns visually

We should be able to create all objects visually, namely grid Header and grid Column objects.

This will make them easier to design, but more importantly, allow them to be saved and stored in a Visual Class Library (VCX).
There is a way to save headers in a VCX. You still can't modify them in the Class Designer, but it does give the ability to visually modify instances of these objects. - Trey Walpole The ability to subclass pages from a pageframe and option buttons from the option group would be very useful. Nadya Nosonovsky
?BR> Container and Page within PageFrame should be scrollable. NN. Look at the Session class. Particularly in VFP7

Forms & Form designer

WriteMethod() to work at runtime

11/09/1999-Since we can compile at run-time now, why can't we write a method? Also, it only populates existing methods, it should be able to add a method too. MHelland


You can add a method using the new third logical parameter in VFP7. Still design-time only, though. -- John Koziol.

A Controls property for DataEnvironments

20/08/1999 MHelland


Objects collection is now in DataEnvironments as of VFP7. Good enough? - John Koziol

Ability to easily reorder classes in form control toolbar

There should be the ability to reorder the classes shown in the form controls toolbar. Currently, the order displayed is not alphabetic nor is it by base class. This would be especially useful for custom VCXs.

Currently this can only be accomplished by opening the VCX as a table and reordering it.

InteractiveChange and ProgrammaticChange container properties

With the parameter or what was changed (contained object, property). This would greatly simplify some frameworks and there is precedence (KeyPress) for having this sort of thing.

pageframe with vertical tabs

Allow pageframes to be more flexible and include things like tabs along the side and bottom edges instead of only at the top.
Add a method to change pageframe pages without having to go to the property sheet. This applies to "tabless" pages.

pageframe with visible property for pages

Allow pages to be hidden (if the page is hidden at startup, then delay instantiation of controls until such time as the page becomes visible) - Aaron Young

TABLEUPDATE to handle reserved words in SQL Server, etc.

TABLEUPDATE command should be able to update tables / fields sharing the same names as reserved SQL Server keywords, i.e. TABLEUDPATE will not currently allow the updating of a SQL Server table called "ORDER" - Aaron Young

Reports & Report designer

Container control in REPORTS

Handle report groups the same way as child grids

For each report group we should be able to specify a Linkmaster, Childalias, Childorder, Relationalexpr the way we can for childgrids on a form. When running the report, the report object should then skip thru the records in Linkmaster and select the Childalias and skip thru its' childrecords for each report group.

Sys(1037)

Would like to have sys(1037) return value to determind if the user selected 'OK' or 'Cancel' in the printer dialog.

Acrobat Support

It would be great if we could print a PDF file in the report writer.

Object Oriented Report Builder

I'd just like to be able to create classes that I can use in my reports, such as header and footer classes, formulas, logos, etc. and have property and method control over them.

ACCESS Type Reports

It would be good if FoxPro's Report Writer could function the same way as the ACCESS Report Writer. You know, being able to print what's on a form as a report, being able to print Checkboxes, etc. Many of my Customers need to be able to Email reports as Word Documents - 04/27/2000 - Gavin Reid #8883.

Save as RTF

I'd like to save a report in a RTF file to send it by e-mail.

Save as HTML

I'd like to save a report in HTML format to be able to publish it on a web site.

Use of the tab key

I miss the tab key moving from object to object in the report designer. It would be really handy in reports where you have overlayed "print-when" objects, since it would allow you to pick a specific object.

Dynamic Colors

Possiblity to change the color of a field depending on data. This would eliminate field duplicates in different colors
with "print when clause".

Use DBC Field Properties...

... when dropping fields onto a report. I would like to see my field captions used instead of the raw field names. I would also like to see this feature in the Quick Report option and when dragging fields from the DE to the report.

Reindex full...

... The command REINDEX could have a keyword that let this command to entirely rebuind the indexes, by first deleting the indexes tags (like DELETE TAG ALL) and after rebuild the indexes with INDEX command. This behavior will avoid the index bloat problem and we can DELETE TAG ALL and INDEX ON without destruct the .DBC relations Ex: REINDEX [RECREATE] .

A FUNCTION TO PUT THE FILTER FIELD IN THE INDEXES!

The ability to create databases programatically would be complete, the fox team knows, after all they did te GENDBC.PRG, and they realize that. That should be fixed in VFP 7, and in the primary keys, make a way so the key IGNORES the deleted records!!, I spent weeks figuring out a way to work around the problema generated by those bugs.

Move COPIES=X from the Expr field...

...to the REPORT command as an optional clause. Only available if the TO PRINTER clause is used. Actually, leave it in the Expr field but add it as an option to the REPORT command which would over-ride what is in the Expr field. report form myreport to printer copies=2

Supress "Printing.." Window

9/17/99 Add a clause to the REPORT FORM command to be able to supress the "Printing.." window. As is the REPORT FORM command cannot be used in unattended COM exe's.--JCFlores

Sub-report

Add the possibility of adding a sub-report inside a report. -- Sylvain Larin

Supress "Compiling.." Window

1/6/00 Add a clause to the COMPILE command to suppress the "Compiling.." message. This would allow code that is stored in a memo or programmatically generated to be compiled on the fly, without bothering the user with the process. Most compiles are nearly instantaneous or of such short duration as to not need to be informed of the progress. Fred Taylor

Better Printer Selection Control

03/31/00 Give us better control over printer selection instead of having to directly manipulate the first line of the FRX to control it.

Do not put Printer Specific Infomation in the Reports!!

Its a nightmare to deal with printer specific information in the reports. Unless you're developing for one client-specific network, you can never know what printers they're are going to have, the Report should always be printer independant. - Ernesto Padilla

Chained Reports

05/17/00 Give us the ability to chain several reports together. For example, I want to print five separate reports, back to back, with one call and have things like page numbers, double-sided printing, etc. all flow together as if the reports were really one report. -Cathy Pountney

Know the total number of pages in a report

07/06/00 Give us the ability to know the number of pages of a report withouth we have to "print" it twice. -Sergio Antonio.

Development Environment

Two way tools

form/class/report/view designers generate code programmer can modify with a text editor (like Borland products)

Create a personalised pem-sheet like the menus in Office 2000

With this personalised pem-sheet you will only see the pem's you need to see/have accessed lately

Right now, we can only see all or non-default one's. But sometimes I need to see/access some pem's but not all of them are non-default. - Frank Camp

Add support for mixed-case names throughout the IDE

I would like to see support for mixed-case (camel case) names throughout the VFP IDE. Currently, camel case is respected in the code editor but that's about it. Some other places where this would increase readability are:

  • the project manager - all prgs, forms, etc. are shown in lower-case even if these files are actually stored with mixed-case names
  • the table designer - forces lower-case for field names
  • the table designer - allows you to enter mixed-case index expressions, but then reduces them to lower-case
  • the property sheet - (form designer & class designer) reduces custom property and method names to lower-case. It's nice that these are all grouped together at the end of the list, but how about allowing mixed-case, keeping them at the end of the list, and using a different color to visually distinguish them from the standard PEM's?
  • The class browser - shows all class, object, property, and method names in lower-case.
  • etc.

I think readability would be improved and therefore developer productivity would be enhanced if mixed-case was supported throughout the IDE. - Rick Borup

Keep mixed case names entered for properties/methods

Currently these names are listed as lower case in the properties window when added regardless of how they were entered. Would be nice to have the original mixed case names used when a code window is beautified. - Charlie Blakey

I'd like to be able to share code windows in 2 panes...

Sometimes, when coding a long program or method(even if I know that I should break my code in some shorter methods), I'd like to have the ability to share the code window in 2 panes, one above the other: thus, I could edit the top of my code (declaration of parameters, variables, and so on) and work in the same time in the middle or at the bottom of the same procedure. This could be like the panes we can fix in an Excel sheet.
Philippe RIONDEL - Apr-24th, 2000

Project manager

Multi-Select Add dialog

When you hit "ADD" in the Project Manager, you should be able to:

a) Select mulitple files using Windows Explorer sytle Shift or Ctrl + click from a GETFILE() dialog

or

b) Be able to select all the files of a certain type; ie, all *.BMP files in the current directory

Progresive file seek

Permit finding a file by typing its first few letters. Now only first letter counts. Also a tab where all files are at same level, for the same purpose.

File Resolution Log from Builder

Have the option for the Builder to provide a log showing the absolute path of each source file in the build. (It would be useful to be able to sort this list by filename, filetype and fullpath). In the past I have been especially frustrated by bugs due to the builder fetching files (especially .h files) from a place I had not expected. Even when I suspect this has occured, it is sometimes difficult to track down the reason for the erroneous path resolution. Having a list would really help. ...David Collins

Coding, syntax & commands

Modify CompObj so that comparing two identical objects where one or more properties have NULL values results in .T. rather than .F.

Currently, if you compare two objects and the properties are identical, but one or more values are NULL, you get a .f. result. This might be fine academically ('NULL values cannot be compared'), but it makes compObj practically useless if used via a SCATTER NAME... from, say, an SQL query that returns NULLs in some of the fields. Ideally, do this via an extra parameter to the compobj function so that older code is not broken.

Have a datasession parameter in addition to the workarea parameter for VFP Data-commands

Lots of VFP commands let you specify the workarea for the given command to use. It would be nice to have it for Datasessions also. For instance, I had to debug why some record became dirty, so I used GETFLDSTATE(-1,ALIAS()) in the watch window, but when the datasession was changed, the expression could not be evaluated. With the additional Datasession parameter, this would no longer be the problem.
If this is not possible, would it be possible to link a watch expression to a certain datasession (and/or workarea) so the scenary above would work. - Frank Camp

Can the AVCXClasses command look for classes within it's .exe when the command is used in a runtime environment

Right now, I have to ship the VCX outside of the .EXE for the AVCXClasses command to work. - Frank Camp

Include Network in GetFile() and GetDir()

I want to be able to follow a UNC path to select a file or directory. Not just mapped drive letters.
You can now - there are examples of how to do this in the FAQ here using the Windows Shell Object's BrowseForFolder methods, as well as Bela Bodec's ActiveX controls.

Code Testing with the Menu Execute

I am currently using VFP 6.

Enhance the Execute option of the right-click popup menu.

When I block a section of code, right-click, then click the Execute option, the code fails if it contains a Constant. I would like part of the compile to use the file specified in the _Include system variable and/or the file specified in the form or class Include file.

The only way this does not fail is if I explicitly add a #Include C:\VisualStudio\VFP98\FoxPro.h command line at the beginning of the blocked code.

Thanks.

Extended COPY TO ... functionality

Wouldn't it be great if the COPY TO command could be extended to include expressions, fields in other lined tables, and possibly even field formatting options like BROWSE?
If you have two tables, tab1 and tab2 linked on a common field via SET RELA TO, it would be so useful to be able to do a

COPY TO myfile FIELDS tab1.cust_id, myexpr = 'CUSTOMER:'+tab1.cust_name, tab2.last_order TYPE XL5

Or am I missing something?
Like maybe SQL Select statements, which can do exactly this?

Nope, no good if you have a file of 6 million records, for performance reasons.
You just want to export them to a CSV file, for example, and not pay the penalty of a SQL Select - Neil

Add XML to COPY TO
COPY TO MYFILE.XML FIELDS.... FOR... TYPE XML.
And conditionally save a data definition.
Same thing for append from.

Compound Search Path Prefix

Generalize the PATH concept for greater flexibility and control over file resolution when the compiler (interpreter?) or builder needs to find a file. Would look something like the following:

mypath= [c:/mylocaldir;f:/commonsources;e:/commonsourcesalt]
DO mypath:myprog.prg
mydata=[c:/localtables;f:/testtables;mypath] ..note path var nesting
use mydata:mytable.dbf
...David Collins

Visual FoxPro in general

Menu builder

I hope we will one day get a decent object-oriented menu builder, preferably like the one which Borland has with Delphi. This lets you easily code menu actions as part of the event model, and to grey out menu items by setting a property. But any decent menu-building tool would be better than what we have now. - MIKE LEWIS

The ability to create 'modal'-menu items

Right now, when you are in a modal form, almost every menu item is disabled, only items that can be used within the form are enabled, like CUT, COPY and PASTE. Those are VFP commands (bars) but a developer can create menu-items that are from the same category, like NEW (add record) or menu-items that should never be disabled like Exit application. It would be nice if we have an option to create menu items that are still enabled when a modal form is active. Also, some menu-items do the same as toolbars-button so it would be nice that menu-items are disabled/enabled when the corresponding toolbar-buttons are disabled/enabled and vice versa. - Frank Camp

builder builder

Provide an easy to use designer to create builders.

Array as recordsource for grids

Grids should be able to use arrays as their "recordsource".
-This would make a lot of grid operations awkward- and require a lot of core grid functionality to change. I migh suggest that if this is ever implemented, that it is done in a different grid control, but I honestly don't see the need. -EM
--- Addition by JimN EM... Why do you jump to that conclusion??? The VFP Team ought to be smart enough to either be able to integrate the requested option into the existing without making existing ones fail *or* come up with a new control if they cannot. --- End of addition by JimN

ability to run a VFP exe without runtime dlls or with dlls in remote directory

Allow a VFP EXE to run from a server volume without having to install the VFP runtime files on the workstation. Two ways of doing this:

- enable VFP to compile into a stand-alone exe
- officially support having the runtime DLLs on the server volume with the EXE (or better yet have the ability to tell the exe where the runtime files are stored)
These two requests just ain't gonna happen. There isn't such a thing as a "stand alone" EXE. There are far too many supporting DLLs that must be installed on the user's computer. This is the case with not only VFP but all other Windows development tools. - Craig Berntson

display service pack number on main VFP splash screen

Please display the service pack number on the main VFP splash screen as is done with VB6. This makes it easy to tell if a service pack has been applied.

Native gridbar in grids

Grids should have the possibility to have a gridbar which highlight the active row natively (in a simular way a listbox does) even if the grid loses the focus. Though i know it can be accomplished by using the dynamicbackcolor property of the columns, this is clumsy, a performance killer, and only highligths the row for the portion where columns exists (The empty area is not highlighted).

Better array passing to COM objects

Currently, VFP can not pass arrays of VT_UI1's by reference. We can pass VT_ARRAY|VT_UI1 by value but not by reference. Examples:

cStr = CreateBinary(replicate('X',100))
oComObj.Test(cStr) && by value
oComObj.Test(@cStr) && by value
comarray(x,11)
oComObj.Test(cStr) && Still by value
oComObj.Test(@cStr) && STILL by value

This keep us from calling COM object methods that want to pass data back as an array on VT_UI1, a MS suggested method of passing data streams across the COM boundry.

Summary rows in grids

Grids, like reports, should be capable of displaying summary bands/rows.

Also, grids should optionally have footers (same as headers, but placed at the bottom of the grid) for each column. Here one could display summary info etc.

Expandable/collapsable grids

Grids should be able to operate directly on a tree-structured data set, i.e. operate the same way as a treeview control, only data-bound.

Run a form in the Trace Window

I would like the ability to open and run a form in the trace window.
You can do this now. OPen the debugger and click the "play" button, and select a scx file. -EM

Private DataSession default settings

I really think they should have a DEFAULT SETTINGs that you can define as to how you want your Private DataSessions to inherit. Maybe: SET DELETED OFF PRIVATE This would remain separate from the SET DELETED OFF that affects the Default (shared) DataSession. This should be available for all settings that are scoped to the DataSession. - Fred Taylor

Client/server

Stored Procedures

I would like VFP to have a direct hook into SQL Server like VP. And I would like to edit and debug stored procedures through a VFP interface. Also, I would like to see the upsize wizard give more options in renaming remote views before redirecting local views. I'd like to see the upsize wizard upsize stored procedures as well.

Databases,Tables, Views, Indexing and SQL syntax

make cursors object-orriented

So that they can be passed as an object to anywhere you want. For example: from one dll to an other dll. Like an ADO recordset. The same for connections and so on. Or make VFP-objects work properly with ADO without convertion to cursors.

time data type

Add a "time" data type for variables and database fields. Using the "datetime" type is akward when the date portion is not used.

I vote against this one as a time without a date is meaningless. If one wants to record 12:00pm they can use a character field. For example which time is earlier 10:00am or 03:00pm? Well, 3:00pm on the day before is earlier than 10:00am on the day after. TTOT() will give you the time portion of a datatime field and HOUR(), MINUTE() and SEC() will give you the hours , minute, and seconds respectively.

Thanks, I would have said the same thing. But there is no TTOT(), maybe TTOC(datetime(), 2)? - MHelland

Autonumber type

I know you can make these with the default value calling a stored procedure, but it's a pain and doesn't work with views. It would be nice to have a built in type. - Michelle Cox

I would love to see this happen. - R Alcano

Parameterize the ORDER BY for SQL Views

Request the ability to have flexible ordering of SQL views by "parameterizing" the ORDER BY clause.

ex:

create sql view myview as select * from mytable ORDER BY ?lcOrder

create better view designer

The current view designer does not allow complex views to be created or edited. It also does not allow more than 2 tables in a view.

Stored Procedure based views

To create SP based views (non updatable, of course) CREATE SQL VIEW myview AS sp_mySP(Par1,Par2) Victor Chigne

OLEDB views

Victor Chigne

Private DataSession default settings

I really think they should have a DEFAULT SETTINGs that you can define as to how you want your Private DataSessions to inherit. Maybe: SET DELETED OFF PRIVATE This would remain separate from the SET DELETED OFF that affects the Default (shared) DataSession. This should be available for all settings that are scoped to the DataSession. Fred Taylor

SQL to QBE

I'd like to be able to write a SQL statement at the 'view SQL' window and have it translated into the QBE wizard just like Access is able to do it

I'll second this. That's one of the nicest features of Access. PRobinson

Tableview property

Tables should have a new property (let's call it Tableview) which can be set to the following values: 1 - Normal mode 2 - Ignore deleted records 3 - Ignore deleted records and recycle The normal mode indicates that VFP handles the table in the regular way. The ignore deleted records mode, indicates that VFP ignores the deleted records totally under any circumstances (so even when set deleted = off). The main advantage of this is that indexes are automaticly scoped to the non-deleted records and are rushmore optimizable. This will reduce the size of indexfiles which also have an performance advantage. Primary indexes won't need a FOR DELETED() filter because the index is already scoped to non-deleted records. The only way to view the deleted records is to change this 'Tableview' property. The ignore deleted records and recycle mode, will ignore deleted records in the same way as the former mode, but will also recycle deleted records. This means that if an records is added (With INSERT, APPEND BLANK, APPEND FROM, etc.) the system first will look for (invisible physical) deleted records in the tables and recycle them. If they're not available they will be appended at the end of the file. This option will greatly reduce the requirement of packing highly dynamical tables. To enhance performance of seeking deleted records, this option should require some index to 'seek' deleted records (maybe an internal thus invisible INDEX ON .T. FOR !DELETED()). This tableview property is set at the table designer and cannot be set at runtime. There should be no way to change this setting at runtime other than the ALTER TABLE command or DBSETPROP with exclusive acces (because indexes might require a rebuild)

SET RECYCLE ON

A way to transparently recycle deleted records in a table so there is no need to pack the table.

SET SQLFILTER ON/OFF

To have control over filtered cursors returned by a SQL select command, a SET SQLFILTER ON/OFF could toggle if you want the possibility of SQL returning filtered resultsets or not. If the default setting will be OFF it will be saving much debugging time searching why the program crashed because of filtered cursors. With the ON setting the SQL commands will behave as in earlier versions.

Make PACK command acceptable to use

The PACK command works in such a way that there is a potential for complete loss of data. It should be changed to safe-gaurd this outcome.

An Object Oriented Database

Updating fields also from a deleted record

If you have a buffered 5 view and do the following

REPLACE ModiDateTime WITH DATETIME()
DELETE
llret = TABLEUPDATE(...

In the view you can see the changes but not in the table, cause when a record is deleted (even after the replace), these fields are not still updated. PabloRoca

ActiveX controls in VFP

The ability to create ActiveX components with VFP.

Call back capability

The ability to provide pointers to callback functions. This would allow VFP to better use the API.

The ability to search for a var in the debugger so that you enter an object or var name in a text box and all objects/vars are searched.

The ability to disable VFP's behavior of using field captions in a BROWSE instead of the field names. EM

It would be nice if the grid event BEFOREROWCOLCHANGE actually fired before the row and column changes. This would make it alot easier to check for data changes and could provide a one-stop location for validation code. Returning a False would prevent the cell focus from changing.

***MHelland - instead of a RETURN .F., try a NODEFAULT. Also a name would be nice for contact reasons***

MemVar Declarations

1) a STATIC declaration which would be similar to the C construct which allows a variable's value to persist between execution iterations, but allow the variable to be scoped as well. Such a declaration might also allow scoping so that one could have a LOCAL STATIC or a PRIVATE STATIC variable (obviously a PUBLIC STATIC wouldn't make much sense). STATIC by itself could default to either (as you choose).

2) The ability to assign an initial value in a declaration. e.g LOCAL lnCounter = 0 PRIVATE STATIC lcOutString = ""

3) An OPTION EXPLICIT, similar to VB. I think this would be invaluable in aiding debugging and helping to create more stable applications. Making it an option wouold allow compatibility with existing code bases as well as enforcing shop standards where pre-declaration is required.

EMPTY PARAMETERS

VFP now initializes empty parameters to .F. This makes checking for non-passed parameters a little more difficult than it could be. Offering something like:
SET NULLPARM TO
	-or-
SET EMPTYPARM TO
Would allow the developer to define the value passed in such a case. One could use:
SET NULLPARM TO .NULL.
	-or-
SET EMPTYPARM TO CHR(255)
Then in code one could say:
SET EMPTYPARM TO .NULL.

? Hello( .T., "Keith")

REPLACE Greeting WITH Hello( .T.,,{06/01/1999})

THIS.txtSalutation.Value = Hello( "Keith")

FUNCTION World( vlPrintName, vcName, vdToday)

IF ISNULL( vcName) OR VARTYPE( vcName) <> "C"
	vcName = "whatever your name is"
ENDIF

IF ISNULL( vlPrintName) OR VARTYPE( vlPrintName) <> "L"
	vlPrintName = .F.
ENDIF

IF ISNULL( vdToday) OR VarType( vdDate) <> "D"
	llDateEntered = .T.
	vdToday = DATE()
ELSE
	llDateEntered = .F.
ENDIF
	
lcRetVal = "Hello "
IF vlPrintName
	lcRetVal = lcRetVal + ", " + vcPrintName + "."
ENDIF

IF llDateEntered
	lcRetVal = lcRetVal + " The date you entered was " ;
		+ DTOS( vdToday)
ENDIF

RETURN lcRetVal

102. Order the objects from ASELOBJ in the order that the objects were selected.

103. Allow viewing of defined constant values in the debugger. Ability to change the SQL property of a View on the fly Cursors that can be passed through COM

Error Handling

Make "Error reading file" trapable, and tell me which file VFP is trying to read! - Bill Armbrecht

Avoid 255 char limitation in macro commands

NN

Allow standard controls to be resizable in run-time

Example: resizable textbox or editbox NN

Add Input Mask into editbox (like number of string and Input Mask

NN

VFP Builders should be resizable

NN

Add property Page.visible

NN

Error Method

A DODEFAULT() should invoke the same error handler that would come if there was no code in the Error Method. - Peter de Valença

Dodefault() behaviour when there is no parent

When you issue a DODEFAULT() and there is no parentclass (you have created it in this class) it errors out because it can't find the parentclass method. It would be nice that VFP would just ignore the command. - Frank Camp

DBGETPROP()

A simple way to find out which 'named connection' is currently in use for a view/database. - Peter de Valença

Allow defining indexes for views that get saved in the .dbc and recreated whenever the view is opened.

add the ! character as a delimiter for control+arrow key when you are moving accross a line in modi comm. Consider _ character as well, since most people use it to seperate "words" of a variable.

1] Grid.Print method. As a default it would print the visible portion of the grid. The printed grid would include all the formating - colors, grid lines, headers, etc. Allow developer to specify: a) Number of rows and columns to print, even if not currently visible b) Size to fit X pages wide and X pages wide (similar to Excel) c) Set orientation - Portrait or Landscape 2] Form.NoActivity method. If no user activity for a specified period of time, run this code. This would allow the developer to shut down an application after a period of inactivity. This would be similar to the old 'Read Timeout' from FPD 2.6. Grid.Print and Form.NoActivity submitted by Denis Schuette, McElhaney Cattle Co. A SET Command ?SET CASE I would not have to keep typing UPPER if there were a command to set case sensitivity on or off. If this were applied to tables regarding selects, it would also make VFP compatible with SQL Server. Keith J. Make part of the EXE creation where it can only be ran one time, one instance, customer load my programs several times and don't know it. Mike Tallent The IN clause Added to SET FILTER, LOCATE and any other commands which require table selection. Keith J. Base Classes. All to have the same basic methods such as Lost Focus and Refresh. Keith J.

Marketing

Well, we can wish can't we?

Yes, they tried to prove that they could market VFP with a full page ad in VB Journal.

OOP menus and reports

1) Extended Copy To functionality: Copy to labelled, tab-delimited ASCII, unquoted, with field names in the first row. This is very similar to the current TYPE CSV option except for the delimiters are tabs rather than commas. It would be nice to have the option to turn field-name labels on or off, and quotes on or off. Also, fix the typo in the VFP help file for the COPY TO command that says CVS rather than CSV.

2) For the report writer, adding export options to Excel, Word, and HTML would be nice. The FoxPro Foundation Classes already include a class for exporting HTML (FRX2HTML) but the output is missing much of the formatting from the report form. Admittedly, if Microsoft were to do this and do it well, it might cut into territory (and opportunities) for third-party products.

An event that is triggered on the attempt to open a table before the table is actually opened. If it fails then the table is not opened. If it succeeds the table is opened.

Make the Debugger's Cancel Button more kind:

The Click event of the Debugger's Cancel button needs a safety prompt for situations when it is clicked accidentally.

As a result of the Cancel button being positioned right next to the Step button, it is easy to miss the Step button and accidentally click Cancel. When this happens, there is no warning. Your running program just cancels. This can result in a major productivity losses when you've been tracing code for any length of time! Please, oh please put a prompt for "Cancel Running Program?" on the click event of the Cancel button.

Comment Block

Ability to mark a comment block such as the /* ... */ syntax that exists in other languages.

Reindex flock()ed files

If we could reindex files that were flock() rather than used exclusively, then we could run reindexes on files used in systems that never have to be taken down (like web servers or 3 tier systems). Surely it would be possible for VFP to reindex into a new file while offering views of the old file and then copy the file across, thereby offering view access to a file at all times?

Default behavior in a child object

The default behaviour in a child object should be to extend its parents code. e.g While writing code in a inherited forms queryunload method if we want to execute its parents queryunload we have to dodefault() and then write the code for the child. if we forget dodefault() then the parents code won't fire. To solve this problem there should be an option to either extend or override the parents code. the default being extend. This would allow us to write code in the child method (without the dodefautl()) and the parents code would execute first and then the code in the child.

.print() method Please add a .print method to containers such as forms, grids, etc. Allow a few interesting parameters to be passed to it, such as scaling, page header, page footer, printer name, etc. -Todd Sherman

More Grid Header display properties I would love to be able to really change the look of thea grid, especially the header, so that it can look like anything we want. I had a project where we had to use a grid to display a report. It had to look like Quicken. Excel would have been the answer, but it was too slow. So we used the grid, well it doesn't look like Quicken, no matter what you change. I like everyone's ideas of grouping in grids, and in VFP7 they are adding multiline headers, which is a step in a good direction. -Mark Spritzler

Don't change the report generator if you don't want to
But do change the report form command so that noeject works. - Todd Sherman

Header.WordWrap, is more necesary. Enrique Albán.

I think this is already in version 7...

Added 06/22/00 by Michelle Cox
I'd like to have some kind of hook into the debugger so that every time a line is executed, it would go run a custom program. The trick is that it would have to run in such a way as to have no effect on the currently running program. Perhaps run in a different instance of VFP?

Added 07/30.00 by Dave Purnell. The ability to run queries against a FoxPro database ala Client/server mode, but not necessarily take away the file-sharing architecture.

Added 07/04.00 by Rinse Lemstra.

Make the documentation-wizzard working. (now the 'called' and 'called by' sections are empty.

Field Encryption

Would like to be able to encrypt/decrypt a field's values on the fly. Therefore, when a user saves a record, the target field is encrypted in the database. When the field is presented on a form, the value is decrypted. This should be a feature of the database at design time.

Kick Users out of System

This could be a new SET command.ie SET GLOBALTIMER. Every specified interval this command will check if an expression is true. If it is then it will run a specified program to kick all the users out.

Added by Mark Young 6/8/00

Hide Bizobjs whilst designing form

Button when designing forms that will hide the non visible objects (sic), on a form whilst designing the form. The button will always default to showing all non visible/ bizobjs everytime the form is opened

Added by Mark Young 6/8/00

Add support for Like Skeleton to the Local command
ie. LOCAL ALL LIKE l* types any variables starting with l as type local.
Added by Brien R. Givens 10/8/00

Add cKeyLabel parameter to KeyPress event
ie. If Shift+F1 is pressed, "Shift+F1" would be passed to the event.
Reasoning: currently, not all keystrokes can be captured and some are duplicated.
Added by Brien R. Givens 15/08/00

Allow user-defined picture to replace downarrow on combobox
ie. Replace downarrow with calendar image. Reasoning: Click event of combobox can be manipulated to launch a calendar form, calculator form, etc. Could be very slick!
Also: Control should either autosize to image or have an additional parameter to specify the width of the click area
Added by Brien R. Givens 15/08/00

Ability to subclass the Header class
Great for multilingual applications especcially if coupled with a refresh method.

Refresh method for LABEL class
For the same reason also great for multilingual applications

Grid should respect subclassing
If a subclassed grid contains a subclassed textbox, additional columns should also contain the subclassed, rather than the standard texbox. Alternatively I´d prefer empty columns, and just add whatever I want myself.
Added by Peter Pirker 16/08/00

Add new INTO destinations for SELECT
SELECT ... INTO XML
SELECT ... INTO ADORECORDSET -- Trey Walpole 2000.08.21

Hyperlink from the use of a method/function or to that method/function or class
e.g. oObject.MyMethod()

Allow buttons to be added to the form title bar
Could use this functionality to add new, edit, save, revert, delete... buttons to the title bar. This would allow creation of a standard data form where these buttons would occupy no vertical space on the form. Could be very slick!
Added by Brien R. Givens 15/08/00

The Container object should have scrollbar propety

Autoscrollable windows!
VPF don't scroll automatically if focus is on a field that is in an non-visible area of window, even if are present scrollbars. I wish that windows scrolls automatically when user navigate on fields.

Interface Issue. Added By Sanjay Patel on 18-10-2000
VFP's interface with windows is still murky. I wish that MS should develop better interfaces in VFP for Windows OS and should provide extensive on-line documentation of its usage. VFP Technology newsletter by MS wouldnt be a bad idea.

Modify AT commands to accept a start search position. Added 12-1-00 by John Sullivan

It would be great to be able to specify a start search postion within the "string to be searched". That would allow you to resume searches from the last position + 1 of the last found match. -- I agree with that because searches in the long string quite slow for 100's occurrence of substring. I guess _MLINE system variable use here will be very useful and will speed up many algorithms a lot. --Vlad Grynchyshyn


?? Maybe AT(WhatToLookFor,SUBSTR("STRING",nWhereToStart,LEN(STRING)))
-- 2/2/2001 Arto Toikka


A better support from Microsoft, they should talk about VFP, that it's alive and it's a great tool.



THUMBS UP TO THAT ONE
-- 2/2/2001 Arto Toikka

Allow to change ConnectHandle property of cursor

It will be very useful for remote cursors returned by SQLExec and for remote views. When connection broken, no way to immediately reconnect to SQL Server and use new connection handle for view or cursor. Need to open view or cursor again that, of course, hard to handle because buffered changes. Hope this significant omission will be reviewed if not in VFP7, than in the future versions of VFP. --Vlad Grynchyshyn

Builti n workaround of the big problem to pass callback function pointer to the API functions

It is very big problem and no way to do this from VFP by other way than create your own ActiveX control that will provide pointer to its function and call event of ActiveX control to put VFP code in it. It would be better when we will have ability to declare VFP procedure/function as static, so it will have static location in the memory and personal 'caller' code for each such function, that will be used for call-backs. It will be the best solution if it handle parameters of call-back functions properly. --Vlad Grynchyshyn

Provide the library of API declarations and constants

Many development tools have such thing as a separate module to declare all API functions and constants for them. Prepare and maintain such libraries (PRG with declarations and header file with constant definitions), so developers will not search a lot just to look what numeric value have that damn API constant we found in the MSDN help. --Vlad Grynchyshyn

Allow COPY TO and APPEND FROM commands to work with strings.

COPY TO and APPEND FROM commands should work with string in the memory. Yet I need to get encrypted DBF file into string, pass it to DLL function to decode and get result string, save string into the file and than use append from command. It will be much better if we will be able to omit saving string to file just for appending data from it. --Vlad Grynchyshyn

Ability to copy cursor into the string or file with long field names and work with such free tables

It would be very good feature when DBF will have new format with long field names. Specially for data exchange between COM objects. Yet I need to recreate structure from scratch, use a lot of data copying and workarounds to transfer cursor as DBF binary file between COM objects. --Vlad Grynchyshyn

LostFocus event of grid control

Fix problem with grid headers always on top

When you try to put some control over grid header (for example, sorting indicator), grid oftenly draw headers over that control despite control is highest object on Z-order. It requires a lot of effort to workaround this problem. Will be very god if grid headers will not be so egoistic and allow other controls over them. --Vlad Grynchyshyn

Grid reconstruction behavior

Grid oftenly reconstructs self when it is really not needed. For example, grid takes current alias as record source if record source is not defined. Requery or close of record source causes grid to lose all columns, than reconstructed again losing all custom functionality put into grid in design time. Indeed it is a problem that cause many beginners to ask questions about grid quite often. It would be very good if: 1. Grid will have a property to switch off automatic reconstruction and maintain its columns and controls at all cost despite changes of record source or its absense. Set this property to .T. to do not reconstruct grid by default. 2. Grid will have ability to define column, header and other classes that will be used in the automatic reconstruction of grid. --Vlad Grynchyshyn

Better handling of binary data

When we get image field from SQL Server as a General field, how we can save its content to the file on disk if these binary data are just afile? What is an opposite command to the APPEND GENERAL command? See my FAQ article about saving/reading binary data to/from SQL Server image field. I guess it is serious omission when I need to save SPT cursor into the file, change memo field to general and back just to workaround the problem. --Vlad Grynchyshyn

* 2/2/2001 ----------- Arto Toikka

Please comment.

Lots of wishes
FOXPRO

1) Object.ADDPROPERTY() but adding ASSIGN and ACCESS too.
2) Writemethod as run time too (look for item 1)).

3) MouseOverParent property, If you move mouse from the current object to
another there is no property/event to show where mouse is.
3b) Object.MouseOver event shows when mouse gets or looses focus on the
current object.

VFP 7 have additional parameter in MouseMove event that allows to track when mouse enters into object's area and leaves it. This already made. -- Vlad Grynchyshyn

4) MouseOverWindows gives WHND to the windows where mouse is over
(another window than current VFP)
4a) Event to 3) and 4)

VFP 7 already have property of form - HWND. As about other objects - they're never Windows window, they never have HWND handle. VFP have its own controls handling without HWND handles. This for making forms with large number of controls. -- Vlad Grynchyshyn

5) You have an editbox (general field) -> possibility to draw to that field

Hmm, VFP6 already have this. OLEBOUND control - double click on it and you can edit it. -- Vlad Grynchyshyn

6) Binary read/write to disk -> CD-RW

What you meant by this? VFP 6 have functions filetostr() and strtofile() - any data (include binary) in the file could be read/write by them -- Vlad Grynchyshyn

7) ReFox resistance
8) Transparent encrytption to data (using maybe encrypt API but
transparent i.e simultaneous)
9) Possibily to read/write/copy/delete/move/ files in system
directories f.ex. C:\WINNT\FONTS
10) for a file (f.ex. DBF) ANETUSEFILE(array,file) shows users
who has /lock/when locked etc.
file in question (lock, rlock etc.)
11) for an applcation ANETUSEAPP(array,application) shows users
who uses file in question

Database systems based on the file locking - quite obsolete approach. I doubt MS will enhance VFP towards this direction, but who knows. I remember these fine years of programming Paradox databases that contains such feature... -- Vlad Grynchyshyn

12) messagebox(cMessage,nIcon,cCaption,nTimeout,Computer/User)
show messagebox on the screen of defined computer and returns
value how the user in another computer has
answered (OK/CANCEL/YES/NO etc.).
12a) messagebox(cMessage,nIcon,cCaption,nTimeout,Computer/User,
cUserDefinedButtonCaption, nUserDefinedButtonLocation,
nUserDefinedButtonResponseKeyValue)
nIcon = 0 -> No button is shown
cUserDefinedButtonCaption As it says
nUserDefinedButtonLocation. Put user defined button to
first, second etc. nUserDefinedButtonResponseKeyValue AS it says
12b) NO lenght LIMITS FOR MESSAGEBOX(cMessage) cMessage property.
Scroll bars added if needed.
13) _VFP.BeforeOpenDBF event _VFP/Form/Application (?) event, and .DBFName and .DBFOpenType Property
event is launched always before USING, SELECTING DBF and property
.DBFName shows the name of DBF and property .DBFOpenType
shows what to do i.? USE, SELECT, SQL - SELECT (and open).
Now you can do easily Header Check/Fix

VFP7 have database container events. As about the way to track the aliases opened by SQL-SELECT command - it would be really good thing to track them by better way than numerious workarounds. -- Vlad Grynchyshyn

14) LastFocus property to all controls, what control had the last
focus before this control.
15) KEYBOARD SOMEKEY, Object Sends key to the specific object f.ex.
letter A etc. to specific object but not the object that has a control.
16) SETFOCUS (-1) set focus to previous control (not logically but
physically moved to object 1 to 10 maybe with mouse and
SETFOCUS(-1) in object 10 moves focus back to object 1

Whats wrond with the value returned from Valid event? return value -2 from valid event and focus moves 2 controls back... -- Vlad Grynchyshyn

17) PAGEFRAME.TABPOSITION now we have tabs on the top of pageframe
but with this property you can have tabs on right/left and bottom of
the pageframe too.
18) FontSize etc. properties also in design time in form (caption)
18a) Caption size and IconSize to a form?

These properties are common to all Windows applications and user can change them on the Windows level. Go to control panel/display/appearense, change soething -> this affects VFP forms also. See also FAQ for API functions here where I posted a sample of how to get properties of form caption font and put some text at right side of form caption. -- Vlad Grynchyshyn

19) REPALCE mThisValue INFOCUS replaces value to the field
where cursor/setfocus is
20) _VFP.CLOSE ... SAVE/NOSAVE/IGNORE CHANGES/EXIT EVEN IF THERE IS AN
ERRORE... method.
When you have to programmatically exit from APP
(f.ex. worksations when Server is PACKING/REINDEXING)
this method closes APP and saves all data to DBF.

I made this programmatically without a single problem. When correctly make application-wide classes, all works perfect. -- Vlad Grynchyshyn

21) SECURITY(cName, cUser, nParam)
change security of FILE/Director (cName) for an user cUser to nParam
(READ/WRITE/CHANGE/FULL etc.) (f.ex. Document handling)
22) Sendkey(HWND,KEY) keys is from the list of readkey.
23) Autoresize to all controls in the form.
24) DEGREE property to all controls turn the control.
0 is normal horizontal, 180 is upside down, 90 is vertical 37 is 37
degrees to top diagonal etc.
25) IF FontFollowDegree is .T. fonts are turned too.
If .f. Fonts are always vertical (normal)
26) ComboBox and ListBox doesnt fetch all records in once but behaves as grid or browse (performance)

COMMON WINDOWS
1) Right click on file in explorer and you can save long description of file
and explorer can show it too



MISC (INTERNET etc.)
1) You have a editbox (general field) -> possibility to draw to that field


and even more to come...

* 2/2/2001 ------------ Arto Toikka

* 2/2/2001 ------------ Arto Toikka
FOXPRO

1) ComboBox and ListBox doesn't fetch all records in once but behaves as
grid or browse (performance)

2) System generated unique handler Property to all controls. f.ex.
Form caption/name can change when running APP and maybe I want to
save form TOP, HEIGHT, LEFT or what ever property to windows registry.
When retrieving property; what to refer if caption/name is changed?


Arto Toikka


to be continued...

* 2/2/2001 ------------ Arto Toikka


Rudimentary text attributes in EditBox
Please add simple text modifications to the EditBox, such as being
able to Underline what you want instead of setting FontUnderline=.t.
and the entire contents of the EditBox is underlined.
Many thanx! John Mc Adam


Fix finally problems with editbox control

I reported a bug to MS, but repeat it here: EditBox in grid with AddLineFeeds property set to .T. works incorrectly with multiple lines entered. When you delete character in 2-nd line, it jumps 1 chracter back, when in third line - 2 character jmping etc. It is also not possible to use selstart/sellength when editbox in grid. --Vlad Grynchyshyn Get rid of the 2 gig table limit, at least make it 20 gigs or something like that if you're going to have a limit...

On Event
An ON EVENT and complimentary COMRETURNEVENT() would be nice!

LoadPicture()
Fix the loadpicture() or put the loadpicture code from VB in VFP!! and let use loadpicture in bitmaps in project


DEFINE CLASS ... ADD OBJECT
Allow to nest objects in DEFINE CLASS structure as deep as needed. Yet I cannot do somethign like following:

DEFINE CLASS MainClass as Container
  ADD OBJECT Level1NestignObject as Container

  ADD OBJECT LevelNestignObject.Leve2NestignObject as Container
...

ENDDEFINE
Yet error happens when compile at the line with second ADD OBJECT. Fix also Class Browser, so the source code produced for the VCX or SCX file by 'View Source' option will be completely usable.
--Vlad Grynchyshyn

SETFLDSTATE()
SETFLDSTATE() should work like in VFP 6. It does not work in VFP 7 for fields that are updated with the default value option of the field.
--Christian Czachary, christian@gammaresearch.com

New Class Property - option list
When you create a new property for a class, you should be allowed to enter a list of options, so that when the property is accessed in the Property manager, they appear on the drop down list. Even better, if there are only 2 options (say, .T. and .F.), double clicking should toggle between them.
It would make using classes throughout a large organization so much easier.
--Michael Galvin, mpgalvin@eircom.net

SYS() function that returns a UNC name.
It would be nice if there was a function that returned the UNC path. Granted, you can code the UNC name in, but if there were a way to progarmatically find it with out the user knowing, I think that it would be a great help.

--Winn Pauley, winn@graniteseed.com

Provide the ability to repair tables/indexes internally, if possible while the file is open in the shared mode
Have the functionality built in rather than having to rely on 3rd party products.

--Ashley Orton, ashleyorton@shaw.ca

Copyright © 1993-2008, Level Extreme Inc., All Rights Reserved
62 Rue Doucet, Petit-Rocher, New Brunswick, E8J 1L3
Telephone: 1-506-783-9007 Email: mfournier@levelextreme.com