Newsgroup: it.comp.lang.delphi
Titolo: Da vecchio Pascal a Delphi. Come fare?

Salve
ho vecchie applicazioni Pascal, per intenderci in consolle application, e
vorrei "riconvertire" a Pascal attuale "Delphi".
C'č un modo o č impossibile? Devo rassegnarmi a perderle?
In piů, ci sono funzioni attuali sostitutive di quelle vecchie (goto, delay,
etc..) e nel caso, Delphi puň riconvertirle automaticamente?
Ciao
Grazie, Andrea

 etc..) e nel caso, Delphi può riconvertirle automaticamente?
la goto e' del pascal, e c'e' anche in delphi, per la delay c'e'
un'equivalente funzione sleep, e comunque delphi non riconverte proprio
nulla, quindi dovrai documentarti e sostituire a manina le funzioni non
supportate.
Ciao, Sandro

> ....goto....
se possibile evita di usare i GoTo


Perchč? Problemi?

 ha scritto nel messaggio
news:EZEV8.659$K_4....@twister1.libero.it...

Perchč rendono il programma meno leggibile, meno "debuggabile" e penso anche
meno efficente/veloce (salvo
accorgimenti del compilatore)

"Balbar" <...@...> ha scritto nel messaggio
news:PHLV8.2261$K_4....@twister1.libero.it...

e poi "distruggi" la peculiarita' dei linguagi come il pascal, ovvero
l'essere un linguaggio strutturato
--
Ciao
Gianfranco Marchese
e-mail dgruma@NOPUBBLICITA'
tin.it
 (Da togliere NOPUBBLICITA' se vuoi
rispondermi in privato)
sito internet personale: 
www.turbo-pascal.cjb.net
  Tutto sul Turbo Pascal
1.5

 Perchè? Problemi?
È sempre stato considerato "cattiva abitudine di programmazione". Tutto
quello che puoi fare con il GoTo può essere fatto con cicli e if...then.
Si era persino pensato di eliminarlo in Delphi... ma per ragioni "storiche"
(compatibilità con il Turbo Pascal) si è pensato di lasciarlo lì.
In alcuni libri che parlano del linguaggio Pascal il GoTo non è nemmeno
menzionato... e se lo è... c'è scritto che non si dovrebbe usare.
Il GoTo deriva dal linguaggio assembly... e non dovrebbe esistere in un
linguaggio di alto livello come il Pascal e men che meno in Delphi.
Pensa se da una funzione salti all'interno di una funzione o procedura
diversa... oppure se dall'interno di un metodo di un oggetto salti
all'interno di un altro metodo o addirittura di un altro oggetto.
Inoltre capire il funzionamento e la correttezza dei programmi con il GoTo è
molto + difficile.
Ciao,
   Luca

 Grazie, Andrea
Puoi farlo... ma non in modo automatico.
La funzione Delay non esiste in Delphi... puoi usare la Sleep che è
simile... ma ti blocca anche il rinfresco dell'interfaccia grafica.
Se vuoi evitare questo problema di conviene "costruirti" una procedura di
Delay con un ciclo usando la funzione GetTickCount per sapere quanto tempo è
passato e all'interno del ciclo richiamare il metodo
Application.ProcessMessages... qualcosa di questo tipo:
procedure Delay(msecs:DWORD);
var
   FirstTickCount  :DWORD;
begin
     FirstTickCount:=GetTickCount;
     repeat
           Application.ProcessMessages;
     until ((GetTickCount-FirstTickCount) >= msecs);
end;
(al posto di DWord puoi usare Int64 che sa più di Delphi)
Ma attento che l'utente è libero di cliccare sui pulsanti della tua form in
questo modo e quindi... dovresti prima disabilitarli per riabilitarli alla
fine del delay (se ovviamente il "delay" che vuoi è lungo abbastanza da
essere "un pericolo")... ovviamente se si tratta di una applicazione tipo
Console allora questo problema non esiste.
Comunque non hai le unità Crt, Graph e molte altre. Se cerchi su internet
(su DSP per esempio) troverai dei sostituti.
Ciao,
  Luca

 molto + difficile.
Se non sbaglio i GoTo erano limitati all'interno della singola funzione
(almeno
cosě era sul Turbo Pascal).