Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2020
jdelsol jdelsol is offline
Registrado
 
Registrado: dic 2014
Posts: 5
Poder: 0
jdelsol Va por buen camino
Smile 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
Saludos
Responder Con Cita
  #2  
Antiguo 18-09-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 19-09-2020
jdelsol jdelsol is offline
Registrado
 
Registrado: dic 2014
Posts: 5
Poder: 0
jdelsol Va por buen camino
Muchísimas gracias amigo escafandra.

Su respuesta me fue muy útil, era lo que necesitaba...

Saludos
Responder Con Cita
  #4  
Antiguo 24-09-2020
Elcanxd Elcanxd is offline
Registrado
 
Registrado: sep 2020
Posts: 2
Poder: 0
Elcanxd Va por buen camino
Cita:
Empezado por jdelsol Ver Mensaje
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
Responder Con Cita
Respuesta



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
NO sé como resolver este error Angel.Matilla C++ Builder 16 28-09-2015 17:33:01
Solicito ayuda para resolver los problemas de este nuevo componente José Luis Garcí OOP 11 28-08-2013 20:53:28
Como resolver el problema del 0 dauryakatimi2 C++ Builder 6 13-04-2011 13:38:59
Problema con matrices que no logro resolver galmacland Varios 11 20-06-2006 19:03:45
que necesito resolver problema. evgoab SQL 5 12-03-2005 02:19:53


La franja horaria es GMT +2. Ahora son las 13:02:15.


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