![]() |
![]() |
| 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
|
||||
|
||||
|
la verdad tu pregunta no es muy clara...
Delphi tiene tipos procedurales, que son los que sirven de base al mecanismo de eventos. Si queres que no sea un simple procedimiento sino un método (en otras palabras, un procedimiento que pertenezca a un objeto, simplemente añadis "of object" a la declaración del tipo, como veras a continuación. Podes hacer una declaración como la siguiente Código:
Type TProcActualiza = Procedure(Parametro1 : Integer; Parametro2 : String) of object; Procedure TForm1.Buscar(Actualizador : TProcActualiza); Begin HacerLaBusqueda; Actualizador(Parametro1, Parametro2); End; Hola. Procedure TForm2.Buscar; Begin Form1.Buscar(Form2.Actualizar); End; Procedure TForm3.Buscar; Begin Form1.Buscar(Form3.Actualizar); End; Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
||||
|
||||
|
Cita:
![]() |
|
#3
|
||||
|
||||
|
Sobre:
Cita:
Código:
function dfx(fx:tfx;x:real;h:real):real; {funcion que deriva fx respecto a x}
var ii,ji,ki:integer;
p,s:real;
xi:array[0..3]of real;
const
n=3; {tercer grado}
begin
Result:=0;
xi[0]:=x-2*h; xi[1]:=x-h; xi[2]:=x; xi[3]:=x+h;
for ii:=0 to n do
begin
s:=0;
for ki:=0 to n do if ki<>ii then
begin
p:=1;
for ji:=0 to n do if (ji<>ki) and (ji<>ii) then p:=p*(x-xi[ji]);
s:=s+p;
end;
p:=1;
for ji:=0 to n do if ji<>ii then p:=p*(xi[ii]-xi[ji]);
Result:=Result+s*fx(xi[ii])/p
end;
end;
![]() Última edición por Magician^ fecha: 30-03-2004 a las 18:51:16. |
|
#4
|
||||
|
||||
|
Cita:
Te pido disculpas. |
|
#5
|
||||
|
||||
|
Cita:
La función "derivar", acepta una función arbitraria pero esta debe de estar compilada en el código. En realidad también se puede implementar interpretación simbólica, para ello hay un paso intermedio. Inclusive podria ser tan potente como quisieras usando un interprete del tipo "JvInterpreter" del cual puedes obtener información en este enlace: http://homepages.borland.com/jedi/jv...nterpreter.htm Creo que esto debería de tener su propio hilo no? Saludos. |
|
#6
|
||||
|
||||
|
Gracias
Muchas gracias amigos los ejemplos han sido muy explísitos y claros, logré que me compilara pero tengo otro problema el procedimiento que quiero pasar es heredado, osea tiene override en la declaración. con cualquiera de los otros procedimientos el programa funciona pero con este me da error de acceso. Gracias de nuevo y si tienen alguna idea me sería muy útil
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
|
#7
|
||||
|
||||
|
Bueno este mensaje es para que sepan como acavó todo. Pues declaré un procedimiento que su única función es llamar al procedimiento heredado y ese es el que paso como parámetro, no es una solución elegante pero me funciona a la perfección.
gracias de nuevo por su abitual ayuda. un Saludo Yusnerqui.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
|
#8
|
||||
|
||||
|
pero es que con métodos virtuales no debieras tener ese problema, media vez case en el molde, ya que delphi resolverá esto en tiempo de ejecución, y pasará un puntero al método correcto, el ya heredado...
Además, si estas usando herencia, creo que podes evitarte el pasar un método. Simplemente pasá un puntero a la instancia actual de la forma.... y, la forma de busqueda, conociendo este ancestro, que llame al método virtual. Eso es polimorfismo!. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#9
|
||||
|
||||
|
Cita:
Uso Delphi 5 con windows 98 y me da error de acceso a la dirección FFFFFFFF... Estoy al pensar que mi Delphi está pasado de moda Cita:
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|