Ho un problema con numero definito Double. Lo calcolo come N1**E1 definiti shortint. Ho creato un piccolo progetto per riprodurre il problema. Accludo schermata. Volendo inviare progetto cosa dovrei mandare? la directory contiene i file qui sotto:
corrado@corrado-zesty:/media/corrado/dati1/lazarus/project1$ ls
backup project1.lps ScrollZ.lps SZ.lpi.bak unit1.lfm
lib project1.lps.bak scrollz.pas SZ.lpr unit1.lfm.bak
project1 project1.res ScrollZ.res SZ.lps unit1.pas
project1.ico ScrollZ.ico SZ.ico SZ.lps.bak unit1.pas.bak
project1.lpi scrollz.lfm sz.lfm sz.pas
project1.lpi.bak ScrollZ.lpi sz.lfm.bak sz.pas.bak
project1.lpr ScrollZ.lpr SZ.lpi SZ.res
corrado@corrado-zesty:/media/corrado/dati1/lazarus/project1$
ci ho salvato altri progetti, ma ho fatto casino, il progetto in prova si chiama project1.
Ciao.
Ho controllato il progetto, visto che chiedevi se è comprensibile.
Comprensibile è comprensibile.
Notavo l'uso delle variabili globali.
Piccola nota "stilistica" se vuoi. Usa variabili locali al metodo o d'istanza alla classe.
Personalmente eviterei l'uso delle variabili globali per fare dei conteggi all'interno di un metodo.
var
Form1: TForm1;
N,E:smallint;
S,S3,S4:Single;
D,D3,D4:Double;
X,X3,X4:Extended;
Nel caso di istanze multiple della form (virtualmente potresti istanziare n volte la stessa form) tutte insisterebbero sulle variabili globali, con confusione nei risultati.
Tutte le variabili possono essere spostate nel metodo che fa i conteggi, per intenderci :
procedure TForm1.ButCalcClick(Sender: TObject);
var
N,E:smallint;
S,S3,S4:Single;
D,D3,D4:Double;
X,X3,X4:Extended;
begin
E := ScrollBarE.Position;
N := ScrollBarN.Position;
S:=N**E;
D:=N**E;
X:=N**E;
{....}
end;
Ma considerato che è un test credo non sia un grosso problema.
Stilgar