Coding Services
Prestwood
Coding Services
Prestwood Software offers a full line of coding services including developer help, maintenance coding, conversions, testing, database design, and more.


Prestwood eMagazine
Subscribe to our popular FREE monthly eMagazine.

Enter your email:

Subscription Center
 
Support Us!
Support this community,
buy from our store!

Instant Delphi Programming

$22.50
Visit Store
Online Now: 994 Guests, 14 Members>>>Gary Mulcahy  kwolfson  Wes Peterson  Adam Lum  davidb  randy_danho  joseph_restle  ަѶQ  hhb03610  ciuly  Amit_Pandey993  swawsji  test1  rchristiansen   
Newest Delphi group members:  1. ciuly  (11 visits. Cluj Napoca USA) 2. MaxxxL  (3 visits. Moscow USA) 3. carl_nielsen  (2 visits. Gold Coast USA) 4. manny   (2 visits. USA) 5. rehan_yousuf  (1 visits. USA)

Not a member of this group? Join Now!

Delphi for Win32 Group

Delphi group covering all aspects of Delphi for Win32 and the upcoming Delphi for Win64 as well as a Kylix archive.

Since its inception, Delphi has proven itself the RAD development system for Win32 applications.

Designed specifically to "play nice" with virtually every database in existence, Delphi has long been the choice of serious developers that need to produce sophisticated, high-performance, custom applications.  One of Delphi's strengths has alway been the incredibly diverse and rich 3rd party component  libraries that extend Delphi's already considerable power.

Delphi continues to be a viable candidate for new projects. It still creates the fastest native-code Win32  applications and with the upcoming Delphi for Win64, Delphi applications will have the ability to take advantage of 64-bit processors. Delphi for .Net is a serious competitor of Visual Studio.Net and worth considering for your projects.

Also consider joining our...


This page lists NEW and UPDATED Delphi for Win32 content from all areas (news, message board, knowledge base, blogs, comments, FAQ lists, file library, resumes, job postings, etc.). In addition, this page contains weekly content posted each Monday at 1 AM from our tib-bits (smaller KB posts).

Delphi News

5/26/2008
New DevExpress Updates Now Available
List of releases available as part of the newest update of Express Install, v1.36.

5/9/2008
Delphi Acquired by Embarcadero Technologies
CodeGear, Borland's development tools division is being acquired by Embarcadero Technologies.

6/16/2007
So Many Great Databases: Can It Get Any Better?
Contemporary databases provide incredible features, and supporting tools. Even so, there is one "add on" you should know about.

2/20/2007
Delphi 2007 for Win32 Launches!
CodeGear Introduces Delphi for Win32, Providing RAD Development for Windows Vista and AJAX. New RAD Environment Allows Developers to Jump-start Microsoft Windows Vista Applications While Seamlessly Supporting Existing Users.

2/20/2007
Delphi for PHP Announced
Delphi for PHP brings RAD productivity benefits to PHP Web developers that Delphi users have enjoyed for years. PHP is the most prominent dynamic Web language today and one of the top 10 programming languages overall. Delphi for PHP is designed to take PHP development to the next-level by making it faster and easier to develop rich, database-driven Web applications.


Our Delphi News List | Post Your News

Weekly Delphi Content!

Week 33, Posted Monday 8/18/2008

Content changes every Monday @ 1AM!! Check back once per week. Learn! Review! Test Yourself!

Tip of the Week
Tip: Before adding many new entries to a TStringList, set its Sorted property to false. Add all your entries. Finally, set the Sorted property back to True (if desired). Sorting is expensive, in terms of macnine cycles. By leaving the Sorted property set to True, you force the TStingList to re-sort itself after each entry. This can significantly slow things down. This applies to TStrings, as well, and all components that have a TStrings property, like TListBox, etc.
FAQ of the Week
Question: Can I call a DotNet DLL from my Delphi 7 application?

Answer:

It's not easy because the .NET RTL resides in a different process. You can wrap up the DotNet DLL into an ActiveX control and call it or have both your app and the DotNet DLL write to the registry, a file, etc. By the way, you CAN wrap up a Win32 DLL in a DotNet DLL and call it from DotNet.

Definition of the Week
Delphi Unary Operators - An operation with only one operand (a single input). In Object Pascal, a unary operator (+,-, and ^) always precedes its operand (for example, -B), except for ^, which follows its operand (for example, P^).
Link of the Week
Dr. Bob 42 A popular, and charming, website containing the latest news, press releases, articles, book reviews, tools, third-party tool reviews, and news on conferences & training using Delphi for Win32, Delphi for .NET, Delphi for PHP, Kylix (Delphi for Linux), C++Builder (Delphi for C++) & C#Builder as well as ASP.NET, XML, SOAP and Web Services.
Code Snippet of the Week
What does this code do?
procedure TUtils.Delay(MillisecondsDelay: Integer);
var
   FirstTickCount: LongInt;
begin
     FirstTickCount := GetTickCount;
     repeat 
           Application.ProcessMessages;
     until ((GetTickCount-FirstTickCount) >= Longint(MillisecondsDelay));
end;
File of the Week
Delphi for PHP Free Trial

Delphi Board Overview Q&A!

Techie talk! Post your Q&A to our Delphi board. Our custom built message board uses a traditional Q&A message board format you can browse, search, post new topics, and reply to existing topics.
 TopicThreadsPostsLast Active ThreadLast By
Sign In To Check If Stuff Is New Delphi COM / ActiveX / DCOM2249
How do I access menu comman...
by Neophyte185
Sign In To Check If Stuff Is New Delphi Distributed Apps48158
MSSQL locks on ApplyUpdates...
by pooh
Sign In To Check If Stuff Is New Delphi Internet Solutions4992
Calendar Components...
by the7son_ms
Sign In To Check If Stuff Is New Delphi News / Other227711
RE: Wanted: Delphi Programm...
by carl_nielsen
Sign In To Check If Stuff Is New Delphi Object PASCAL103589
Creating simple PDF files...
by hyp3n0zy5
Sign In To Check If Stuff Is New Delphi Single User Apps191505
RE: Making a spectrogram...
by Wes
Sign In To Check If Stuff Is New Delphi User Groups56
Delphi User Groups LIsting...
by mprestwood
Sign In To Check If Stuff Is New Delphi VCL64252
RE: problem with the code- ...
by Wes
Sign In To Check If Stuff Is New Kylix (Archive)1035
Suse 9.1 and Kylix 3...
by jwerfel

New Delphi MB Posts

 Thread
Started By Replies
 Last Post TopicViews
Sign In To Check If Stuff Is New Making a spectrogram
Posted 11/11/2001, Updated 8/11/2008
Negative 4 RE: Making ...
Posted 8/11/2008
by Wes
Delphi Single User Apps115
Sign In To Check If Stuff Is New Wanted: Delphi Programmer
Posted 2/25/2004, Updated 7/15/2008
Mike Prestwood2 RE: Wanted:...
Posted 7/15/2008
by carl_nielsen
Delphi News / Other328
Sign In To Check If Stuff Is New ! CodeGear has a new home!
Posted 5/11/2008, Updated 6/3/2008
Rick Carter 16 RE: CodeGea...
Posted 6/3/2008
by Rick Carter
Delphi News / Other1153
Sign In To Check If Stuff Is New problem with the code- dont know where
Posted 5/8/2008, Updated 5/12/2008
pkakkar7 RE: problem...
Posted 5/12/2008
by Wes
Delphi VCL617
Sign In To Check If Stuff Is New Pascal Database Toolbox (TAccess)
Posted 9/1/2002, Updated 5/8/2008
Jarmulowicz 6 RE: Pascal ...
Posted 5/8/2008
by peterw1956
Delphi Object PASCAL570
Sign In To Check If Stuff Is New Tip: Create Round Windows
Posted 11/27/2000, Updated 4/24/2008
Larry J. Rutledge 1 RE: Tip: Cr...
Posted 4/24/2008
by psantoro
Delphi News / Other340
Sign In To Check If Stuff Is New Delphi User Groups LIsting
Posted 3/26/2008, Updated 3/26/2008
Mike Prestwood1 RE: Delphi ...
Posted 3/26/2008
by psantoro
Delphi User Groups386
Sign In To Check If Stuff Is New Calendar Components
Posted 3/18/2008, Updated 3/18/2008
the7son_ms1 RE: Calenda...
Posted 3/18/2008
by Wes
Delphi Internet Solutions416
Sign In To Check If Stuff Is New Using TWebbrowser to enter text and click button
Posted 3/12/2008, Updated 3/13/2008
riotboy1 RE: Using T...
Posted 3/13/2008
by Wes
Delphi VCL441
Sign In To Check If Stuff Is New Slow access to ADO table on 2nd pass
Posted 3/5/2008, Updated 3/10/2008
Ron.Roper1 RE: Slow ac...
Posted 3/10/2008
by Wes
Delphi Single User Apps433

New Stuff Since Your Last Visit=New or Updated, Not New Since Your Last Visit=Not new.

New Thread Notifications

New thread subscribers: adorraga   ciuly   edaurdoamped    ferganyalex   jpgolay   Mike Prestwood   moudy   owen.moore   pkakkar   rbrownsr   the7son_ms  

Want to subscribe? Sign in to subscribe to new threads posted to this group.

New Delphi Knowledge Base Articles

    KB Article By KB Topic Counters
Sign In To Check If Stuff Is New
FAQ
Flashcard

1. Virual; Abstract; vs. Dynamic; Abstract;

Question: Why do I have to specify virtual when creating an abstract method? Why not just abstract?
  +Add Comment (2 Comments  last by mprestwood )
Mike Prestwood
OOP All: 355
Members: 0
Non-Mem: 354
Mods: 0
Clients: 0
Staff: 1
Sign In To Check If Stuff Is New
FAQ
Flashcard

2. Native Code versus Managed .Net Code

Question: What are the benefits of Win32/64 native code over .Net?
  +Add Comment (0 Comments )
Mike Prestwood
Beginners Corner All: 238
Members: 0
Non-Mem: 238
Mods: 0
Clients: 0
Staff: 0
Sign In To Check If Stuff Is New
Definition
Flashcard

3. Delphi Module

Short Definition: A unit. A unit is defined in its own source file (a .PAS file) that contains types (including classes), constants, variables, and routines (functions and procedures). Each unit begins with unit UnitName; where UnitName must match the filename (minus the .PAS extension). The .PAS unit files are compiled into Delphi Compiled Units with a .DCU extension. A Delphi program is constructed from units. Specifically, the .DCU files are linked into your application. The Delphi compiler is very fast because it only recompiles units that have changed. You can force Delphi to recompile all units with a build all.
  +Add Comment (0 Comments )
Mike Prestwood
Beginners Corner All: 217
Members: 0
Non-Mem: 217
Mods: 0
Clients: 0
Staff: 0
Sign In To Check If Stuff Is New
FAQ
Flashcard

4. Protected versus Strict Protected

Question: What is the difference between Protected and Strict Protected visibility?
  +Add Comment (0 Comments )
Mike Prestwood
OOP All: 233
Members: 0
Non-Mem: 233
Mods: 0
Clients: 0
Staff: 0
Sign In To Check If Stuff Is New
Definition
Flashcard

5. Strict Visibility

Short Definition: 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.
  +Add Comment (0 Comments )
Mike Prestwood
OOP All: 206
Members: 0
Non-Mem: 206
Mods: 0
Clients: 0
Staff: 0

Updated Delphi Knowledge Base Articles

    KB Article By KB Topic Counters
Sign In To Check If Stuff Is New
Post

1. Using BDE TTables to read or write text file records

How to read or write data from comma-delimeted or fixed length record text files in Borland Delphi.
  +Add Comment (1 Comments )
Scott
BDE All: 770
Members: 0
Non-Mem: 764
Mods: 1
Clients: 0
Staff: 4
Sign In To Check If Stuff Is New
Tip

2. Associative Arrays in Delphi/Object Pascal

Tip: Although Object Pascal doesn't have a native associative array, many developers just use a TStringList. Others have implemented a true associative array in Object Pascal. Search the Internet for TStringHash and THashedStringList classes for examples.
  +Add Comment (0 Comments )
Mike Prestwood
Language Reference All: 390
Members: 0
Non-Mem: 389
Mods: 0
Clients: 0
Staff: 1
Sign In To Check If Stuff Is New
Post

3. Set File Extension to Always Show in Explorer

The default setting in Windows Explorer is to always hide known file extensions. This Delphi code shows you how to programatically set your own extension to always show in Explorer.
  +Add Comment (1 Comments )
Scott
Coding Tasks All: 598
Members: 0
Non-Mem: 595
Mods: 0
Clients: 0
Staff: 3
Sign In To Check If Stuff Is New
Post

4. Using GetHeapStatus

Memory Management and Delphi
  +Add Comment (1 Comments  last by david_chesnet )
Mike Prestwood
Coding Tasks All: 613
Members: 9
Non-Mem: 604
Mods: 0
Clients: 0
Staff: 0
Sign In To Check If Stuff Is New
Article

5. Sub-Classing the BDE TQuery Component

First in a series
  +Add Comment (0 Comments )
Joshua Delahunty
Delphi for Win32 All: 515
Members: 5
Non-Mem: 507
Mods: 0
Clients: 0
Staff: 3

New Delphi KB Comments/Entries

Mike Prestwood
Prestwood Software
Send mprestwood a Private Message Visit mprestwood's Home Page
PS Staff
Moderator
Rank: Fleet Admiral

Joined: Oct 2000
Visits: 21411
MB Posts: 980

KB Articles: 872

Location: Citrus Heights, CA USA
Tuesday, July 01, 2008 Read | +Add Comment

Also of note...

In Delphi for .Net, there is no difference between virtual and dynamic.



Regarding...
Virual; Abstract; vs. Dynamic; Abstract;
Why do I have to specify virtual when creating an abstract method? Why not just abstract?

Mike Prestwood
Prestwood Software
Send mprestwood a Private Message Visit mprestwood's Home Page
PS Staff
Moderator
Rank: Fleet Admiral

Joined: Oct 2000
Visits: 21411
MB Posts: 980

KB Articles: 872

Location: Citrus Heights, CA USA
Tuesday, July 01, 2008 (Updated 7/1/2008 5:34:05 PM)
Read | +Add Comment

Here is the syntax in question:

function Age: Integer; Abstract; //Does not work.

 

The above returns the following error:

[Pascal Error] poc_ClassTestsUnit1.pas(23): E2167 Abstract methods must be virtual or dynamic

 

Here is the correct syntax:

function Age: Integer; Virtual; Abstract; //Optimized for speed and most common.
 
function Age: Integer; Dynamic; Abstract; //Optimized for size.

 

For example, here is a complete simple class example:

  TMyClass = class(TObject)
  private
    function Name: String;
  public
    function Age: Integer; Abstract;
  end;

 

Then in a descendent class, you implement it:

//Class declaration...
TMyClass2 = class(TMyClass)
public
  function Age: Integer;
end;
 
 
//Method implementation...
function TMyClass2.Age: Integer;
begin
  Age := 12;
end;


Regarding...
Virual; Abstract; vs. Dynamic; Abstract;
Why do I have to specify virtual when creating an abstract method? Why not just abstract?

Mike Prestwood
Prestwood Software
Send mprestwood a Private Message Visit mprestwood's Home Page
PS Staff
Moderator
Rank: Fleet Admiral

Joined: Oct 2000
Visits: 21411
MB Posts: 980

KB Articles: 872

Location: Citrus Heights, CA USA
Wednesday, June 25, 2008 (Updated 6/25/2008 7:28:57 PM)
Read | +Add Comment

For more information on the history of Pascal Casing:



Regarding...
Camel versus Pascal Casing
What is the difference between Camel Casing and Pascal Casing?

Mike Prestwood
Prestwood Software
Send mprestwood a Private Message Visit mprestwood's Home Page
PS Staff
Moderator
Rank: Fleet Admiral

Joined: Oct 2000
Visits: 21411
MB Posts: 980

KB Articles: 872

Location: Citrus Heights, CA USA
Wednesday, June 18, 2008 (Updated 6/18/2008 9:11:21 PM)
Read | +Add Comment

Thanks Wes for adding to this code snippet. Mucho appreciated!



Regarding...
Associative Arrays in Delphi/Object Pascal (Use TStringList)

TStringList Example
Object Pascal doesn't have a native associative array, but you can use a TStringList the same way. (Alternatively, search the Internet for TStringHash and THashedStringList classes for implementations of a true associative array).


Wes Peterson
Prestwood Software
Send Wes a Private Message Visit Wes's Home Page
PS Staff
Moderator
Rank: Commander

Joined: Jan 2004
Visits: 759
MB Posts: 67

KB Articles: 96

Location: Citrus Heights, CA USA
Wednesday, June 18, 2008 (Updated 6/18/2008 2:25:22 PM)
Read | +Add Comment

Another Delphi candidate to stand in for an associative array is TObjectList. It holds a list of pointers to any object you care to create.  If you have a class with multiple members, you can associate many values - of many different types - in your class instances, then put them in a TObjectList.

One important Boolean propety of TObjectList is OwnsObjects.  If set to True, your TObjectList instance will free the objects it stores when it is freed, as well as upon some other operations (see Delphi help for details). If False, it's up to you to free all the objects - probably before freeing the ObjectList.

The downside (an upside in some cases) to TObjectList is that it has no predefined sorting mechanism, which makes sense, because it really has no idea what it contains.  You'll have to write your own "Compare," a TListSortCompare function.  Again, see Delphi help.



Regarding...
Associative Arrays in Delphi/Object Pascal (Use TStringList)

TStringList Example
Object Pascal doesn't have a native associative array, but you can use a TStringList the same way. (Alternatively, search the Internet for TStringHash and THashedStringList classes for implementations of a true associative array).


Recruiters and Employers

Prestwood Staffing Options
To receive an email notification when a new resume is posted to this group, you must post at least one job posting and specify this group as one of your 3 job posting groups. When there is a reasonable match, either the applicant is near your location, your willing to pay for relocation and/or the applicant is willing to relocate, or remote work is a possibility, our system will automatically notify you.

Employer Overview

 

Featured Delphi Job Posting

Receive New Job Postings? To receive an email notification when a new job posting is posted to this group, you must post your resume and specify this group as one of your 3 resume groups. When there is a reasonable match, either the job is near your location or remote work is a possibility, our system will automatically notify you.

1 Job Postings...

1.  View Job Posting Job #123: book keeper needed
work at home and get payed weekly

Compensation: Negotiable
Industry: Health
Area Code: +44
Physical Location: iowa, IA USA

Ad Dates: 4/7/2008 thru 6/6/2008
Need Now @Prestwood 3+ Months Full-time Corp Pref./Emp. Okay

Delphi Tip: ADS Master/Detail Dataset in Delphi 6

by Scott Wehrly

Tips and techniques for creating a typical master/detail relationship between Advantage Database Server tables in a Delphi 6 form. This article also includes tips for using client datasets in relationships between ADS tables.

Online Delphi Lessons

Let the web teach you Delphi with these short, easy to read and follow, lessons.

Creating and Using Arrays

Simple examples of creating and using arrays in Delphi.

Displaying Things In Delphi

Beginner level introduction to Delphi. Demonstrates how to use ShowMessage and others simple techniques to display messages to your users.

Heterogeneous Joins in Delphi

By Mike Benemelis. A heterogeneous join is when you join tables from two different SQL servers (or a server and a local table) within the same query. This short article will show you how to perform such queries using Delphi.

Packing dBASE and Paradox Tables

Information on reindexing and packing Paradox and dBASE tables.

Using Case Statements

Instead of using a bunch of complex nested if statements, you can use a case statement to provide a more readable alternative so long as the conditionals return an integer.

Using Null Terminated and PChar Strings

ObjectPascal has two varieties of string variables: Pascal strings and PChar strings.

Using Sets

Simple example of using a set.

 

Delphi Articles

COM Collections (125 KB PDF)

Abstract: Correctly implementing COM collections.

By William Pantoja. For developers to communicate among the applications they develop, Microsoft has provided an evolutionary path from DDE, OLE, OLE2, to COM (DCOM allows you to communicate between applications on different or distributed machines).

Developing Web Servers with Delphi
By Kim Berry, Prestwood Software & Consulting

A Delphi web server can be an extension of IIS accessed as COM objects, or it can be a stand-alone program, providing the maximum flexibility to meet particular needs.

Mainframe Connectivity via SNA Server

by Kim Berry, Prestwood Software
Abstract: An overview of using Delphi to connect to the DMV.

Windows Shell Extensions
by Larry J. Rutledge

Shell extensions allow developers to add functionality to the existing Windows™ shell.

Writing High Quality Routines in Delphi
By Mike Prestwood

This Power Point presentation presents coupling, cohesion, and scope from an OO Delphi point of view. This presentation was given at the 1998 August Sacramento Delphi User Group meeting.


Borland

BDE is Dying Discussion

Special Report: BorCon 2001


Database

Common Field Types and Lengths

Common Field Types and Lengths

Common Table Structures

Data Normalization - A Primer

Data Element Naming Standard

Corporate Database Administration

SQL Lesson: Finding Duplicate Values


dBASE

dBASE Table Specifications


Delphi (Delphi Info @ Prestwood)

COM Collections

Creating and Using Arrays

Developing Web Servers with Delphi 5

Displaying Things In Delphi

Heterogeneous Joins in Delphi

Mainframe Connectivity via SNA Server

Packing dBASE and Paradox Tables

Record Types

Using Null Terminated and PChar Strings

Using Case Statements

Using Sets

Windows Shell Extensions

Writing High Quality Routines in Delphi

 


Interbase

Interbase Database Specs


Object Orientation

Introduction to Object Orientation

Polymorphism Discussion


Unified Modeling Language (UML)

UML 1.4 Introduction

 


Delphi Gazette Archive

Although we don't have time any more to release a monthly newsletter, here are is the archive of past newsletters.