Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Necesito resolver este problema (https://www.clubdelphi.com/foros/showthread.php?t=94883)

jdelsol 18-09-2020 17:44:51

Necesito resolver este problema
 
Hola a todos y gracias de antemano

Tengo este problema que no se si es posible hacer de esta manera.

Digamos que he definido una estructura de datos de la siguiente forma:

Código Delphi [-]
type
 TAsentamiento = record
 Valor1: Real;
 Valor2: Real;
 Valor3: Real;
end;

type
 TDeslizamiento= record
 Valor1: Real;
 Valor2: Real;
 Valor3: Real;
end;

type
 TResultados = record
  Asentamiento: TAsentamiento;
  Deslizamiento: TDeslizamiento;
end;

Y luego digamos que tengo que asignar los valores Valor1, Valor2 y Valor3 del Tipo TAsentamiento o TDeslizamiento, y lo quiero hacer de esta manera:

Código Delphi [-]
Var 
 Resultados: TResultados;
 A: TipoDeVariable;

begin
 
 if (condicion) then
  A:= Resultados.Asentamiento 
   else
  A:= Resultados.Deslizamiento;

 With A do
  begin
   A.Valor1:= 3;
   A.Volar2:= 5;
   A.Valor3:= 9;
  end;

end;

Mi duda: Esto se puede hacer? Como tendría que estar definido A para que esto funcione, Cual sería la forma correcta de hacerlo?

Espero me puedan ayudar :D
Saludos

escafandra 18-09-2020 23:55:13

Imagino que lo que quieres es modificar cosas en la variable Resultados, bien en Asentamiento o Deslizamiento según una condición.



Prueba de esta manera:


Código Delphi [-]
type 



TValores = record
 Valor1: Real;
 Valor2: Real;
 Valor3: Real;
end;
PValores = ^TValores;

TResultados = record
  Asentamiento:  TValores;
  Deslizamiento: TValores;
end;



//....................................





var
  Resultados: TResultados;
  A:          PValores;   // Un puntero de tipo TValores
begin
  // Asignamos el puntero según una condicion

  if condicion then
    A:= @Resultados.Asentamiento
  else
    A:= @Resultados.Deslizamiento;

  // Las siguientes asignaciones están cambiando valores en la variable Resultados
  A.Valor1:= 3;
  A.Valor2:= 5;
  A.Valor3:= 9;
end;


Saludos.

jdelsol 19-09-2020 16:56:48

Muchísimas gracias amigo escafandra.

Su respuesta me fue muy útil, era lo que necesitaba... ^\||/^\||/

Saludos

Elcanxd 24-09-2020 22:32:08

Cita:

Empezado por jdelsol (Mensaje 538576)
Muchísimas gracias amigo escafandra.

Su respuesta me fue muy útil, era lo que necesitaba... ^\||/^\||/

Saludos

Que bueno que te pudieron ayudar con tu problema, este foro es para eso, para ayudarnos entre colegas


La franja horaria es GMT +2. Ahora son las 12:30:47.

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