Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
llamar a procedure desde otra procedure

Yo sigo preguntando . Estoy aprendiendo muchisimo con vosotros.

Me he encontrado que, haciendo un evento onkeypress, por ejemplo, necesito llamar desde ahi a otro procedimiento, pero no se ocmo se puede hacer, quiza me estoy saltando las leyes de la programacion?.
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿Y cual es tu problema?
¿No sabes como invocarlo? ¿O es que te falla?

Es sencillo.. como en cualquier lenguaje....

Código Delphi [-]
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
  Procedimiento_Hacer_Algo(Algun_parametro_si_se_necesita);
end;

Creo que a lo mejor no pasa por esto la pregunta... lo veo muy simple...
Ya dirás si es esto...

Espero ser de ayuda.
Saludos
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Por ejemplo si haces un procedimiento:
Código Delphi [-]
procedure TFMainForm.Construyemensaje;
begin
MessageDlg('Este es un emnsaje.',[mbOK],0);
end;
Para llamar a ese procedimiento solo tienes que poner el nombre:
Código Delphi [-]
procedure TFMainForm.FormCreate(Sender: TObject);
begin
Construyemensaje;
End;
Saludos
Responder Con Cita
  #4  
Antiguo 24-04-2007
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
yo creo que si es lo que pregunta....

hace un tiempo me preguntaba lo mismo y cuando veo un lenguaje desconocido me lo pregunto, como dice el amigo anterior asi se llama un procedure y añado una funcion se llama asi ....

Variable:=Funcion_Predefinida(Parametro);

con la salvedad que como ya sabras esta "variable" local o global debe ser del mismo tipo que el devuelto por la funcion....

ahora otra cosa que si que no la veia en otros lenguajes en tiempo de diseño puedes llamar a el procedure de un objeto por medio del Inspector de objetos en la paletra Events como ves te sale un combo y desplegandolo asignas el procedure definido para otro objeto .....

aplicacion de esto...? por ejemplo si quieres que varios botones llamen a la misma rutina .....


Espero haber ayudado .....
Responder Con Cita
  #5  
Antiguo 24-04-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias, he tenido que crear un procedure nuevo, proque si hago llamada a un onkeypress me pide datos(sender:tobject).

gracias de nuevo.
Responder Con Cita
  #6  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que?
Lo conseguistes hacer.
Me quede con la duda, se nota.
Saludos
Responder Con Cita
  #7  
Antiguo 24-04-2007
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Aja para llamar el Onkeypress ....

para llamar este procedure que tiene dos parametros yo uso el siguiente codigo

Código Delphi [-]
var
tecla:char;
begin
tecla:=#13;
edit1keypress(nil,tecla);

end;

a mi me funciona si es una barbaridad hacerlo asi no se ustedes digan.....
que opinas Caral pruebalo....
Responder Con Cita
  #8  
Antiguo 24-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Kenobi
si es una barbaridad hacerlo asi no se ustedes digan....
Pues yo lo digo, es una barbaridad, pero conste que tú diste permiso para hacerlo.

Vamos, no es que esté mal, pero no son maneras de hacer las cosas. Los eventos en delphi (y en cualquier lenguaje) no están para que uno los llame, sino para que el entorno los llame. Nosotros ponemos ahí, el código que queremos se ejecuta cuando tal o cual evento suceda, pero nosotros no sabemos cuando tal evento sucederá y por ello lo dejamos en manos del entorno avisarnos de cuando eso sucede.

Lo que pasa es que muchas veces confundimos el evento en sí con la acción a realizar. Vamos a suponer que tenemos un botón [Guardar] en nuestro formulario, que tiene por objeto guardar el archivo que tengamos abierto. Por un lado está el evento (clic en el botón) y por otro la acción (guardar el archivo).

La acción es un método independiente del botón o de cualquier otro elemento visual; un día podemos decidir usar otro tipo de botón o un menú para lanzar la acción, pero el método para guardar no cambiará.

Podemos colocar el código de guardado dentro el evento:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  { código para guardar el archivo }
end;

pero con esto estaremos atando la lógica de la aplicación (la parte medular) a la interfaz de usuario, siendo que debería ser independiente.

Lo más adecuado sería aislar el código de la acción en un método aparte:

Código Delphi [-]
procedure TForm1.Guardar;
begin
  { código para guardar el archivo }
end;

e invocarlo en el evento:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Guardar;
end;

De esta manera, podemos reusar el método Guardar desde donde queramos, sin tener que recurrir a llamar explícitamente al "evento"

Código Delphi [-]
Button1Click(nil);

Si hacemos esto último, y luego decidimos que ya no queremos usar un botón, sino un menú o algún otro elemento visual, tendremos que cambiar el código en todas las partes donde hallamos llamado a Button1Click(). De la forma que comento, un cambio como el que menciono, sólo requerirá poner la llamada a Guardar en el evento de ese otro elemento visual.

Así pues, cuando se pregunta uno, como llamar a OnKeyPress, la respuesta sería, no lo hagas, en su lugar, llama al método (acción) a la que dicho evento invoque.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
llamar a un Store Procedure BlueSteel Firebird e Interbase 6 05-07-2006 09:01:40
Llamar Un Stored Procedure Desde Un Trigger ibuser Firebird e Interbase 3 26-08-2004 09:51:48
¿Como puedo llamar un Procedure desde otra unit? athal Lazarus, FreePascal, Kylix, etc. 11 17-05-2004 01:05:20
Llamar stored procedure con BDE Ricardo Alfredo Conexión con bases de datos 3 12-09-2003 03:09:31
llamar a un procedure desde otro negama Conexión con bases de datos 1 28-08-2003 01:22:15


La franja horaria es GMT +2. Ahora son las 18:52:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi