Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-05-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver, te pongo un ejemplo ultra simplificado de que es lo que comprendí y como lo haría, tal vez nos ayude a entendernos.
Código Delphi [-]
...
implementation

type
  TPlanet = record
      l,b,r: Extended;
  end;
  TvPlanet = array[1..9] of TPlanet;

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Rows[0].CommaText := ',L,B,R';
  StringGrid1.Cols[0].CommaText := ',Mercurio,Venus,Tierra,Marte, Jupiter,Saturno,Urano,Neptuno,Plutón'
end;

procedure CargarPlanetas(var v: TvPlanet);
var
  i: Integer;
begin
  for i  := 1 to 9 do
  begin
    v[i].l := i;
    v[i].b := i;
    v[i].r := i ;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  v: TvPlanet;
begin
   CargarPlanetas(v);
   for i := 1 to 9 do
   begin
     StringGrid1.Cells[1,i] := FloatToStr(v[i].l);
     StringGrid1.Cells[2,i] := FloatToStr(v[i].b);
     StringGrid1.Cells[3,i] := FloatToStr(v[i].r);
   end;
end;
end.

El resultado:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 04-05-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Si, esto es lo que necesito pero en la procedure de CargarPlaneta que colocastes utilizo la anterior o la que estas colocando alli??

Código Delphi [-]
procedure CargarPlanetas(var VP: TvPlanetas);
begin
  LBR_For_Sun(At_JDE, VP[1].Lat, VP[1].Lon, VP[1].Rad);
  LBR_For_Mercury(At_JDE, VP[2].Lat,VP[2].Lon ,VP[2].Rad);

  ...

  LBR_For_Uranus(At_JDE, VP[8].Lat, VP[8].Lon, VP[8].Rad);
  LBR_For_Neptune(At_JDE,VP[9].Lat, VP[9].Lon, VP[9].Rad);  
end;

Esta es la parte que me confunde un poco, ya que ahora la procedure luce asi

Código Delphi [-]
procedure CargarPlanetas(var v: TvPlanet);
var
  i: Integer;
begin
  for i  := 1 to 9 do
  begin
    v[i].l := i;
    v[i].b := i;
    v[i].r := i ;
  end;
end;

Cual es la correcta?
Responder Con Cita
  #3  
Antiguo 04-05-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En tu caso creo que es la primera, la que utiliza las funciónes "LBR_For_xxxx" (de las que desconozco todo). La del ejemplo fué eso; un ejemplo.
Es decir, deberías llenar cada uno de los elementos del arreglo de planetas con los valores que obtengas de cada función "LBR_For_xxxx" que le corresponda.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 04-05-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Hola

Esto es lo que hace LBR_For_Mercury...hay un procedure por cada planeta

Código Delphi [-]
procedure LBR_For_Mercury(At_JDE:extended; out L: extended; out B: extended; out R: extended);
var
   T: extended;

begin
  //Compute T as Julian millennia since J2000.0
  T := (At_JDE - 2451545) / 365250;
       
  //Compute heliocentric, ecliptical Longitude L in radians
  L := Mercury_L01(T) + Mercury_L02(T);

  //Compute heliocentric, ecliptical Latitude B in radians
  B := Mercury_B01(T) + Mercury_B02(T);

  //Compute heliocentric distance R in AU
  R := Mercury_R01(T) + Mercury_R02(T);   
  
  //Convert longitude and latitude from radians into degrees.
  L := L * 45 / Arctan(1);
  
  If Abs(L) >= 360 Then L := L - 360 * Int(L / 360);
  If L < 0 Then L := L + 360;
  
  B := B * 45 / Arctan(1);

end;
Responder Con Cita
  #5  
Antiguo 04-05-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Entonces, si declaras tu arreglo de planetas así:
Código Delphi [-]
type
  TPlanet = record
      L,B,R: Extended;
  end;

  TvPlanet = array[1..9] of TPlanet; // Mercurio,Venus,Tierra,Marte, Jupiter,Saturno,Urano,Neptuno,Plutón

De este modo podras cargar sus valores de una vez:
Código Delphi [-]
procedure CargarPlanetas(At_JDE:extended; var v: TvPlanetas);
begin
  LBR_For_Sun(At_JDE,     v[1].L, v[1].B, v[1].R);
  LBR_For_Mercury(At_JDE, v[2].L, v[2].B, v[2].R);
  LBR_For_Venus(At_JDE,   v[3].L, v[3].B, v[3].R);
  LBR_For_Earth(At_JDE,   v[4].L, v[4].B, v[4].R);
  LBR_For_Mars(At_JDE,    v[5].L, v[5].B, v[5].R);
  LBR_For_Jupiter(At_JDE, v[6].L, v[6].B, v[6].R);
  LBR_For_Saturn(At_JDE,  v[7].L, v[7].B, v[7].R);
  LBR_For_Uranus(At_JDE,  v[8].L, v[8].B, v[8].R);
  LBR_For_Neptune(At_JDE, v[9].L, v[9].B, v[9].R);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 04-05-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Y para llenar el StringGrid?
Responder Con Cita
  #7  
Antiguo 05-05-2020
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 948
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Cita:
Empezado por compuin Ver Mensaje
Y para llenar el StringGrid?
Estimado, tiene algún otro requerimiento?



Amigo espero lo tome a bien, ponga algo de su parte investigue, lea, busque, pruebe código, meta las manos...

Recursos hay muchos...

Saludos cordiales
Responder Con Cita
  #8  
Antiguo 05-05-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Creando

Código Delphi [-]
TvPlaneta : array [1..9] of TPlaneta;

me arroja este error

Código Delphi [-]
[Error] Unit1.pas(133): '=' expected but ';' found
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ListBox y DelimitedText para Cargar y Guardar Datos Jovalca Varios 8 19-06-2014 15:40:57
ListView codigo para cargar datos locotenentul Varios 1 21-07-2008 05:55:34
cargar imagen para base de datos Max_E. Conexión con bases de datos 1 25-03-2008 15:58:42
Cargar array of char de un archivo binario JosepZ Varios 9 12-11-2007 23:28:16
Tiempo para cargar datos en bd jsc Firebird e Interbase 1 26-03-2004 10:00:31


La franja horaria es GMT +2. Ahora son las 22:38:13.


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
Copyright 1996-2007 Club Delphi