Originariamente inviato da CaMpIoN
Non ho capito bene, una funzione cosa restituisce (...)
Facciamo un esempio
codice:
function pippo:integer;
var vettore: array [1..100] of integer;
j:integer;
begin
pippo:=1; // questo è equivalente a result:=1;
j:=pippo; // questo è equivalente a j:=1
vettore[27]:=vettore[pippo]; // qui "pippo" sta a destra=> chiamata ricorsiva
end;
Il codice l'ho preso dal corso su questo sito...
non l'ho fatto io
Poi un'altra cosa :P (cavolo non riesco proprio a capire delphi), un Porgram deve andare in implementation?
Io ho fatto New->Application:
Ho cancellato tutto ciò che c'era e ho incollato il seguente codice:
codice:
Program Editor;
Uses
Forms,
REAbout in 'REABOUT.PAS' {AboutBox},
REMain in 'REMAIN.PAS' {MainForm};
{$R *.RES}
Begin
Application.Title := 'Text Editor';
Application.CreateForm(TMainForm, MainForm);
Application.Run;
End.
Mi da questo problema: 'Error in module Unit1: Declaration of class TForm1 is missing or incorrect.'
Stai facendo un po' di confusione.
Esistono 700 tipi diversi di progetti delphi.
I due più "comuni" sono eseguibili senza interfaccia grafica (a riga di comando) e eseguibili "normali" Windows (con finestre e cavoli vari).
Quello che hai messo è il progetto (.DPR) di un programma Windows.
Questo "progetto" contiene una serie di istruzioni che, in sintesi, creano una o più form del programma e le attivano.
Quando dall'IDE dici di creare un progetto nuovo, vuoto, ti prepara proprio un DPR "scheletro" tipo quello che hai messo.
Nel tuo caso puoi lasciarlo stare (il DPR), in quanto si modifica tipicamente quando è necessario fare qualcosa PRIMA di creare le form (ad esempio verificare che non ci siano due istanze in esecuzione, o quando vuoi disabilitare l'autocreazione delle form, perchè ne hai centinaia ed il programma ci metterebbe molto ad avviarsi etc).
----------
OK, riassumendo che sto andando a pranzo, il DPR che hai messo non va perchè mancano questi file
codice:
REAbout in 'REABOUT.PAS' {AboutBox},
REMain in 'REMAIN.PAS' {MainForm};
Che altro non sono che form dentro reabout.pas/reabout.dfm, e remain.pas/remain.dfm
In supersintesi, un progetto minimale è composto da
nomeprogetto.dpr => compilato diventa nomeprogetto.exe
dove ci sono i vari file compresi. Nel tuo caso puoi usare quello generato automaticamente da delphi
nomefile.pas=> sorgenti pascal di una form "il codice" con le procedure etc
nomefile.dfm=> componenti usati nella form (bottoni, liste, griglie etc)
ce ne sono altri, ma non ti faccio confusione
codice:
program sr;
uses
Forms,
ZSmtp in 'zsmtp.pas' {frmZSMTP},
mainsr in 'mainsr.pas' {frmSR},
Consts in 'consts.pas';
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TfrmSR, frmSR);
Application.CreateForm(TfrmZSMTP, frmZSMTP);
Application.Run;
end.
In questo esempio di sr.dpr vedi un programma SR.EXE, che usa
1) la libreria forms
2) un file zsmtp.pas, con associata una form (quindi pure zsmtp.dfm)
3) un file mainsr.pas, con associata mainsr.dfm
4) un file consts.pas, il quale non ha (apparentemente) una form
Al momento dell'avvio vengono create le due form frmSR e frmZSMTP, e viene avviata quella definita come "principale"