Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Tipos Incompatibles? (https://www.clubdelphi.com/foros/showthread.php?t=38524)

RJNewbyte 17-12-2006 16:59:26

Tipos Incompatibles?
 
Hola a todos, estos son mis inicios en Delphi lo estoy aprendiendo por mi cuenta y bueno jeje imaginaros que lio .

Bueno el tema es que intento hacer un calculo de unos datos:
Código Delphi [-]
var
HI, MI, SI, MBI,HItoS, MItoS, SIT, SF, MBF, HF, H1, H2, H3, M1, M2, S1, S2: extended;
begin
  HI := StrToFloat (edit1.text) ;  //Horas Iniciales
  MI := StrToFloat (edit2.text);   //Minutos Iniciales
  SI := StrToFloat (edit3.Text);   //Segundos Iniciales
  MBI := StrToFloat (edit4.Text);  //Megas Iniciales
  MBF := StrToFloat (edit5.Text);  //Megas Finales
  HItoS := HI * 3600;              //Horas Iniciales a Segundos
  MItoS := MI * 60;                //Minutos Iniciales a segundos
  SIT := HItoS+MItoS+SI;           //Segundos Iniciales Totales
  SF := SIT * MBF /MBI;            //Segundos Finales
  HF := SF/3600;                 //Horas Finales
  H1 := SF div XXX;       //AQUI DA FALLO
  H2 := H1*3600;
  H3 := SF mod 3600;    // Y AQUI
  M1 := SF div 60;        //Y AQUI
  M2 := M1*60;
  S1 := H2+M2;
  S2 :=  SF-S1;
  Edit5.Text := FloatToStr (HF);
  Edit6.Text := FloatToStr (H1);
  Edit7.Text := FloatToStr (SIT);
  Edit8.Text := FloatToStr (SF);
  Edit9.Text := FloatToStr (HF);
end;


Pues en este codigo nose porque son incompatibles los datos con los operadores div y mod si alguien me lo pudiera explicar le estaria muy agradecido...suponiendo que ese sea el fallo claro....

Un Saludo :D

droguerman 17-12-2006 20:13:13

div y mod son para operaciones entre tipos enteros intenta esto:
Código Delphi [-]
 H1 := round(SF) div round(XXX)

RJNewbyte 17-12-2006 20:53:26

Gracias, asi no me da error.

Pero nose como enviar el valor resultante a un edit...se supone que round convierte el valor a integer no es asi? que deveria poner en el edit?

Perdon pero me e liado un poco con esto, llevo la tarde mirando como usar el comando trunc para esto aunque creo que no es lo mismo...

Un Saludo :D

fedelphi 22-12-2006 15:21:43

Para mostrar el resultado en un edit debes hacer
Código Delphi [-]
edit.Text:=inttostr(resultado_integer)
donde resultado_integer es el valor que quieres mostrar y debe ser entero.
Saludos

RJNewbyte 28-12-2006 18:56:24

Resuelto
 
Gracias por vuestra ayuda, el problema principal era encontar un comando como TRUNC que finalmente sirvió mejor a mis intenciones que ROUND.

Ademas del problema de los tipos porque tenia que poner algunos valores como INTEGER para poder expresarlos en los EDIT.

Muchas gracias por vuestra ayuda, así da gusto comenzar.
Código Delphi [-]
procedure TForm2.Resultado(Sender: TObject);
var
HI, MI, SI, MBI, HItoS, MItoS, SIT, SF, MBF, HF: extended;
H1, H2, H3, M1, M2, S1, S2: integer;
begin
  HI := StrToFloat (edit1.text) ;  //Horas Iniciales
  MI := StrToFloat (edit2.text);   //Minutos Iniciales
  SI := StrToFloat (edit3.Text);   //Segundos Iniciales
  MBI := StrToFloat (edit4.Text);  //Megas Iniciales
  MBF := StrToFloat (edit5.Text);  //Megas Finales
  HItoS := HI * 3600;              //Horas Iniciales a Segundos
  MItoS := MI * 60;                //Minutos Iniciales a segundos
  SIT := HItoS+MItoS+SI;           //Segundos Iniciales Totales
  SF := SIT * MBF /MBI;            //Segundos Finales
  HF := SF/3600;                 //Horas Finales
  H1 := trunc (SF) div 3600;
  H2 := H1 * 3600;
  H3 := trunc (SF) mod 3600;
  M1 := H3 div 60;
  M2 := M1*60;
  S1 := H2+M2;
  S2 :=  trunc(SF)-S1;
  Edit6.Text := FloatToStr (H1);
  Edit7.Text := FloatToStr (M1);
  Edit8.Text := FloatToStr (S2);
end;
Un Saludo :D


La franja horaria es GMT +2. Ahora son las 00:18:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi