IT SOLUTIONS
Your full service technology partner! 
-Collapse +Expand
Delphi
Search Delphi Group:

Advanced
-Collapse +Expand Delphi To/From
To/FromCODEGuides
-Collapse +Expand Delphi Store
PRESTWOODSTORE

Prestwood eMagazine

October Edition
Subscribe now! It's Free!
Enter your email:

   ► eMag   Print This    All Groups  
View Group Edition:
Full Edition Your Edition || Prev Next || Subscription Center

Prestwood IT Newsletter Jan 2013 Issue - Delphi Edition

Subscribe!

Start subscribing now! It's free!

Each month on or after the 1st, and only once a month, we will send you content from up to 5 community groups. If you select this Delphi group, you'll receive the following content below mixed in with the other groups you elect to include.

Prestwood eMag
Our monthly opt-in coupons+newsletter.
portal.prestwood.com
  January 2013 - Delphi Edition (762 of 4,803 subscribers receive this group's content.) Year 15 Issue 1  
Your full service technology partner!


Expert guidance from working professionals!
IT Water-Cooler for Power-Users topic:
Stamp Out Spam
by Vicki Nelson

How to fight back against spam and reclaim your inbox. As you may know, the volume of spam messages sent across the Internet has reached epidemic levels. Some industry experts estimate that three out of every five e-mail messages that are sent today are spam. The spam epidemic is costing companies, professionals, and individual users considerable amounts of time, money, and resources.

What is spam, and what can I do about it? Spam is generally defined as an unsolicited mailing, usually sent to many recipients. Most spam is commercial advertising, often for dubious products, get-rich-quick schemes, or quasi-legal services. Spam costs the sender very little to send. Most of the costs are paid by the recipient or the carriers rather than the sender. Some effective methods for preventing your e-mail address from being captured, sold or abused by spammers in the full version of this article. Click the title to read more.


Off Shoring topic:
Off-shoring: You CAN fight back!
by Wes Peterson

Are you fed up with calling a company and finding yourself speaking to somebody in a foreign country? 

I am, and I've just learned of an effective way to fight back, help return jobs to America, and keep them here.

The best part? We don't have to wait for government to do a thing.






 Delphi Group Top 
Visit Group | My Group Settings
Delphi for Win32 topic (classic post):
Component to Fix Alt Key Problem in Vista
by Wes Peterson
When run under Vista, your Delphi programs may respond poorly to presses of the Alt key; some of the components on your forms may disappear. Here is a free component that can help.

Language Basics topic (classic post):
A 10 Minute Delphi Console App Quick Start
by Mike Prestwood

Create a classic "Hello, World" Windows native code Console App using Delphi. This tutorial is based on Borland Developer Suite 2006 but you can use any version of Delphi you wish. In this tutorial, you will create a classic "Hello, World!" windows console application. A console application is a type of Windows application that has FULL access to the Win32 API, but it's GUI is limited to a DOS-like text window. When Windows starts a console application, it creates a text-mode console window where the program can display text and the user can interact with the program via the keyboard.


 Monthly Delphi Lesson
OOP Topic:
Code Snippet of the Month

Delphi for Win32 supports abstract class members using the abstract keyword. You can even instantiate instances of a class that contains abstract members. Then you override each abstract member in a descendant class with Override. Delphi does not support setting an entire class as abstract. You can create an abstract class (a class with one or more abstract methods), but there is no way to tell the compiler to not allow the instantiation of the abstract class. Delphi does not support abstract member properties directly. To implement an abstract properity, make use of abstract methods. That is, you can read a GetPropertyX abstract function and write to a SetPropertyX abstract procedure. In effect, creating  an abstract property.

TCyborg = class(TObject)

public
  procedure Speak(pMessage: String); virtual; abstract;
  procedure Walk; virtual; abstract;
end;
 
TSeries600 = class(TCyborg)

public
  procedure Speak(pMessage: String); override;
  procedure Walk; override;
end;
OOP Topic:
Definition of the Month: Strict Visibility
The Strict specifier tightens up the scope for private and protected. With Strict Private, members within a class are visible ONLY within the class declared and Strict Protected are visible only within the class declared and descendent classes. Without strict, private and protected members can also be seen by all classes declared in the same unit (friendly classes). The Strict specifier was introduced with Delphi for .Net preview in Delphi 7 in an update to the .Net compiler preview and with Win32 in Delphi 2005 to fully comply with the .NET CLS. Delphi's traditional private specifier maps to the CLR's assembly visibility and the protected specifier maps to the CLR's assembly or family visibility.
Delphi for Win32 Topic:
Documented Error of the Month: Program or unit recursively uses itself
Error:

[DCC Fatal Error] Program or unit 'Buttons' recursively uses itself

Explanation:

You cannot create a Delphi unit with the same name as is already in use. For example, do not create a buttons.pas unit for your application because the VCL already has a Buttons.pas unit. The solution is to rename your unit.

Delphi for Win32 Topic:
Resource Link of the Month: TechTricks.com Delphi Articles
www.TechTricks.com is run by Lance Leonard and contains a wealth of information. I remember Lance from back when I worked at Borland in the mid-90s. His website covers Paradox, Delphi, and other technologies.
Using Controls Topic:
FAQ of the Month: TEdit OnChange events
Question: I have a form with two TEdit components on it. For the OnChange event for both, it clears the contents of the TEdit that is not changing. However, when clearing on TEdit the OnChange fires and clears the other TEdit, this then causes the OnChange in the other TEdit to fire. Fortunately, the second time the OnChange hits the original TEdit, it is already clear and nothing happens. How can I prevent the circular event firing?

Answer:

The simplest way to prevent the circular event firing is to check the form's ActiveControl property. This property indicates which component currently has the focus.

The OnChange event should read as follows:

procedure TForm1.EditChange(Sender: TObject);
begin
if TEdit(Sender).Name <> TEdit(ActiveControl).Name then
   begin
       // do processing
   end;
end;
Using Data Topic:
Tip of the Month
When you need to put quotes, single or double, or even another character, around a string there are two methods to lend a hand: QuotedStr and AnsiQuotedStr. QuotedStr will put single (') quotes around your string or variable. The other function you can call is AnsiQuotedStr which adds double quotes.


Sales Website: www.prestwood.com Or visit our legacy sales site: 
legacy.prestwood.com


©1995-2021 Prestwood IT Solutions.   [Security & Privacy]