You can't see her background in the photo -
it stops at her shoulders.
-= Dave
David F. Lorentzen Manager, HLA/Molecular Diagnostics Lab University of Wisconsin Hospital and Clinics 600 Highland Ave Madison, WI?
53792-2472
toggle quoted message
Show quoted text
She's got a very impressive background:
?
?
peter d.
That's
EXACTLY what I thought!
Foxprotalk@... wrote:
Looks like a pretty good conference.
Who is - Beth Massi? - Very attractive.
|
|
A quick tally of the session topics shows
.NET at 60, SQL Server 28, and VFP 24.? (and at least one of those is on
migrating from VFP to VB.NET!)?
?
OTOH, the Southwest Fox conference looks
to be much more in the tradition of Great Lakes, with a focus on VFP, a few SQL
topics, and some that appear to be non-language specific (general windows
developer issues).
?
?
?
--stein
?
Stein Goering
Arbutus Computer Services
17494 Merry Hill Rd
Richland Center, WI? 53581
?
608.538.3820
?
toggle quoted message
Show quoted text
From: Eric Selje
[mailto:eselje@...]
Sent: Wednesday, March 24, 2004 6:34 AM
To: madfox_vfp@...
Subject: [madfox_vfp] DevTeach in Montreal
?
I was just checking out the sessions at DevTeach in Montreal (not that I'm
going, of course.)? There's a lot of former VFP speakers giving sessions
about decidedly non-VFP topics.? I'm not sure how to feel about this.
Eric
|
Another IntelliSense script
Here's another IntelliSense script that I hope saves you some time.?
I've written about 2 dozen SQL-Insert statements in the last few days
before this idea finally hit me.
When you type "sqlins" this script will create a properly formatted
INSERT INTO [tablename] (fieldnames*) VALUES (xFieldNames*) from the
currently selected alias.? To implement this, go to your IntelliSense
manager, go to the Custom tab, and type "fieldlist" into the Replace
field (not the quotes).? Select [script] from the drop down menu, and
then click on the Script button and paste this in:
LPARAMETER oFoxCode
LOCAL nFields, X, cReturn, cInto, cValues
cInto = ""
cValues = ""
* Create SQL Insert command from all fields
nFields = AFIELDS(aFieldNames)
FOR X = 1 TO nFields
??? cInto = cInto +? IIF(EMPTY(cInto), "", ", ") +
LOWER(aFieldNames[X,1])
??? cValues = cValues + IIF(EMPTY(cValues), "", ", ") +
LOWER(aFieldNames[X,2]) + PROPER(aFieldNames[X,1])
NEXT
cReturn = [INSERT INTO ] + PROPER(alias()) + " ("+cInto+")
;"+CHR(13)+CHR(9)+"VALUES (~" + cValues + ")"
oFoxCode.valueType = 'V'
RETURN cReturn
Then go back to the Intellisense manager, type sqlins into the Replace
field, change the type back to [command], and click Add.? Then click
Edit, and put {fieldlist} into the cmd field.? Save it, go out of
IntelliSense manager, select a table, and try typing sqlins into either
the command window or an editing window.
Enjoy,
Eric
|
|
Definitely tilted to .NET
Looks like a pretty good conference.
Who is - Beth Massi? - Very attractive.
Peter D.
toggle quoted message
Show quoted text
I was just checking out the sessions at DevTeach in Montreal (not that I'm going, of course.) There's a lot of former VFP speakers giving sessions about decidedly non-VFP topics. I'm not sure how to feel about this.
Eric
Yahoo! Groups Sponsor ADVERTISEMENT
Yahoo! Groups Links
To visit your group on the web, go to:
To unsubscribe from this group, send an email to: madfox_vfp-unsubscribe@... Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|
I was just checking out the sessions at DevTeach in Montreal (not that
I'm going, of course.)? There's a lot of former VFP speakers giving
sessions about decidedly non-VFP topics.? I'm not sure how to feel
about this.
Eric
|
FW: CoDe Magazine eColumn: Publisher's Point
?
Other Online
Content:
...and much, much more.
Visit us at: !
|
CoDe Magazine E-Mail Column and Newsletter
Publisher's
Point: Using Your Inheritance
 Markus Egger Publisher, CoDe
Magazine
|
Visual Studio .NET introduced a great feature that was not new to
many developers, but was new to Visual Basic developers. It was a
feature that greatly increased the options for everyone who previously
based their efforts on the COM platform. Am I talking about Web
services? Xcopy deployment? The Common Language Runtime (CLR)?
Those are good guesses, but what I am talking about is
inheritance. To me, this is one of the biggest benefits introduced by
the first version of Visual Studio.NET. In fact, to me, the lack of
inheritance support was the main reason I avoided VB programming in the
pre-.NET world. It was unbelievable to me that a mechanism so
fundamental to object-oriented development was not available. The tides
have turned though, and now we have inheritance support and more:
cross-language inheritance that represents the foundation of everything
in the .NET Framework.
I am happy to see developers
using this great feature in many ways and for many different purposes.
It seems that increasing numbers of developers understand not just the
theory of inheritance, but also know how to use this powerful feature in
real-life situations. Yet there is one area where inheritance is often
overlooked: inheritance in Windows Forms.
Why is that? Frankly, the thought of re-creating forms
that behave like I want them to, re-creating buttons that look like I
want them to, and re-creating textboxes that format their input the way
I want them to, gives me the heebie-jeebies! To be honest, technically,
inheritance is used a lot in Windows Forms, as every new form that gets
created is a sub-class of a Form class. But that's not what I am talking
about.
Consider a simple scenario. Assume that you need to build
a Windows Forms application with a variety of different forms. You might
right-click your solution and choose "Add Windows Form..." from the
menu. This appears to create a brand new form from scratch, but it
really doesn't. Instead, the Designer creates a new class that inherits
from System.Windows.Forms.Form, and which looks and behaves very much as
you would expect a Windows form to behave. The class makes calls to the
Windows API to produce something that looks like a window and a form.
The class provides easy access to many of a form's features, such as the
ability to set the window's title or to specify whether you even want a
title bar. The System.Windows.Forms.Form class goes beyond a bare-bones
abstraction of a simple window, and provides features such as integrated
localization or the ability to set the "Accept" button.
Everything provided by the basic System.Windows.Forms.Form
class is great stuff, and by adding a "new" class to the project that
inherits from System.Windows.Forms.Form, you tell the compiler that you
want to create a class that is exactly the same. You end up with
something that looks and behaves like a form and you can safely proceed
to adding additional objects (buttons, textboxes, etc.) and additional
functionality to the form. To state it a bit differently: you started
out with a generic form that was just like any other form, and only
added and changed the things that were exceptional. This is why
inheritance sometimes is also referred to as "programming by
exception."
So far, so good. But the million-dollar-question is: what
are the chances that the basic System.Windows.Forms.Form class fits your
needs 100%? Pretty close to 0? How often do you go into your new form
and change the same exact property that you have been changing in all
the other forms you have ever created, like maybe the icon? All the
time? I thought so. So why, I ask, would you keep doing this? My guess
is that performing these types of repetitive tasks is not the highlight
of your developing day. The solution is simple: use inheritance the same
way you use it in other development areas, and use it the same way the
Microsoft Windows Forms team used it when they built that part of the
.NET Framework.
So how do you use inheritance like that? First you create
a Forms class the same way you would when building any new form, because
that new form really is a subclass of the default
System.Windows.Forms.Form class. Then, change whatever you want to
change. Maybe you want to change the default icon. Maybe you want to add
some functionality that manages the form's default screen position a bit
differently. Maybe you want to render the form's background in a
slightly different way. Or maybe, you are happy with the way the form
works for the time being, but want to give yourself a nice place to add
and change behavior and appearance later.
Then, whenever you create a new form class, instead of
picking "Add Windows Form..." from the right-click menu, pick "Add
Inherited Form...". You pick the Form class you created from the dialog
box. (Alternatively, you can create a default form and change the source
code so the new Windows Form inherits from your form). This way, you end
up with a new form that is exactly like the Form class you fine-tuned.
Your own Form class inherits all functionality from a default
System.Windows.Forms.Form class, so you don't have to fear losing any
functionality or incompatibility with future versions of the Framework's
Form class. You simply have a version of the form that is a bit more
powerful than it would be if you were using the "barefoot"
version.
But wait: there is more!? ? ?
Have you gotten your CoDe CDs yet?
 CoDe Magazine content is also
available on CDs! If you have missed 2000 - 2002, make sure you get your
CD now while they are still available. Also, the new 2003 CD is
just around the corner! Don't miss out!
Get your CDs as
well as back issues in the CoDe store:
New Web Site Features
Have you seen our new web site? The new CoDe Magazine site allows
subscribers to read articles online and?post comments. The site
also allows subscribers to manage their subscriptions, change addresses
online, and more. Want to?know when the last issue has been shipped
to you? Find out online!?We encourage you to poke around...
We have recently also added an RSS feed to the CoDe web site,
allowing you to use an RSS Syndication News Reader on CoDe Magazine
content.
Is This Spam?
No. You receive this email because your CoDe Magazine
account/subscription indicates that you are interested in receiving
email newsletters. If you do not wish to?receive CoDe
Newsletters?by email, you can change your preferences online:
Note: It is our policy not to use a "reply to unsubscribe" process,
since this is often used by spamers to verify email addresses before
they are passed on. Using the above link ensures that this will not
happen at CoDe Magazine. |
|
? ? |
?
?
|
FW: April FUDG Meeting C# for Fox Heads
FYI
toggle quoted message
Show quoted text
-----Original Message----- From: bill.drew [mailto:bill.drew@...] Sent: Thursday, April 22, 2004 9:19 PM To: pjfern@... Subject: April FUDG Meeting C# for Fox Heads
Pat Murtaugh couldn't leave his programmer's mind at the office. When the youth soccer team that he coaches, complained about everyone not getting equal playing time, Pat wrote a timer program to moniter each kid's time on the field.
To get it running on an IPOD, he converted a Fox Pro prototype to C Sharp. Come to our April meeting to see how a simple C # program works, how it compares with VFP, and how it can be further developed. Pat's not going overpower us with a slide show filled with a million things that you've never seen before. He's going step by step through a thought process -- including missteps, improving on "cut and paste inheritance", and commentary comparing Fox with C Sharp.
The second act of the meeting isn't decided yet. Make your bid to show us something. If it complements Pat's forray into the Dot Net world, good. If we shine a light on another corner of the programmer's puzzle, that's good too.
Our after-meeting social sessions at Cavanaugh's on the 1st Floor of the Monadnock are a great chance for tall tales, hyperbole, couldas and shouldas, inking 6 figure contracts, venting frustration against large software companies, intentions to to attend far away conferences, poorly expressed algorithms, and visons of future glory.
Next Meeting: April 13th 5:30, 53 W. Jackson. Suite 826.
The dues checks have begun coming in! Send $60 to Datamark Corp 7161 N Cicero, Suite 205 Lincolnwood, IL 60712. Meetings are Free. If we have an out-of-town guest, we might ask for contributions from attendees who aren't paying members.
--- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (). Version: 6.0.634 / Virus Database: 406 - Release Date: 3/18/2004
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (). Version: 6.0.634 / Virus Database: 406 - Release Date: 3/18/2004
|
Re: Like, it's a function
Could
we apply
CHRTRAN(?) Function
?
Replaces each character in a character expression that matches a character in
a second character expression with the corresponding character in a third
character expression. CHRTRAN(cSearchedExpression, cSearchExpression, cReplacementExpression)
Return Values
Character
Parameters
- cSearchedExpression
- Specifies the expression in which CHRTRAN(?) replaces
characters.
- cSearchExpression
- Specifies the expression containing the characters CHRTRAN(?)
looks for in cSearchedExpression.
- cReplacementExpression
- Specifies the expression containing the replacement characters.
If a character in cSearchExpression is found in
cSearchedExpression, the character in cSearchedExpression is
replaced by a character from cReplacementExpression that's in the same
position in cReplacementExpression as the respective character in
cSearchExpression.
If cReplacementExpression has fewer characters than
cSearchExpression, the additional characters in
cSearchExpression are deleted from cSearchedExpression. If
cReplacementExpression has more characters than
cSearchExpression, the additional characters in
cReplacementExpression are ignored.
Remarks
CHRTRAN(?) translates the character expression
cSearchedExpression using the translation expressions
cSearchExpression and cReplacementExpression and returns the
resulting character string.
Example? CHRTRAN( 'ABCDEF', 'ACE', 'XYZ') && Displays XBYDZF
? CHRTRAN( 'ABCD', 'ABC', 'YZ') && Displays YZD
? CHRTRAN( 'ABCDEF', 'ACE', 'XYZQRST') && Displays XBYDZF
?
toggle quoted message
Show quoted text
Well, I had no clue
of its existence.?
Certainly you could
use regular exprs to do the same thing, but in some situations the LIKE
function could save the hassle of instantiating a regex
object.
?
LIKE(cExpression1, cExpression2)
Return
Values
Logical
Parameters
cExpression1
Specifies
the character expression that LIKE(?) compares with cExpression2. cExpression1 can contain the wildcards
such as * and ?. The question mark (?) matches any single character
in cExpression2 and the
asterisk (*) matches any number of characters. You can mix any number of
wildcards in any combination in cExpression1.
cExpression2
Specifies
the character expression LIKE(?) compares with cExpression1. cExpression2 must match cExpression1 letter for letter in order
for LIKE(?) to return true
(.T.).
?
?
?
--stein
?
Stein
Goering
Arbutus Computer
Services
17494 Merry
Hill
Rd
Richland
Center, WI? 53581
?
608.538.3820
?
From: Lorentzen
David F. [mailto:DF.LORENTZEN@...] Sent: Friday, March 19, 2004 2:24 PM To: madfox_vfp@... Subject: RE: [madfox_vfp] Like, it's a
function
?
Eric -?It's had
it, like, forever. It's in my FoxPro 2.6 language reference manual (remember
manuals?), copyright 1993. Good morning, Rip Van Winkle!
If it makes you feel
any better, it's not mentioned in my dBase III Plus
manuals.
Seems like?this
should be something to do?using Regular Expressions,
eh?
-= Dave
David F.
Lorentzen Manager,
HLA/Molecular Diagnostics
Lab University of Wisconsin Hospital and Clinics
600 Highland Ave
Madison, WI? 53792-2472
-----Original
Message----- From:
Eric Selje
[mailto:eselje@...] Sent: Friday, March 19, 2004
1:55 PM To: madfox_vfp@... Subject: [madfox_vfp] Like, it's a
function
Ok, I'm still looking for the previous function, and
am probably gonna roll my own, but when did VFP get the Like()
function?? That's cool!
Eric
|
Re: FW: Professional Visual FoxPro Framework Only $49.95!
FYI:
?
I owned this framework years ago.? At that time it was buggy and I had a very unfavorable experience with the company itself.? I wouldn't do business with them again.
?
peter d.
toggle quoted message
Show quoted text
?
?
--stein
?
Stein Goering
Arbutus Computer Services
17494 Merry Hill Rd
Richland Center, WI? 53581
?
608.538.3820
?
FYI.?
From: ProMatrix [mailto:promatrixnews@...] Subject: Professional Visual FoxPro Framework Only $49.95!
?

|
Breaking News |
?
?
|
Get VPM Standard For Only $49.95! |
A Professional Visual FoxPro Framework for Only $49.95 |
You can now get VPM Standard for only $49.95. VPM Standard is what you need to supercharge your Visual FoxPro development. |
We want every Visual FoxPro Developer to be a ProMatrix user. Now with Visual ProMatrix Standard priced at only $49.95, you can't afford not to use Visual ProMatrix. VPM Standard allows you to create simple or sophisticated applications. VPM Standard is a great way to get started with Visual ProMatrix. VPM Standard provides more tools and features than any VFP framework in its class. |
Visit the page to learn more and to place your order. |
|
VPM Standard Multilingual Toolkit Now Only $49.95 |
Add the ProMatrix Multilingual Toolkit to VPM Standard for only $49.95 50% Off the Regular Price of $99! |
Want to create applications that run in multiple languages without writing any code yourself? Then, take advantage of our special 50% off offer on the for VPM Standard. Includes Dutch, French, German, Portuguese, Spanish and Swedish translations of text that VPM Standard includes in your applications. |
|
|
VPM Enterprise 8.1 - Multilingual & Source Control |
VPM Enterprise 8.1 now includes the ProMatrix Multilingual Toolkit and the ProMatrix Source Control Kit. |
That's right! We have made the premier application framework for Visual FoxPro 8.0 even more powerful by incorporating the and the directly into VPM Enterprise. Now every VPM Enterprise 8.1 user can create multilingual applications and can develop applications under source control. |
Big Savings for ProMatrix Users: Before VPME 8.1, it would have cost about $1,000 to add the ProMatrix Multilingual Toolkit and ProMatrix Source Control Kit to VPME. All of that is now included in VPME 8.1. That's a $1,000 value that you enjoy free when you buy a new license or upgrade to VPME Enterprise 8.1. |
|
Upgrades for ProMatrix Users: If you already have a ProMatrix version, please visit the page to learn how you can upgrade to VPME 8.1. |
|
VPM Enterprise 8.1 Demo Now Available |
If you would like to check out VPME 8.1, go to the VPME Demo Download page to get the Demo. |
|
? |
To be removed from the ProMatrix emailing list, send an email to removeme@.... Be sure to include the email address to which this email was sent in the body of your email. |
|
|
?
Yahoo! Groups Links
- To visit your group on the web, go to:
?
- To unsubscribe from this group, send an email to:
madfox_vfp-unsubscribe@... ?
- Your use of Yahoo! Groups is subject to the .
|
Re: Like, it's a function
Well, I had no clue of its existence.?
Certainly you could use regular exprs to
do the same thing, but in some situations the LIKE function could save the
hassle of instantiating a regex object.
?
LIKE(cExpression1, cExpression2)
Return Values
Logical
Parameters
cExpression1
Specifies
the character expression that LIKE(?)
compares with cExpression2. cExpression1
can contain the wildcards such as * and ?. The question mark (?)
matches any single character in cExpression2
and the asterisk (*) matches any number of characters. You can mix any number
of wildcards in any combination in cExpression1.
cExpression2
Specifies
the character expression LIKE(?)
compares with cExpression1. cExpression2 must match cExpression1 letter for letter in order
for LIKE(?) to return true
(.T.).
?
?
?
--stein
?
Stein Goering
Arbutus Computer Services
17494 Merry Hill Rd
Richland Center, WI? 53581
?
608.538.3820
?
toggle quoted message
Show quoted text
From: Lorentzen David F. [mailto:DF.LORENTZEN@...]
Sent: Friday, March 19, 2004 2:24 PM
To: madfox_vfp@...
Subject: RE: [madfox_vfp] Like,
it's a function
?
Eric -?It's had it, like, forever.
It's in my FoxPro 2.6 language reference manual (remember manuals?), copyright
1993. Good morning, Rip Van Winkle!
If it makes you feel any better, it's not
mentioned in my dBase III Plus manuals.
Seems like?this should be something
to do?using Regular Expressions, eh?
-= Dave
David F. Lorentzen
Manager, HLA/Molecular Diagnostics
Lab
University of Wisconsin
Hospital and Clinics
600 Highland Ave
Madison, WI?
53792-2472
-----Original
Message-----
From: Eric
Selje [mailto:eselje@...]
Sent: Friday, March 19, 2004 1:55 PM
To: madfox_vfp@...
Subject: [madfox_vfp] Like, it's a
function
Ok, I'm still looking for the previous function, and
am probably gonna roll my own, but when did VFP get the Like() function??
That's cool!
Eric
|
Re: Like, it's a function
Eric
-?It's had it, like, forever. It's in my FoxPro 2.6 language reference
manual (remember manuals?), copyright 1993. Good morning, Rip Van Winkle!
?
If it
makes you feel any better, it's not mentioned in my dBase III Plus
manuals.
?
Seems
like?this should be something to do?using Regular Expressions,
eh?
-= Dave
David F. Lorentzen Manager, HLA/Molecular Diagnostics Lab
University of Wisconsin Hospital and
Clinics 600 Highland Ave
Madison, WI? 53792-2472
toggle quoted message
Show quoted text
Ok, I'm still looking for the
previous function, and am probably gonna roll my own, but when did VFP get the
Like() function?? That's cool!
Eric
|
As I mentioned, I rolled my own.? Here it is:
FUNCTION FilterChars
LPARAMETERS cString, cFilterChars
LOCAL cReturn, X, cChar
cReturn = ""
FOR X = 1 TO LEN(cFilterChars)
??? cChar = SUBSTR(cFilterChars,X,1)
??? IF cChar $ cString
??? ??? cReturn = cReturn + cChar
??? ENDIF
NEXT
RETURN cReturn
|
Ok, I'm still looking for the previous function, and am probably gonna
roll my own, but when did VFP get the Like() function?? That's cool!
Eric
|
Isn't there a function to show which characters are in a string?? eg.
cString = "Give me liberty, or give me a sub sandwich!"
? cWhichCars(cString, "!@#$%^&*()")
...it would say '!' as that's in the string and amongst the characters
we're looking for.? Am I thinking of a different language?
Thanks,
Eric
|
FW: Professional Visual FoxPro Framework Only $49.95!
?
?
--stein
?
Stein Goering
Arbutus Computer Services
17494 Merry Hill Rd
Richland Center, WI? 53581
?
608.538.3820
?
FYI.?
From: ProMatrix [mailto:promatrixnews@...]
Subject: Professional Visual
FoxPro Framework Only $49.95!
?

|
Breaking News
|
?
?
|
Get VPM Standard For Only $49.95!
|
A Professional Visual FoxPro Framework for Only $49.95
|
You can now get VPM Standard for only $49.95. VPM
Standard is what you need to supercharge your Visual FoxPro development.
|
We want every Visual FoxPro Developer to be a ProMatrix
user. Now with Visual ProMatrix Standard priced at only $49.95, you can't
afford not to use Visual ProMatrix. VPM Standard allows you to create
simple or sophisticated applications. VPM Standard is a great way to get
started with Visual ProMatrix. VPM Standard provides more tools and
features than any VFP framework in its class.
|
Visit the page
to learn more and to place your order.
|
|
VPM Standard Multilingual Toolkit Now Only
$49.95
|
Add the ProMatrix Multilingual Toolkit to VPM Standard
for only $49.95
50% Off the Regular Price of $99!
|
Want to create applications that run in multiple
languages without writing any code yourself? Then, take advantage of our
special 50% off offer on the for VPM Standard. Includes Dutch, French, German, Portuguese,
Spanish and Swedish translations of text that VPM Standard includes in
your applications.
|
|
|
VPM Enterprise 8.1 - Multilingual & Source
Control
|
VPM Enterprise 8.1 now includes the
ProMatrix Multilingual Toolkit and the ProMatrix Source Control Kit.
|
That's right! We have made the premier application framework
for Visual FoxPro 8.0 even more powerful by incorporating the and the directly into VPM Enterprise. Now every VPM
Enterprise 8.1 user can create multilingual applications and can develop
applications under source control.
|
Big
Savings for ProMatrix Users: Before VPME 8.1, it would
have cost about $1,000 to add the ProMatrix Multilingual Toolkit and
ProMatrix Source Control Kit to VPME. All of that is now included in VPME
8.1. That's a $1,000 value that you
enjoy free when you buy a new license or upgrade to VPME Enterprise 8.1.
|
|
Upgrades
for ProMatrix Users: If you already have a
ProMatrix version, please visit the
page to learn how you can upgrade to VPME
8.1.
|
|
VPM Enterprise 8.1 Demo Now Available
|
If you
would like to check out VPME 8.1, go to the VPME Demo Download page to
get the Demo.
|
|
?
|
To be removed from the ProMatrix emailing list, send
an email to removeme@....
Be sure to include the email address to which this email was sent in the
body of your email.
|
|
|
?
|
FW: [seattlevfpsig] print to command line
Check out this thread from the Seattle users group.
P.J.
toggle quoted message
Show quoted text
-----Original Message----- From: Calvin Hsia [mailto:calvinh@...] Sent: Wednesday, March 17, 2004 6:44 PM To: davidfung99; seattlevfpsig@... Subject: RE: [seattlevfpsig] print to command line
VFP is a windows application and thus cannot output to the console. (Same as NotePad)
However, you can show a messagebox based on user parameters.
You need a config.fpw with "screen=off" if you don't want to show the VFP desktop until parameters have been validated.
You might want to try posting questions at www.universalthread.com
TEXT to cprog screen=off ENDTEXT STRTOFILE(cprog,"config.fpw") TEXT to cprog PROCEDURE testxx(parm1,parm2) IF TRANSFORM(parm1) = "/?" MESSAGEBOX(TRANSFORM(parm1)+":"+TRANSFORM(parm2)) ELSE _screen.Visible= .T. && if you want ox=NEWOBJECT("form") && your application ox.addobject("btn","commandbutton") ox.btn.caption="Click me" ox.btn.visible=.t. ox.show(1) ENDIF
ENDTEXT ERASE testxx.p* MODIFY PROJECT testxx nowait STRTOFILE(cprog,"testxx.prg") _vfp.ActiveProject.Files.Add("testxx.prg") _vfp.ActiveProject.Files.Add("config.fpw") _vfp.ActiveProject.Close BUILD EXE testxx FROM testxx RELEASE WINDOWS tesxx !/n testxx /?
-----Original Message----- From: davidfung99 [mailto:davidfung@...] Sent: Wednesday, March 17, 2004 2:41 PM To: seattlevfpsig@... Subject: [seattlevfpsig] print to command line
Hi,
I have written a command line program in FoxPro, but couldn't figure out a way to print to the command line, e.g. print the program usage if the wrong parameters are supplied by the user. Is there a way to do so?
Thanks, David
For FoxPro Community news visit: Yahoo! Groups Links
For FoxPro Community news visit: Yahoo! Groups Links
--- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (). Version: 6.0.622 / Virus Database: 400 - Release Date: 3/13/2004
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (). Version: 6.0.622 / Virus Database: 400 - Release Date: 3/13/2004
|
FW: CoDe Magazine eColumn: Publisher's Point
?
Other Online
Content:
...and much, much more.
Visit us at: !
|
CoDe Magazine E-Mail Column and Newsletter
Publisher's
Point: Using Your Inheritance
 Markus Egger Publisher, CoDe
Magazine
|
Visual Studio .NET introduced a great feature that was not new to
many developers, but was new to Visual Basic developers. It was a
feature that greatly increased the options for everyone who previously
based their efforts on the COM platform. Am I talking about Web
services? Xcopy deployment? The Common Language Runtime (CLR)?
Those are good guesses, but what I am talking about is
inheritance. To me, this is one of the biggest benefits introduced by
the first version of Visual Studio.NET. In fact, to me, the lack of
inheritance support was the main reason I avoided VB programming in the
pre-.NET world. It was unbelievable to me that a mechanism so
fundamental to object-oriented development was not available. The tides
have turned though, and now we have inheritance support and more:
cross-language inheritance that represents the foundation of everything
in the .NET Framework.
I am happy to see developers
using this great feature in many ways and for many different purposes.
It seems that increasing numbers of developers understand not just the
theory of inheritance, but also know how to use this powerful feature in
real-life situations. Yet there is one area where inheritance is often
overlooked: inheritance in Windows Forms.
Why is that? Frankly, the thought of re-creating forms
that behave like I want them to, re-creating buttons that look like I
want them to, and re-creating textboxes that format their input the way
I want them to, gives me the heebie-jeebies! To be honest, technically,
inheritance is used a lot in Windows Forms, as every new form that gets
created is a sub-class of a Form class. But that's not what I am talking
about.
Consider a simple scenario. Assume that you need to build
a Windows Forms application with a variety of different forms. You might
right-click your solution and choose "Add Windows Form..." from the
menu. This appears to create a brand new form from scratch, but it
really doesn't. Instead, the Designer creates a new class that inherits
from System.Windows.Forms.Form, and which looks and behaves very much as
you would expect a Windows form to behave. The class makes calls to the
Windows API to produce something that looks like a window and a form.
The class provides easy access to many of a form's features, such as the
ability to set the window's title or to specify whether you even want a
title bar. The System.Windows.Forms.Form class goes beyond a bare-bones
abstraction of a simple window, and provides features such as integrated
localization or the ability to set the "Accept" button.
Everything provided by the basic System.Windows.Forms.Form
class is great stuff, and by adding a "new" class to the project that
inherits from System.Windows.Forms.Form, you tell the compiler that you
want to create a class that is exactly the same. You end up with
something that looks and behaves like a form and you can safely proceed
to adding additional objects (buttons, textboxes, etc.) and additional
functionality to the form. To state it a bit differently: you started
out with a generic form that was just like any other form, and only
added and changed the things that were exceptional. This is why
inheritance sometimes is also referred to as "programming by
exception."
So far, so good. But the million-dollar-question is: what
are the chances that the basic System.Windows.Forms.Form class fits your
needs 100%? Pretty close to 0? How often do you go into your new form
and change the same exact property that you have been changing in all
the other forms you have ever created, like maybe the icon? All the
time? I thought so. So why, I ask, would you keep doing this? My guess
is that performing these types of repetitive tasks is not the highlight
of your developing day. The solution is simple: use inheritance the same
way you use it in other development areas, and use it the same way the
Microsoft Windows Forms team used it when they built that part of the
.NET Framework.
So how do you use inheritance like that? First you create
a Forms class the same way you would when building any new form, because
that new form really is a subclass of the default
System.Windows.Forms.Form class. Then, change whatever you want to
change. Maybe you want to change the default icon. Maybe you want to add
some functionality that manages the form's default screen position a bit
differently. Maybe you want to render the form's background in a
slightly different way. Or maybe, you are happy with the way the form
works for the time being, but want to give yourself a nice place to add
and change behavior and appearance later.
Then, whenever you create a new form class, instead of
picking "Add Windows Form..." from the right-click menu, pick "Add
Inherited Form...". You pick the Form class you created from the dialog
box. (Alternatively, you can create a default form and change the source
code so the new Windows Form inherits from your form). This way, you end
up with a new form that is exactly like the Form class you fine-tuned.
Your own Form class inherits all functionality from a default
System.Windows.Forms.Form class, so you don't have to fear losing any
functionality or incompatibility with future versions of the Framework's
Form class. You simply have a version of the form that is a bit more
powerful than it would be if you were using the "barefoot"
version.
But wait: there is more!? ? ?
Have you gotten your CoDe CDs yet?
 CoDe Magazine content is also
available on CDs! If you have missed 2000 - 2002, make sure you get your
CD now while they are still available. Also, the new 2003 CD is
just around the corner! Don't miss out!
Get your CDs as
well as back issues in the CoDe store:
New Web Site Features
Have you seen our new web site? The new CoDe Magazine site allows
subscribers to read articles online and?post comments. The site
also allows subscribers to manage their subscriptions, change addresses
online, and more. Want to?know when the last issue has been shipped
to you? Find out online!?We encourage you to poke around...
We have recently also added an RSS feed to the CoDe web site,
allowing you to use an RSS Syndication News Reader on CoDe Magazine
content.
Is This Spam?
No. You receive this email because your CoDe Magazine
account/subscription indicates that you are interested in receiving
email newsletters. If you do not wish to?receive CoDe
Newsletters?by email, you can change your preferences online:
Note: It is our policy not to use a "reply to unsubscribe" process,
since this is often used by spamers to verify email addresses before
they are passed on. Using the above link ensures that this will not
happen at CoDe Magazine. |
|
? ? |
?
?
|
Madison to St. Croix on sale
Hey everybody, there's a sale from Madison to St. Croix right now, and
I've got a little room left in my calendar, so you should come down.?
Check out
for more info.? (That's a really long URL I know but if you just go to
aa.com and click on Caribbean sale, you'll get there)
Eric
|