LA PROGRAMMAZIONE SOTTO WINDOWS
Per coloro che provengono dal mondo DOS la programmazione sotto Windows può apparire come
complicata (e in effetti lo è), in questo capitolo verrà introdotto il concetto di Form
e logica RAD.
Nel primo capitolo si era creato il programma Hello World, si provvederà qui di seguito a
creare il programma Hello Windows, naturale evoluzione del primo. Per cominciare basterà
selezionare New Application dal menu File. Il risultato dovrebbe apparire come da figura:
Ora premendo F11 apparirà una finestra simile a quella della figura seguente:
Sarà bene familiarizzare con l'Object Inspector, perchè è da qui che si setteranno
eventi e proprietà dei programmi Windows, ad esempio si cambi le seguenti proprietà come
da tabella:
Nome Proprietà | Valore precedente | Nuovo Valore |
Caption | Form1 | Hello Windows! |
Position | poDesigned | poScreenCenter |
Ora eseguite tranquillamente il programma e come per magia apparirà una finestra con
titolo Hello Windows!, Ma dove sta il trucco? Delphi è un
compilatore orientato alla logica RAD, aspettatevi quindi una
programmazione notevolmente semplificata!
Per vedere il codice del programma vi basterà selezionare units dal menu views
confermando quindi Unit1.
Il codice della form dovrebbe essere il seguente:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
end.
Non preoccupatevi se non riuscite a capire niente!
Provate quindi ad aggiungere un componente Button prelevabile dalla palette degli
strumenti
Una volta inserito il button nella form questo apparirà come un normalissimo pulsante di
windows.
Dall'Object Inspector (F11) selezionate la sezione events, ora cliccate sul pulsante del
form (il Button aggiunto precedentemente) e fate un doppio click sulla sezione onMouseMove
dell'Object Inspector, se avete eseguito il tutto correttamente dovrebbe aprirsi una
finestra di digitazione codice come segue:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
end;
Modificatela nel seguente modo:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Caption:= 'Mouse sul pulsante';
end;
Modificate anche l'evento onMouseDown dell'oggetto Form1 come segue:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Caption:= 'Hello Windows!';
end;
Se avete eseguito il tutto correttamente il vostro programma cambierà il titolo della
finestra a seconda che il mouse sia sul pulsante o sulla form.
IL SECONDO PROGRAMMA WINDOWS
Nel secondo capitolo si era creato quello che forse era il più complesso programma finora
trattato, ora si proverà ad effetture il cd. porting a windows... Creare un nuovo
progetto (New Application dal menu file) e preparare la form come segue:
Nome Oggetto | Nome Proprietà | Valore precedente | Nuovo Valore |
Form1 | Caption | Form1 | Volume cilindro |
Form1 | Name | Form1 | frmMain |
Button1 | Caption | Button1 | Calcolo |
Button1 | Name | Button1 | btnCalcolo |
Button2 | Caption | Button2 | Esci |
Button2 | Name | Button2 | btnExit |
Label1 | Caption | Label1 | lunghezza raggio cilindro |
Label1 | Name | Label1 | lblRaggio |
Label2 | Caption | Label2 | lunghezza del cilindro |
Label2 | Name | Label2 | lblAltezza |
Edit1 | Text | Edit1 | -vuoto- |
Edit1 | Name | Edit2 | txtRaggio |
Edit2 | Text | Edit2 | -vuoto- |
Edit2 | Name | Edit2 | txtAltezza |
TIP | ![]() |
E' buona norma cambiare sempre la proprietà name dando un nome più significativo, si consiglia di vedere a questo proposito l'integrazione sulla Notazione Ungara a fine corso. |
Se il tutto è stato eseguito in maniera corretta la vostra finestra avrà il seguente aspetto:
Ora basterà modificare il codice della unit come segue:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TfrmMain = class(TForm)
lblRaggio: TLabel;
txtRaggio: TEdit;
lblAltezza: TLabel;
txtAltezza: TEdit;
btnCalcolo: TButton;
btnExit: TButton;
procedure btnExitClick(Sender: TObject);
procedure btnCalcoloClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.btnCalcoloClick(Sender: TObject);
var rRaggio,
rAltezza: Real;
iResult: Integer;
begin
rRaggio:= STRtoINT(txtRaggio.Text);
rAltezza:= STRtoINT(txtAltezza.Text);
iResult:= Round(rRaggio*rRaggio*rAltezza*Pi);
Caption:= INTtoSTR(iResult);
end;
end.
L'unica istruzione che forse vi dovrebbe dare problemi è Round che serve per convertire
da Real ad Integer.
In definitiva la programmazione sotto Windows si svolge in quattro fasi:
Inizio di una nuova applicazione Preparazione della form tramite la palette dei componenti Delphi Settaggio delle varie proprietà tramite Object Inspector Definizione dei gestori degli eventi Scrittura del codice
Corso interamente creato da VB.