• Jueves 25 de Abril de 2024, 06:13

Autor Tema:  Dificil De Explicar En Un Titulo...  (Leído 3242 veces)

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Dificil De Explicar En Un Titulo...
« en: Martes 26 de Septiembre de 2006, 14:47 »
0
Hola

Tengo una duda que "tratare" de explicar a continuacion  :P

Tengo un Form el cual contiene muchos circulos (creados como imagenes), uno al lado del otro, los cuales son llamados: Led1, Led2, .... , etc.
Abajo tengo un memo

Lo q yo quiero hacer es q cuando se pulse un boton, en el memo se escriba 1 o 0 dependiendo si el color del circulo es rojo o blanco...

Se me habia ocurrido hacerlo con un for, seria algo asi:

For (i=0; i<=N; i++){
  if (Ledi->Brush->Color==clRed)
    memo1->(AGREGAR 1)
  else
    memo1->(AGREGAR 0)
}

Pero estoy seguro que eso no va a funcionar, pero tengo mas o menos la idea, me falta saber como puedo hacer esa parte de "Ledi" para que sea Led1, Led2, ...  :unsure:

y tampoco se como agregar un 1 o un 0 al memo...   &lt;_&lt;

si alguien me puede explicar esas dos cosas q lo haga por favor  ;)

Gracias

Saludos

Adrian
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Dificil De Explicar En Un Titulo...
« Respuesta #1 en: Martes 26 de Septiembre de 2006, 16:22 »
0
porque no simplemente haces que al darle clic en el circulo que agregue un 0 o un 1? :whistling:

Simplemente programa el evento OnClick del objeto y listo.

 :D Para agregar una linea a un Memo se hace así:

Memo1->Lines->Add("Texto que quieres.");

Podrias también limpiar el Memo antes de agregar el texto:

Memo1->Clear();
Memo1->Lines->Add("Texto que quieres.");

y eso es todo. Espero haberte ayudado, saludos. :smartass:
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Re: Dificil De Explicar En Un Titulo...
« Respuesta #2 en: Martes 26 de Septiembre de 2006, 17:10 »
0
Creo que lo que quiere decir es que se inserten en un memo 0's y 1's dependiendo del color que tenga, no que se inserten al hacer click sobre los leds. Entendi bien? Si metieras los leds en una tabla, si funcionaria el for que has puesto no?

Vatoicc

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #3 en: Martes 26 de Septiembre de 2006, 18:29 »
0
Creo que podiras hacer esto:

Código: Text
  1.  
  2.    TShape *Punt[8];
  3.    Punt[0] = Shape1;
  4.    Punt[1] = Shape2;
  5.    Punt[2] = Shape3;
  6.    Punt[3] = Shape4;
  7.    Punt[4] = Shape5;
  8.    Punt[5] = Shape6;
  9.    Punt[6] = Shape7;
  10.    Punt[7] = Shape8;
  11.  
  12.    AnsiString Linea = &#34;&#34;;
  13.    for( int i = 0; i &#60; 8; i++ )
  14.       if( Punt[i]-&#62;Brush-&#62;Color == clRed )
  15.          Linea += &#34;1&#34;;
  16.       else
  17.          Linea += &#34;0&#34;;
  18.  
  19.    Memo1-&#62;Lines-&#62;Append( Linea );
  20.  
  21.  

Este ejemplo es para 8 Leds

Te adjunto el programa, espero que te sirva...
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
La paranoia es una vision mas sutil de la vida

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #4 en: Martes 26 de Septiembre de 2006, 20:15 »
0
Muchisimas gracias a todos por responder, especialmente a vatoicc que le dio justo en el clavo  ;)

Aclaro q soy un poco como nuevo en todo esto del builder, se de C, pero esto de orientado a objetos es nuevo apra mi, pero algo me als ingenio

resulta que yo, para explicar mas facil resumi un poco lo q tengo q hacer...

yo tengo una matriz de 14 filas y como 40 columnas de leds (Shapes), q al hacerles click tienen q pasar primero a rojo, despues a verde, despues a amarillo, y de nuevo a blanco... eso lo pude hacer barbaro gracias a lo q vos me dijiste de la sig forma (aclaro q al principio estaba pegando el mismo codigo a todos los leds  :P )

Código: Text
  1.    TShape *Punt = (TShape *)Sender;
  2.    if( Punt-&#62;Brush-&#62;Color == clWhite )
  3.       Punt-&#62;Brush-&#62;Color = clRed;
  4.    else if( Punt-&#62;Brush-&#62;Color == clRed )
  5.       Punt-&#62;Brush-&#62;Color = clLime;
  6.    else if( Punt-&#62;Brush-&#62;Color == clLime )
  7.       Punt-&#62;Brush-&#62;Color = clYellow;
  8.    else if( Punt-&#62;Brush-&#62;Color == clYellow )
  9.       Punt-&#62;Brush-&#62;Color = clWhite;
  10.  

Mejor acalro un poco mas para q pienso utilixar esto:
Resulta que estoy haciendo un cartel electronico con un microcontrolador PIC, y quiero hacer este programa para q pueda hacer ciertos dibujos y que me genere el codigo para poner en el pic, asi q en el memo tendria q combinar algunas lineas de programacion con algunos 1 o 0 dependiendo del color de los leds, esa aprte creo q me la puedo ingeniar...


Ahora la parte que me pusiste vos para el memo trate de modificarla de acuerdo a lo que yo necesitaba (para probar deje q me ponga 1 si es rojo y 0 si es otro color y unicamente en la primer columna) lo deje de la siguiente forma:

Código: Text
  1.    TShape *Punt[40][14];
  2.    Punt[1][0] = Shape1;
  3.    Punt[1][2] = Shape2;
  4.    Punt[1][3] = Shape3;
  5.    Punt[1][4] = Shape4;
  6.    Punt[1][5] = Shape5;
  7.    Punt[1][6] = Shape6;
  8.    Punt[1][7] = Shape7;
  9.    Punt[1][8] = Shape8;
  10.    Punt[1][9] = Shape9;
  11.    Punt[1][10] = Shape10;
  12.    Punt[1][11] = Shape11;
  13.    Punt[1][12] = Shape12;
  14.    Punt[1][13] = Shape13;
  15.    Punt[1][14] = Shape14;
  16.  
  17.    AnsiString Linea = &#34;&#34;;
  18.    for( int j = 1; j &#60;= 14; j++ )
  19.       if( Punt[1][j]-&#62;Brush-&#62;Color == clRed )
  20.          Linea += &#34;1&#34;;
  21.       else
  22.          Linea += &#34;0&#34;;
  23.  
  24.    Memo1-&#62;Lines-&#62;Append( Linea );
  25.  

Cuando lo ejecuto no me da ningun error, los leds se ponen de los colores perfectos pero cuando presiono el boton me da un error de:
"Debugger Exception Notification" Project2.exe raised exception class EaccessViolation with message 'Access violation at adres......' y sigue  :P
y ahi se me cuelga todo

si me pudieras solucionar ese ultimo problema creo q ya lo tengo :rolleyes:

Gracias de nuevo...
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #5 en: Martes 26 de Septiembre de 2006, 20:23 »
0
JAJAJAJA

Leyendo el mensaje q puse me di cuenta el error  :P

donde decia  Punt[1][0] = Shape1;

era:  Punt[1][1] = Shape1;

ahora funciona perfecto esa parte , es hora de ir agregando las otras cosas

Cualquier cosa aviso, gracias
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

Vatoicc

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #6 en: Martes 26 de Septiembre de 2006, 22:21 »
0
oye Devilcpc, yo tambien programa para PIC's y estoy interesado en hacer una pantalla de leds, pero no se como hacer la matriz, si pudieras ayudarme con el diagrama para darme una idea de los que estas haciendo.

Y me llama mucho la atencio tu trabajo, pues al parecer estas manejando una pantalla RGB
La paranoia es una vision mas sutil de la vida

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #7 en: Miércoles 27 de Septiembre de 2006, 19:53 »
0
Bueno, por empezar quiero decir q ya esta funcionando barbaro el programa, muchas gracias, se los voy a adjuntar por si a alguien le interesa verlo...
Lo q quiero saber es como poder identificar si se presiona el boton derecho o izq del mousse, pq con ambos me hace la misma funcion y quisiera hacer 2 cosas separadas...

en cuanto al cartel q quiero hacer es un poco complicado de explicar...

soy estudiante de 4° año de la carrera ing electronica en argentina y este año tengo una materia que se llama tecncias digitales 2 y nos piden q realizemos un proyecto final

bueno, a mi se me habia ocurrido hacer un cartel giratorio, o sea, es una columna de leds la cual gira a gran velocidad con un motor (alrededor de 1500 RPM) y al ir girando los leds se prenden y apagan para formar palabras ya q la retine del ojo retiene la imagen nosotros vemos la palabra completa

en internet hay varios ejemplos, pero la gran mayoria son relojes, no carteles, a continuacion les voy a dejar algunas paginas para q vean de lo q me refiero:

http://www3.sympatico.ca/surfin.dude/creat...pclk/blick.html

http://hem.bredband.net/robinstridh/avr/rot_led/index.html

http://zuiderzeemuseum.netfirms.com/url5.p...iam/william.htm

yo me adelante y empeze a probar con un microcontrolador que poseo es un Basic Stamps q se programa en basic, lo cual es muy facil, pero a pesar de q ya pude escribir algunas palabras me encontre con muchas limitaciones y dificultades de este micro lo cual lo hace inutil, pero me sirve para ir probando hasta q me interiorize mas con los intel o los pics

Tambien poco algunas fotos de un prototipo q hice para ver si funcionaba la idea...
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Dificil De Explicar En Un Titulo...
« Respuesta #8 en: Miércoles 27 de Septiembre de 2006, 20:00 »
0
Aca esta la foto q no pude adjuntarla en el anterior
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --