Amigos del foro:
Solucionado (bueno eso creo). Por fin dejo de botar error en las otras maquinas (aunque solo probé en dos). Que hice??? seguí sus consejos y las cosas ahora funcionan bien, ademas el misterio de las maquinas embrujadas ya me va a dejar dormir tranquilo.
solución:
1) Cambie todos los tipos de datos de Extended a Currency. Ademas revise minuciosamente el código y reemplace los extended que correspondían tanto por Currency (los valores en moneda) como a Integer los valores como cantidades por ejemplo.
2) inicialice todas las variables. No estaba iniciando las variables de hecho las incluia en el "var" pero no las ponia a 0. (Aporte de AzidRain)
Como ejemplo de los procedimientos que cambie pongo uno solo a fin de no ocupar mucho espacio y como ejemplo de la socucion que le dimos a este lio.
Código Delphi
[-]
Procedure TFVenta.SumaCantidad;
var
Suma, a, d: Currency;
c, k: Integer;
begin
a:= 0;
c:= 0;
d:=0;
a := StrToCurrDef(StringGrid1.Cells[5, StringGrid1.Row],0); c := StrToIntDef(Edit8.Text,0); d:= (a*c);
StringGrid1.Cells[4, StringGrid1.Row]:= Edit8.Text; StringGrid1.Cells[6, StringGrid1.Row]:= FormatCurr('$ #0,.00',d);
StringGrid1.Cells[8, StringGrid1.Row]:= CurrToStr(d);
Suma := 0;
StringGrid1.Cells[7, StringGrid1.Row]:= StringGrid1.Cells[1, StringGrid1.Row];
for k := 0 to StringGrid1.RowCount - 1 do
if k <= StringGrid1.RowCount - 1 then
Suma := Suma + StrToCurrDef(StringGrid1.Cells[8, k + 1],0);
Edit7.Text:= FormatCurr('$ #0,.00', Suma);
Edit5.Text:= CurrToStr(Suma);
end;
En cuanto a los de las maquinas embrujadas; creo que la intuición de un amigo llamado jose cuando plantea lo siguiente es valida y oportuna por demás
Cita:
Y en cuanto al error que te da en algunas máquinas podría proceder de la cadena de conversión a texto que te he comentado antes ó del viejo error de punto flotante que tenían los Pentium 4 y algún otro procesador. Dentro de Delphi hay una opción en el compilador para evitarlo. De todas formas si usas variables "currency"(son enteros) no tendría que darte el problema.
|
Asi las cosas, ahora funcina bien en todas partes. Un agradecimiento a AgustinOrtu, Casimiro Notevi, Al González, AzidRain y todo el foro que siempre tiene para mi una voz de aliento y sus aportes desinteresados y efectivos por demas.