![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Ok. Crea dentro de tu componente lo que se llama una "propiedad puente".
Crea en tu componente una propiedad published del mismo tipo que el evento que quieres capturar. Internamente captura el evento del componente TreeView y cuando "salte" el del TreeView, haz "saltar" el que has creado tú en tu componente. No se si me expliqué decentemente... ![]() ![]() ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
Gracias por la respuestai. Creo que te he entendido. Voy a probarlo. Si viera o viese que no, vuelvo a escribir.
Saludos. |
|
#3
|
|||
|
|||
|
No me funciona. He generado lo siguiente:
Código:
published property onChangeTreeNode: TTVChangedEvent read FOnChange write FOnChange; Código:
FTreeViewSymbol.OnChange := onChangeTreeNode; ¿ qué estoy haciendo mal ? Gracias. |
|
#4
|
||||
|
||||
|
la creación de tu componente ¿cuando ocurre?, cuando lo pegas por primera vez en tu form, y en ese momento, OnChangeTreeNode es nil (todavía no se le ha asignado ningún valor).
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
|||
|
|||
|
Hola Lepe.
Siguiendo tu ejemplo me da el error de Not enough actual parameters. Saludos. |
|
#6
|
||||
|
||||
|
Vas bien, la idea es esa, pero no debes apuntar entre los dos eventos directamente, necesitas un procedimiento.
Te lo he puesto de memoria, así que tal vez haya algun error, pero creo la idea se entiende. Prueba y si no te aclaras dilo e intentaré ser más concreto. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#7
|
|||
|
|||
|
Hola Neftali,
Al hacer esta asignación: Código:
FTreeViewSymbol.OnChange := MyOnChangeTreeView; Lo que he hecho es cambiar el parámetro de MyOnChangeTreeView y la llamada al FOnChange y funciona perfectamente Código:
procedure TMiComponente.MyOnChangeTreeView(Sender: TObject; Node: TTreeNode);
begin
if Assigned(FOnChange) then begin
Self.FOnChange(Sender,Node);
end;
end;
) por qué no se puede hacer la asignación directamente, es decir:FTreeViewSymbol.OnChange := FOnChange; Si no entiendo yo mal FOnChange contiene una referencia al procedimiento creado por el usuario final del componente, siendo el mismo tipo de evento y asignandolo al OnChange del TreeViewSymbol estamos pasando esa misma referencia al evento del TreeView. ¿ no ? Gracias por tu ayuda. Gracias también a Lepe. |
|
#8
|
||||
|
||||
|
Siempre he creado los eventos de la forma que tu propones Neftali, pero en este caso, ya que es un "puente", como tú bien has dicho, pensé: "se podrá obviar ese procedimiento intermedio ¿no?"
Perdón, acabo de ver el por qué no se puede obviar ese procedimiento. La verdad, estaba cuestionando la forma de trabajar Delphi, e incluso "quería ir un poco más lejos" perdiendo de vista el horizonte ![]() Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Publicar Web realizada en Intraweb | K-ba | Delphi para la web | 2 | 27-06-2018 19:16:52 |
| publicar pagina web desde pc | Yoli | PHP | 1 | 23-09-2007 02:17:09 |
| publicar en pdf | santiago14 | Varios | 2 | 03-03-2007 14:54:07 |
| ¿Cómo publicar DBGridColumns? | DarKraZY | OOP | 9 | 23-02-2007 18:13:48 |
| Publicar aplicacion .aspx | JuanErasmo | .NET | 2 | 03-11-2006 14:23:04 |
|