Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
estoy seguro que hay algo erroneo con el parent en la funcion de ecfisa porque veo esto:

Código PHP:
#include <jpeg.hpp>

const int MAX_X 1366;

class 
Ship {
private:
  
TImage*      _image;
  
TTimer*      _timer;
  
TWinControl_parent;
  
TPoint       _route[MAX_X];
  
TPoint       _start;
  
TPoint       _stop;
  
int          _inx;
  
int          _toproute;
  
int calcRoute();
  const 
TPoint &getPt( const int &ix );
  
void setParentTWinControlparent );
  
void __fastcall _timerTimer(TObject *Sender);
public:
  
ShipTWinControlparent, const TPointstart, const TPointstop);
  ~
Ship();
  
__property TWinControlParent = { read _parentwrite setParent };
  
__property TImageImage = { read _imagewrite _image };
  
__property TTimerTimer = { read _timerwrite _timer };
  
__property int TopRoute = { read _toproute };
  
__property TPoint Route[int] = { read getPt };
};

#endif 

donde veo declarada la funcion setParent(TWinControl* parent) pero no veo por ningun sitio donde la invocaria para cambiar el parent del timage

porque ademas.....en el codigo...tengo esto puesto como ha indicado Aguml lo del parent

Código PHP:
 s1 = new Shiptablero->ParentPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  );
 
s2 = new Shiptablero->ParentPoint(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2), Point(480 Form2->Image4->Picture->Graphic->Width/2100 Form2->Image4->Picture->Graphic->Height/2) );
 
s3 = new Shiptablero->ParentPoint(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2), Point(600 Form2->Image11->Picture->Graphic->Width/2350 Form2->Image11->Picture->Graphic->Height/2) ); 
indicando el parent del TImage "TABLERO" pero pese a todo creo que lo dibuja en un Canvas diferente.....creo que el del Form.....porque una de las naves se sale del TImage Tablero y se ve como "vuela" por encima del formulario Tform1 (cuando si fuese dentro del TImage Tablero, al salir de los limites del image no tendria que verse la nave no?

ecfisa.... cual puede ser el problema?

Última edición por Snaked fecha: 07-11-2016 a las 00:15:51.
Responder Con Cita
  #2  
Antiguo 07-11-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Prueba y cambia esto:
Código PHP:
 s1 = new Shiptablero->ParentPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  ); 
Por:
Código PHP:
s1 = new ShiptableroPoint(40 Form2->Image2->Picture->Graphic->Width/2,40 Form2->Image2->Picture->Graphic->Height/2), Point(240 Form2->Image3->Picture->Graphic->Width/2410 Form2->Image3->Picture->Graphic->Height/2)  ); 
Responder Con Cita
  #3  
Antiguo 07-11-2016
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
Cita:
Empezado por Snaked Ver Mensaje
estoy seguro que hay algo erroneo con el parent en la funcion de ecfisa porque veo esto:
...
donde veo declarada la funcion setParent(TWinControl* parent) pero no veo por ningun sitio donde la invocaria para cambiar el parent del timage...
El parent es asignado en el constructor:
Código:
Ship( TWinControl* parent, const TPoint& start, const TPoint& stop);
y despues lo podes cambiar invocando a la propiedad Parent:
Código:
 ...
  __property TWinControl* Parent = { read = _parent, write = setParent };
...
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
muy gracioso ecfisa. .. .jajajajaj...me parto cabronazo


Código PHP:
  for(c=0_start.x_stop.xc++, x++ ) {
    
int y _start.dy * ( _start.) / dx;
    
_route[c]._startx.x;  <---- linea que me ha hecho perder casi 1 semana
    _route
[c].y;
  } 
pero bueno, me he puesto a mirar el codigo hasta que lo he encontrado yo mismo

aqui os dejo por fin, un video de la salida correcta de las famosas "rutas"


https://youtu.be/D2vJIpDC3uI

Última edición por Snaked fecha: 07-11-2016 a las 09:58:21.
Responder Con Cita
  #5  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
Ecfisa:

ahora se me plantea otra cosa.... el dibujado de las rutas en pantalla lo tengo, pero ahora, se me plantea el interrogante de calcular el recorrido por otros SECTORES que no se ven en pantalla pero que aun asi, tendria que calcular las rutas en un lugar "aparte" que no sea visible (un vector quizas?) para que aunque no se vean en pantalla....el proceso de "navegacion" de las naves lleve su tiempo en background

Es decir si una nave sale de LA TIERRA (Sector Vega) en principio, al tener ese sector en pantalla.....vemos la nave por las rutas....bien...ahora cuando salga del sector VEGA.... como puedo hacer para que siga trazando las rutas sin mostrar nada en pantalla pero que es como si la nave siguiese trazando las rutas para que llegado un tiempo mas tarde.....cambiemos por ejemplo al SECTOR OMEGA (destino) y cuando corresponda la veamos "llegar"?

Aguml, tambien va por ti o por vosotros, los que esteis siguiendo este hilo

a ver que ideas me dais que sean elegantes y sencillas de implementar

el Quiz de la cuestión.....es que cada nave lleve una velocidad (eso lo logramos con la velocidad del TTimer incrustado en cada objeto "Ship" que nos dio ecfisa pero necesito una forma de calcular todas las trayectorias a través de los sectores galacticos y mostrar solo las naves cuando Visualicemos un SECTOR en pantalla y haya alguna "nave" pasando por las rutas de ese SECTOR

y gracias tios, me estais ayudando un monton....gracias por estar ahi

Última edición por Snaked fecha: 07-11-2016 a las 11:28:04.
Responder Con Cita
  #6  
Antiguo 07-11-2016
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 Snaked.

Para calcular las rutas podes usar una variante de la función movepixel del mensaje #3 :

Código PHP:
int calculateRoute( const TPointp1, const TPointp2TPointvp )
{
  
int dx p2.p1.x;
  
int dy p2.p1.y;
  
int ix 0;

  for( 
int x p1.xp2.x++ ) {
    
int y p1.dy * ( p1.) / dx;
    
vp[ix].x;
    
vp[ix].y;
    
ix++;
  }
  return 
ix;
}

// Ejemplo de uso:
...
{
  
TPoint ruta[1366];
  
int top =  calculateRoutePoint1010 ), Point500100 ),  ruta );
... 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 07-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
entiendo, voy a probar a ver que resulta

una cosilla.... en esta linea:

Código PHP:
TPoint ruta[1366];  //porque 1366?? por el ancho maximo de la pantalla? 
y otra cosa....

Código PHP:
int top =  calculateRoutePoint1010 ), Point500100 ),  ruta ); 
entiendo que top almacena el resultado final de ix pero que es exactamente? bueno....se que es el numero de iteraciones del bucle for pero para que lo almacenas en un int?

Última edición por Snaked fecha: 07-11-2016 a las 13:59:40.
Responder Con Cita
  #8  
Antiguo 07-11-2016
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.

La cantidad de elementos que fueron almacenados en el arreglo "ruta".

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Copiar TLabel.Canvas sobre TBitmap.Canvas @CSE1970 Gráficos 2 23-10-2013 12:46:53
Impresion linea por linea en tiquete de caja Livey Impresión 2 21-12-2010 00:21:05
uso de DLL creada con VB6 lichi OOP 0 12-09-2005 16:55:46
Como imprimir por canvas un caracter de salto de linea buitrago Impresión 3 30-08-2004 11:10:05
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14


La franja horaria es GMT +2. Ahora son las 15:58: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