![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema de asignación de puntero desde una cadena
Saludos:
Tengo el siguiente código y necesito que alguien me explique cómo debo lograr mi objetivo: procedure MyClick(Self, Sender: TObject); begin ShowMessage('Caption del Sender: ' + TButton(Sender).Caption); end; procedure TForm1.Button1Click(Sender: TObject); var M: TMethod; S: string; begin M.Data := nil; // M.Code := @MyClick; <---- así funciona ok S:= 'MyClick'; <---- así asigno el valor del procedure a una variable, puesto que ella va a variar M.Code:= @S; <--- aquí da error (como es lógico), pero es lo que quisiera lograr, que pueda asignar ese puntero a procedure desde una variable Button1.OnClick := TNotifyEvent(M); Button2.OnClick := TNotifyEvent(M); Button3.OnClick := TNotifyEvent(M); end; Gracias |
#2
|
||||
|
||||
Evidentemente, no puedes asignar a un puntero a procedimiento la dirección de una cadena de caracteres.
Para empezar, S debe ser un puntero a procedimiento, igual que la propiedad/campo Code.
Lo de usar "AS" es una cuestión de estilo. ![]() Por cierto, usa el botón de código para formatearlo: ![]() Última edición por Ñuño Martínez fecha: 25-10-2012 a las 14:52:50. |
#3
|
|||
|
|||
Dudas
Gracias por responder..
Es cierto que no debo usar los punteros de strings así, pero fue para dar la idea de lo que necesito. Es que tengo un código que en dependencia de cierto resultado, le voy asignar a un TMenuItem el evento OnClick según la función o procedimiento que me pasen como variable: Digamos
pero luego, puede que cambie de nuevo así:
Entonces con la función o procedimiento "Asignar", utilizaría:
es algo así la idea, ok. Ahora bien, yo puedo usar quizás:
pero desearía saber si lo puedo usar con cadena. pd. No logro poner que el código me salga con estilo delphi, marco el icon, me sobrea el código, pero no lo publica como delphi. Tampoco recibo las respuestas a mis hilos al correo, por qué..? Gracias por todo. Última edición por Casimiro Notevi fecha: 25-10-2012 a las 18:36:34. |
#4
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Creo que para lo que quieres hacer debes usar RTTI. Nunca he usado RTTI así que no sé ni cómo funciona, pero según he leído debería permitirte encontrar funciones, objetos, clases, propiedades y métodos por el nombre.
Respecto a los avisos por correo, los moderadores estamos comprobándolo. ![]() |
#6
|
||||
|
||||
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con Asignacion a un Objeto. | BEPAI | Varios | 12 | 10-04-2007 13:28:35 |
Almacenar la dirección de un puntero en una cadena | abracadabra | Varios | 2 | 17-11-2006 19:16:18 |
Cargar puntero del raton desde un archivo | zurech | Varios | 2 | 28-09-2005 16:34:23 |
Problema con asignacion de valores en un rango | Valeric | Servers | 4 | 06-09-2005 13:44:04 |
Asignacion de cadena a un Dbgrip | elpezfuma | OOP | 1 | 04-06-2003 09:24:09 |
![]() |
|