Ver Mensaje Individual
  #32  
Antiguo 18-10-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 Gonza10.

Sería interesante saber que orientación te dió tu profesor cuando lo consultaste, eso nos ayudaría a darte sugerencias mas acertadas. Pero como no has comentado los requisitos que te fijó, me quedo con lo que mencionaste en tu primer mensaje: "recién estamos empezando a usar c++ builder". Por tanto sigo pensando que es mucho mas adecuado al nivel usar un modo similar al que te sugerí en el mensaje #20.

Si me dijeras que tenes que trabajar con una interface para manejar un display de matriz de leds, estaría de acuerdo con que te embrolles con matrices y demas yerbas. Pero tratándose de una simple presentación en pantalla, seguir el camino anterior es querer reinventar la rueda y desaprovechar todas las herramientas que C++ Builder (y Windows mismo) ponen a tu disposición.

Si el requisito es un TPaintBox, basta con hacer unos pequeños cambios:
Código PHP:
...
#define TO_LEFT  false
#define TO_RIGHT true

AnsiString oldmsg;
AnsiString spc;
int cont 0;
bool sentidoTO_RIGHT;

/* Inicializar */
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
PaintBox1->Height 33;
  
PaintBox1->Align  alTop;
  
Timer1->Interval 40;
  
Timer1->Enabled  false;
  
btnStartStop->Caption "Comenzar";
  
Edit1->Width 530;
  
Edit1->Text  "PRUEBA DE DESPLAZAMIENTO DE TEXTO";
}

/* Timer OnTimer */
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  if (
sentido)
    
old msg.SubString(msg.Length(), 1) + msg.SubString(1msg.Length()-1);
  else
    
old msg.SubString(2msg.Length()-1) + msg.SubString(11);
  
PaintBox1->Canvas->TextOutA(0PaintBox1->Height >> 1old);
  
msg old;
}

/* Sale de Edit */
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
  
spc spc.StringOfChar(' ',2*Edit1->Text.Length());
  
msg spc Edit1->Text spc;
}

/* Desplazar a la izquierda */
void __fastcall TForm1::btnToLeftClick(TObject *Sender)
{
  
sentido TO_LEFT;
}

/* Desplazar a la derecha */
void __fastcall TForm1::btnToRightClick(TObject *Sender)
{
  
sentido TO_RIGHT;
}

/* Detener - Comenzar */
void __fastcall TForm1::btnStartStopClick(TObject *Sender)
{
  
Timer1->Enabled = !Timer1->Enabled;
  
btnStartStop->Caption Timer1->Enabled "Detener" "Comenzar";

tomate el trabajo de probar este ejemplo y verás que la marquesina funciona sin problemas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita