![]() |
¿Es procedure ó function ó class?
¿cuando hay declaraciones de este tipo.
son. procedures, function o class? ¿como se usan? ¿por que se usan? Por que no tienen una implementacion de la function o procedure sino solamente su uso. |
Declaraciones del tipo:
Son tipo de evento. Por ejemplo:
Suelen ir acabadas de "event" en el nombre ;) Una vez declarada una variable de ese tipo puedes usarla así:
No sé si lo he explicado bien. En un componente:
crearía el evento "MiEvento" que aparecería en el inspector de objetos (así, como detalle). Salu2. Añado: antes de llamar a un evento como un procedure, hay que asegurarse de que tiene algo asignado:
|
Muchas gracias ixMike
no se me habia ocurrido que fuese un evento. |
Sobre:
type TTmp_Lib = function(s_Data:String):Pchar;stdcall; En este caso vendrá de una Dll. Te muestro otro ejemplo más claro:
Yo diría que es una herramienta más, sabiendo el prototipo (si es un procedimiento o una función además de número y tipos de parámetros de entrada y salida) puedes trabajar con dichas funciones sin saber lo que hacen internamente. Por ejemplo, tú haces un componente que tiene las dos operaciones anteriores (suma y resta), distribuyes la documentación y no distribuyes el código fuente. Con esas definiciones, cualquiera puede hacer una operación llamada Multiplicación. En cuanto a estos señores: Es lo que se denomina Callbacks, ¿funciones retroalimentadas? Podríamos decir (en lenguaje sencillo) que es la implementación de los típicos eventos de delphi pero a nivel de API de Windows. Usando ese ejemplo: Se supone que EnumIniSection leerá todas las secciones que tiene un archivo .ini, y por cada sección que encuentre, hace ejecutar el "EnumProc" que no es más que un método de un objeto:
La API está plagada de callbacks, por ejemplo la clase TTimer, lo único que hace es encapsular en típicas clases de delphi, las llamadas a SetTimer que requiere de funciones retroalimentadas. Por si no ha quedado claro: No hay implementación de esas funciones, porque quien lo implementa eres tú, como usuario del módulo o componente. El que hizo el módulo "EnumIniSection" te da la posiblidad de informarte cuando se lee una Sección y de que tú puedas ejecutar tu propio código. Edito: creo que no me he expresado muy claramente que digamos.... pero a estas horas .... jeje, pregunta si eso...;)) Voy a por otro café a ver si me espabilo :D Saludos |
Para matizar un poco lo dicho por Miguel y Lepe, no necesariamente son eventos, pero sí tipos y variables "procedimentales". En sí los eventos que vemos, por ejemplo, en el inspector de objetos, son propiedades de tipo procedimental. Es decir, que el valor que guardan es una dirección de memoria; la ubicación en memoria de una rutina de código. Pero no todos los valores procedimentales son utilizados para implementar eventos.
En cuanto a las funciones callback, éstas se conocen en castellano como rutinas de retrollamada. En este hilo se habló hace poco sobre el tema de los valores procedimentales. Creo que puede serte de utilidad JXJ: http://www.clubdelphi.com/foros/show...274#post276274 Saludos. Al González. :) |
aaa
Miguel y Lepe, Al , gracias. por decirme que son
"functions y procedures de tipo callback". y por los ejemplos. |
La franja horaria es GMT +2. Ahora son las 07:13:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi