开云体育

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: DevTeach in Montreal

Lorentzen David F.
 

开云体育

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

-----Original Message-----
From: Foxprotalk@... [mailto:Foxprotalk@...]
Sent: Thursday, March 25, 2004 3:42 PM
To: madfox_vfp@...
Subject: Re: [madfox_vfp] DevTeach in Montreal

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.


Re: DevTeach in Montreal

 

开云体育

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.


Re: DevTeach in Montreal

Stein Goering
 

开云体育

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

?


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

Eric Selje
 

开云体育

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


Re: DevTeach in Montreal

Eric Selje
 

开云体育

That's EXACTLY what I thought!


Foxprotalk@... wrote:

Looks like a pretty good conference.

Who is - Beth Massi? - Very attractive.

  


Re: DevTeach in Montreal

 

Definitely tilted to .NET

Looks like a pretty good conference.

Who is - Beth Massi? - Very attractive.

Peter D.

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.


DevTeach in Montreal

Eric Selje
 

开云体育

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

PJ Fernandez
 

开云体育

?
-----Original Message-----
From: code@... [mailto:code@...]
Sent: Tuesday, March 16, 2004 6:32 PM
To: pjfern@...
Subject: 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

PJ Fernandez
 

FYI

-----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

PJ Fernandez
 

开云体育

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

?

-----Original Message-----
From: Stein Goering [mailto:sgoering@...]
Sent: Friday, March 19, 2004 2:32 PM
To: madfox_vfp@...
Subject: RE: [madfox_vfp] 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

?


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.

?

?

--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

?


?

?

News Topics

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

Stein Goering
 

开云体育

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: Like, it's a function

Lorentzen David F.
 

开云体育

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


Rolled my own

Eric Selje
 

开云体育

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




Like, it's a function

Eric Selje
 

开云体育

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


Which chars?

Eric Selje
 

开云体育

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 Goering
 

开云体育

?

?

--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

?


?

?

News Topics

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

PJ Fernandez
 

Check out this thread from the Seattle users group.

P.J.

-----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

PJ Fernandez
 

开云体育

?
-----Original Message-----
From: code@... [mailto:code@...]
Sent: Tuesday, March 16, 2004 6:32 PM
To: pjfern@...
Subject: 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

Eric Selje
 

开云体育

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