![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Poliburro, agradesco tu respuesta pero esta lejos de lo que busco. Quizas me explaye demasiado y no meexplique bien.
Bien la situacion es la siguiente: Si el Cliente pone el dedo sobre el panel 8, el evento OnClick de todos los componentes TStaticText del Panel 8, deben apuntar al mismo OnClick de dicho Panel presionado. Cada evento OnClick de cada componente de cada Panel debe apuntar al mismo evento OnClick del Panel para ejecutar la misma accion. Ya sea presionado el Panel 8, 9, 21, 67, o 32..etc. por eso el codigo debe se similar a esto: TStaticText( Components[a] ).OnClick := AsignaOnClick (NumerodelPanel, o StatickText presionado); ***Al llegar a este punto debe ejecutar el evento OnClick asociado al Panel asociado. Independiente cual presiono y en que momento. Dependiendo del color, la hora, el monto, el evento cambia. Lo que quiero es evitarme tener que ir componente por componente cambiando la propiedad OnClick, para dejarla igual al evento del Panel sobre el cual estan. Tengo clara la funcion que requiero, pero no se como devolver el resultado como un evento asignable. Quiero lograr dinamicamente, lo mismo que ocurre cuando yo asigno por codigo lo siguiente: TStaticText( Components[a] ).OnClick := Panel1OnClick; Este Panel1OnClick, nececito cambiarlo dinamicamente por un Panel2OnClick, Panel45OnClick, o Panel21OnClick,..o PanelNOnClick.. Lo que tu me presentas es la asignacion estatica de un evento, y no una asignacion dinamica. Espero haberme explicado bien. Saludos Jose Miguel B. |
|
#3
|
|||
|
|||
|
hola ChackAll, creo estas claro en lo que requiero hacer. Por lo cual te pido, que me expliques un poco como funciona el ultimo ejemplo que me presentas, para ver si es realmente lo que busco.
Saludos Jose Miguel B. |
|
#4
|
||||
|
||||
|
Lo que hace es "pasar" el "click" al panel que contiene el TStaticText que ha generado el evento.
Para hacer lo que tu llamas asignacion dinamica debes considerar lo comentado en mi primer post (el que has ignorado). PD; para ver si es lo que realmente necesitas, te aconsejo probarlo! Suerte |
|
#5
|
|||
|
|||
|
ChackAll, Agradesco tus comentarios, efectivamente debido a la ansiedad por resolver el problema me salte el primer tips que escribiste. Lo probe y funciono de maravillas, genial.
el codigo ahora quedo mas o menos asi. TStaticText( Components[a] ).Font.Style := []; TStaticText( Components[a] ).OnClick := AsignaOnClick(copy( UpperCase(TStaticText(Components[a]).Name), 7, 2 )); function TFMapa1024x768.AsignaOnClick(Indice: string): TNotifyEvent; begin case StrToInt(Indice) of 1: Result := Panel1Click; 2: Result := Panel2Click; 3: Result := Panel3Click; 4: Result := Panel4Click; 5: Result := Panel5Click; 6: Result := Panel6Click; //... end; Claro esta, debere poner 80 case, pero ya es lo de menos. Con tu sencillo pero claro ejemplo e logrado asignar en forma dinamica todos los eventos OnClick de los TStatickText al evento manejado por el Panel. Fuistes de gran ayuda, Genial. ![]() Saludos Jose Miguel B. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Asignar evento OnDrawColumnCell en tiempo de ejecución | gluglu | OOP | 6 | 01-06-2007 13:14:58 |
| Usar evento OnClick en imagen creada en ejecucion | ilcapo | C++ Builder | 8 | 12-04-2007 21:08:51 |
| Asignar evento Oncalcfield en tiempo de ejecucion | el_barto | Conexión con bases de datos | 5 | 06-09-2005 00:08:46 |
| Asignar la ruta de tablas en tiempo de ejecucion | tortelini | Varios | 2 | 19-03-2005 12:13:53 |
| Asignar procedimiento al evento OnClick | neon | OOP | 2 | 28-10-2004 11:53:21 |
|