Componente En Tiempo De Ejecucion
crear un boton en tiempo de ejecucion es facil, pero, ahora si queremos hacer 121 botones en tiempo de ejecucion, y que estos tenga un comportamiento identico al hacerle click no es tan facil
Este es el problema, necesito crear 121 botones que respondan al evento "onmouseclick", "onmouseenter", por lo tanto voy a tener que crear una nueva clase donde esten definido dichos eventos, mi nueva clase se va a llamar TButton1 que hereda de TButton asi ahorrandome definir los 242 eventos, el problema es que, formulario no me envia los eventos a mis objetos. Busque codigo de ejemplo por todos lados, pero no encontre, me gustaria saber si alguien conoce algun link donde tenga el codigo de ejemplo |
pero sabes de eso de definir clases? o simplemente lo estas aprendiendo, lo digo porq si declaras mal los eventos que quieres modificar no vas a poder, si muestras la forma como la haces seguro alguien encuentra el fallo
|
No necesitas definir 121 eventos, basta asignar el mismo a los 121 botones:
donde Botones puede ser un arreglo dinámico de TButton. Lo de la clase está bien, pero te comento lo anterior en caso de que quieras reconsiderarlo. Bye |
Aclaracion 01
tienes razon, no queria meter el codigo porque es c++ y no quiero asustar pero un ejemplo en delphi me viene bien
este es el archivo de cabecera (.h) Código:
//--------------------------------------------------------------------------- Código:
//--------------------------------------------------------------------------- despues de crear mi nueva clase, debo llamarla desde otro lado, la instancio de esta forma Código:
TImage1 *temp= new TImage1(Owner);//tambien coloque como parametro Form1, Application y no vi cambios |
Aclaracion 02
KeyBoy tiene razon, le asigno un property donde escribo lo que quiero que haga, pero el problema esta en que el formulario no me pasa el evento porque en el momento de compilacion no estan los objetos implementados ni definidos, por lo tanto, si hago click en el objeto 98 este se tiene que hacer invisible, pero para eso form me debe pasar el evento a ese objeto, el cual este reaccionara con el property definido por mi, dentro del property va un
this->visible=false; o this.visible:=false; |
No entiendo. Disculpa que escriba en delphi pero me marea C :)
Tú puedes definir el evento en tu formulario:
Y es éste el evento que asignas en la ejecución. Dado que Sender es el control que genera el evento, equivale al this (Self en delphi) de tu clase. Bye |
cerca
keyboy estoy viendo el equivalente de
(Sender as TImage) parece que estamos cerca, dentro de un rato doy la solucion (gracias a keyboy) o sigo con las preguntas |
Quizá me equivoco, pero creo que el equivalente al operador as en C++ Builder es algo que se llama dynamic typecasting.
Bye |
|
Solucionado
Mi codigo de fuente primitivo (porque el programa final es el juego de encerrar al gato, proyecto de la materia gestion de datos -UTN)
juego codigo de fuente: http://rapidshare.com/files/102919304/enc_gato.rar.html captura del programa (al hacer click sobre cualquier imagen esta se hace invisible) el problema estaba en que yo definia los eventos en la nueva clase creada, cuando en realidad tenia ke definier el evento en el formulario (o en el objeto contenedor, esta vez era el formulario) y despues cuando lo creo en forma dinamica asignar al evento de mi objeto instanciado el evento que he creado en el formulario contenedor cosas a tener en cuenta. al crear dinamicamente debo hacer lo siguiente (temp es mi ojeto creado) temp->Parent=Form1; //asignar un objeto contenedor, es necesario para que temp pueda verse temp->OnClick = ImagenClick;//asignacion del evento (gracias keyboy, tu ayuda no solo soluciona los problemas sino suben la moral en el momento de desarrollo, uno no se siente tan solo) y definir en el formulario contenedor el efento ImagenClick (nombrado a discresion) en el archivo cabecera de la forma: Código:
void __fastcall ImagenClick(TObject *Sender); (dentro de __published) Código:
void __fastcall TForm1::ImagenClick(TObject *Sender) al que sender nos envia la ayuda de keyboy me hizo caer en esta pagina que es la fuente y soluciono el problema porque la verdad que no tenia idea para que servia ese tal "sender" FUENTE |
Otra duda similar
Tengo 65 Labels
y dos botones, uno seleccionar todos y el otro ninguno como accedo en un for a cada label para cambiar el color? lblBarcode01.Color := $00549CCD; // todos lblBarcode01.Color := $00F4F4F4; // Ninguno Vi otros hilos pero tratan con propiedades dinamicas o valores y no con objetos como en este caso. La solución por el momento fue 130 lineas demás hehe, pero bueh... Saludos y gracias! |
jop :eek:
Saludos |
Yo me hice un componente TTeclado, que es un teclado completo para una aplicacion que hice hace ya varios años. Lo que hice fue crear un array de TButton y unas const que guardaban la posicion, el tamaño y la posicion de las teclas, en tiempo de ejecucion, en el evento OnCreate el propio teclado generaba los botones de las teclas, les asignaba los eventes OnPress, OnMouseenter, etc. Te puedo pasar el componente completo cuando lo encuentre...
|
Aclaracion 0 :S me perdi
me equivoque de hilo, sory..
|
Cita:
|
uff, que lío. Entre que uno edita y borra el contenido, gente nueva preguntando... ya no sé ni lo que se pregunta.
waly2k1 espero que ese código te sirva de algo, si no, pregunta de nuevo. Raiza ¿puedes explicar más detalladamente lo que necesitas? Porque crear 100 o 300 botones y que hagan exactamente lo mismo no es tan complejo (aunque puede llegar a serlo ;)). Un ejemplo: Bastaría definirse varios eventos de tipo onmouseDown, onEnter, etc y después asignarlo por código. Saludos |
componente
Lo que necesito es que signica cada componente, cual es su empleo en el formulario y para que se utiliza en la programacion a dime si ay una opcion de como darle color al boton
|
Agradecido...
Lepe a mi me vino perfecto el código posteado y la sencillez del mismo,
funciona todo a la perfección. Muchas gracias como siempre. |
Cita:
Por favor respeta el tema del hilo lo que tu estás buscando no viene con la temática tratada en este hilo, veo que eres nuevo/a en clubdelphi. Aprovecho este post para hacerte conocer que existe una guia de estilo (normas). Por favor tomate unos minutos para leerla. Con respecto a tu problema, se resuelve de una manera muy simple: dandole F1 (ayuda) a cada componente. Selecciona el componente que deseas estudiar y presiona F1. La ayuda describe cada propiedad y evento que posee. Por lo que preguntas puedo deducir que eres iniciado en Delphi y/o programación. Para ello sugiero que visites la sección FTP y Wiki, allí encontrarás material de ejemplo y de estudio (manuales, tutoriales, etc). No se puede cambiar el color a un TButton. Para ello hay dos alternativas básicas: 1. Simular un TButton mediante un TPanel. 2. Usar un componente de terceros. Saludos, |
amigo
solo necesitaba informacion para inpartir un contenido que tengo que dar de programacion visual pese que tu podia ayudarme gracias chao
|
Cita:
Yo sólo me limité a responder y ofrecer mi ayuda en lo que pude y creí que era conveniente. Si te explicases mejor, en el hilo correcto (este no es el lugar), podríamos ver de que manera ayudarte. Tu inicialmente haz dicho esto: Cita:
Digo... no tiene mucha ciencia, es un poquito de sentido común. Además como he dicho: existe la ayuda. Al seleccionar un control y presionar F1 irás a la ayuda y podrás leer una descripción del control, podrás además leer e informarte sobre sus propiedades, métodos y/o eventos. Hasta incluso algún que otro ejemplo de uso. ¿Y que mejor que ir a la carpeta demos (que acompaña a la instalación de Delphi) y ponerse a ver un poquito de código y aprender a usarlos? Ahora si tienes flojera y/o que te cuesta leer en inglés... eso ya es otro cantar. He dicho, si te explicas mejor puede que tenga mejores ánimos de ayudarte. Tu más simple respuesta a mi me ha dejado un mal sabor. Como pretendiendome decir "Ha bueno, yo solo quería que me ayudaran" y sin dar ninguna explicación de cual es tu verdadero molestar, duda, problema y/o inconveniente. Como tu piensas en que no te puedo ayudar... pues eso... no te ayudo:mad:. Chao.;) |
amigo
Por que me trata de esa forma si solo soy una principiante de deplhi es hecho alguna programacion pero en visual baisic pero el deplhi me da trabajo porque esta en ingles y en ese aspecto soy un cateto opuesto a la hipotenusa no me gusta soy amante al frances noa al ingles ok perdoname si te ofendi en algo chao
|
amigo
Por que me trata de esa forma si solo soy una principiante de deplhi es hecho alguna programacion pero en visual baisic pero el deplhi me da trabajo porque esta en ingles y en ese aspecto soy un cateto opuesto a la hipotenusa no me gusta soy amante al frances noa al ingles ok perdoname si te ofendi en algo chao
|
Cita:
Esto se soluciona con un traductor, puede ser on-line u off-line. Lo mismo dá. Tal vez su traducción no sea perfecta pero se entiende. Si dices que programaste en VB entonces, ya tienes la mitad del camino hecho. Los componentes/controles son intuitivos. Además le he pasado dos enlaces en donde hay material tanto teórico como práctico. No tiene escusas. Le he dicho que su modo de dirigirse antes no fue el correcto, como no lo ha sido el mio también. Si usted quisisera recibir ayuda, hubiera puesto mayor compromiso de su parte y haber aclarado bien el asunto desde un principio. Al haber dicho: "Solo necesitaba información .... pensé que usted me ayudaría" poca ganas me van a dar de ayudarlo. Por empezar... "Necesito información" es demasiado genérico. ¿Porqué no puntualiza? ¿Que es lo que desea? ¿Sobre qué componentes? ¿Necesita toda la ayuda que ofrece Delphi sobre su VCL en castellano? Puedo seguir preguntando... Lamentablemente usted no ha puntualizado nada. Y vuelvo a decirlo: este hilo no es el indicado. Sus dudas deben tratarse en un hilo aparte. Usted y yo estamos violando la guia de estilo. EDITO: No se... tal vez lo que busca está aquí. Saludos, |
Bueno, mejor la corto. Por que esta pelea no conduce a nada.
Raiza, este enlace (español) se ve interesante y va explicando lo básico. Creo que con ese enlace, lo que hay en las secciones FTP, Wiki, y este mismo foro puedes sacar bastante información. Ahora si debo pedir disculpas a quienes han venido tratando el tema original del hilo por haberlo desvirtuado. Espero que Raiza comprenda que su duda no estaba en el lugar adecuado y que existe una guia de estilo. Saludos, |
Raiza, espero que entiendas que no hay nada personal en lo comentado por Delphius. Esto es un foro y tiene sus normas, si quieres participar, debes (como mínimo) respetar la guía de estilo, punto y aparte.
Si bien es cierto que al iniciarse en los foros puede uno equivocarse situando el mensaje en un hilo incorrecto, ésto no tiene la mayor importancia siempre y cuando pongas de tu parte al tiempo de colgar tus mensajes. Si no te apetece atenerte a las normas, es mejor que crees tu propio foro donde tú redactes las normas ;). Saludos y espero verte por aquí después de leer las normas. |
amigo
Necesito conocer sobre el componente edit,labert,cual es el componente para insertar imagen, video ,button y como hacer un programa sencillo con eso componente
|
Cita:
Parece que no tiene sentido intentar "hablar" contigo. Para insertar imagen... el TImage. Para trabajar con video y audio: TMediaPlayer. ¿Cómo hacer un sistema sencillo? Pues... haciéndolo:D:p... leyendo los manuales, tutoriales, libros, buscando y consultando apropiadamente en los foros. Viendo las demos que vienen con la instalación de Delphi... Nada fuera de lo que ya he dicho. Parezco disco rayado. Ha, y mucha horas de práctica.:rolleyes: Ahora falta que me pida que le haga la tarea...:o Chao. |
amigo
gracias por todo
|
La franja horaria es GMT +2. Ahora son las 03:18:45. |
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