I like the way this thread has turned into a discussion of programming languages and techniques. Although this is a Picaxe forum, we don't live in a vacuum.
To that end, here are some good PC resources. All this stuff is free.
The Explorer Series from CodeGear (Borland):
Turbo Delphi for Win32, Turbo Delphi .NET, Turbo C++ for Win32, Turbo C++ .NET
These are serious packages, containing everything needed for development up to the commercial level. Even though the packages are free, they include Borland's latest and greatest to support even sophisticated Internet client and server apps.
And Delphi has always been the best package for developing robust database apps. That hasn't changed in the free Turbo Explorer versions. All of their database tools from their professional packages are included.
Any of these packages would be good values at USD $300. CodeGear is giving them away for free. (Awww, they wouldn't be trying to get you hooked on their $1700 packages, would they?)
There's a fairly steep learning curve with any of these packages. But I've found a couple of good sets of Delphi/Win32 videos that ease the pain:
3DBuzz VTM series
High energy, superb videos presented by a natural teacher. Buzz and his assistants start from the very beginning and move up to a level where you'll be comfortable doing actual work on your own.
There are presently 9 videos on their site, each lasting up to two hours. I hope there will be many more.
Nick Hodges "30 Videos in 30 Days".
Nick is CodeGear's Delphi product manager. He knows the package inside and out. Starting from the beginning, Nick takes you through the installation of Delphi/Win32 right up through the development of a complete application.
His course takes you farther than that presented by 3DBuzz, but in less depth. Each is about 15 minutes in length. I hope that 3DBuzz will, eventually, cover as much ground as Nick does.
A couple of videos in Nick's series were corrupt for me, even after repeating the download.
The beginning videos in either series will be enough to get you up and running, and help to get you comfortable with Delphi/Win32.
(By the way... Delphi is Borland's term for the development environment, libraries, and components that greatly ease the pain of Windows development. The actual language used in Delphi is Object Pascal.)
If anyone is contemplating a career as a programmer, either Delphi or C++ experience (or both) would look good on a resume.
(Back in 2000, I was contacted by the Federal Aviation Agency, simply because I'd published some freeware written in Delphi. They were hot and hungry for Delphi people back then, and looking for contract programmers. Didn't work out for me -- they wanted database heavies -- but it proves my point. If you get good at Delphi, jobs might come looking for
you.)
LCC-Win 32 C-language Development System
I've installed this one, but haven't played with it much. The Win32 API is supported, but there aren't any wrappers to insulate you from low-level Windows calls. Naked Windows programming has always been a scary undertaking, and has only gotten worse since the Win 3.1 days when naked programming was your only option if you wanted to write Windows apps.
(Uhhh... I didn't phrase that very well. Just for the record, I've always worn at least jeans and a t-shirt while programming.
)
LCC-Win 32 is good for small DOS-type console apps that run in Windows' Command Prompt box as you explore fundamental concepts and test algorithms. The package is great for learning basic C programming.
The language supports some, if not all, the features of C++. Extensive documentation is available for download on the LCC-Win site.
Stanford University's "Essential C"
I've mentioned this before, and I'm sure I will again. I can't say enough good about this excellent tutorial.
You can spend a lot of money buying books that won't teach you as much or as well as you'll get from this tutorial.
I've heard that Microsoft is giving stuff away, too. I'm sort of a non-Microsoft guy, though, so I haven't looked into their offers. (I was terrified at a young age by Microsoft C, way back in the early DOS days, and it stuck.)
Perhaps someone on here, who is familiar with the free Microsoft offerings, could put together a list of the available Microsoft resources.
Good luck!
Tom
Edited to add:
I just realized that I had a pretty good Delphi example sitting right here on my drive. I was fooling with the program below, just this morning, experimenting with Delphi's media playing capabilities.
This program implements a media player that will play, at least, .mp3 audio and .avi video files. It should work with .wmv video, .wav audio, and just about any other format natively supported by Windows.
There's not much of a user interface, but it certainly plays media.
Code:
{
TMediaPlayer and DirectX Media Player experiment
This program uses TMediaPlayer generically, so it can play
many types of media files. Tested, so far, on MP3 audio and
AVI video.
}
unit frmMain;
// ListBox1.Items.Assign(OpenDialog1.Files);
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls,
MPlayer, Buttons;
type
TMain = class(TForm)
txtFolder: TStaticText;
btnOpenFolder: TBitBtn;
tmrProgress: TTimer;
OpenDialog1: TOpenDialog;
lbNames: TListBox;
lbPaths: TListBox;
ScrollBar1: TScrollBar;
mpPlayer: TMediaPlayer;
procedure lbNamesClick(Sender: TObject);
procedure btnOpenFolderClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
{$R *.dfm}
procedure TMain.btnOpenFolderClick(Sender: TObject);
// Illustrates the use of multiple file select with TOpenDialog
var
i : integer;
begin
if OpenDialog1.Execute = True then begin
lbNames.Clear;
lbPaths.Clear;
if OpenDialog1.Files.Count > 0 then
for i := 0 to OpenDialog1.Files.Count - 1 do begin
lbPaths.Items.Strings[i] := OpenDialog1.Files.Strings[i]; // Paths
lbNames.Items.Strings[i] :=
ExtractFileName(OpenDialog1.Files.Strings[i]); // just File names
end;
end;
end;
procedure TMain.lbNamesClick(Sender: TObject);
// Play the media file from dblclick-selected file
var
MediaFile : string;
begin
// if the list is empty don't do anything
if lbPaths.Items.Count = 0 then
exit;
MediaFile := lbPaths.Items.Strings[lbNames.ItemIndex];
// Chechk again if it exists
if not FileExists(MediaFile) then begin
ShowMessage('Media file does not exist.');
exit;
end;
mpPlayer.Close;
mpPlayer.FileName := MediaFile;
mpPlayer.Open;
end;
end.