Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Llamar un procedimiento desde otro form (https://www.clubdelphi.com/foros/showthread.php?t=86767)

jeremiselxi 30-09-2014 06:08:54

Llamar un procedimiento desde otro form
 
Buenas noches.

Espero estén bien.

Estoy intentando llamar este procedimiento el cual está en el form1.

Código Delphi [-]

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}


procedure sumar(a: string);
begin
    ShowMessage('Hola '+ a);
end;

Sin embargo en un boton en el form2 estoy tratando de llamar ese procedimiento y no se como.

Podrian ayudarme???

Saludos.

ecfisa 30-09-2014 06:42:02

Hola jeremiselxi.

Hay que darle visibilidad al procedimiento, declarándo la cabecera en la sección interface:
Código Delphi [-]
...
interface
...
var
  Form1: TForm1;

procedure sumar(a: string); // <== 

implementation 
{$R *.dfm}

uses Unit2;

procedure sumar(a: string);
begin
  ShowMessage('Hola ' + a);
end;

Y desde Form2 ya podes hacer:
Código Delphi [-]
...
implementation  
{$R *.dfm}

uses Unit1;

procedure TForm2.Button1Click(Sender: TObject);
begin
  sumar('mundo');
end;

Saludos :)

jeremiselxi 30-09-2014 13:22:10

Muchísimas gracias ecfisa. Una ultima consulta. Yo pregunte esto porque trabajare con muchos procedimientos y funciones sin embargo necesito saber cual es la mejor practica de donde debo colocar todos mis procedimientos
Saludos

roman 30-09-2014 17:58:28

Cita:

Empezado por jeremiselxi (Mensaje 482349)
trabajare con muchos procedimientos y funciones sin embargo necesito saber cual es la mejor practica de donde debo colocar todos mis procedimientos

Ya que lo preguntas te comentaré algunas cosas que espero te aclaren un poco:
  1. Tu procedimiento sumar no está en el form1 como dices. Estar en el form1 significaría que es un método de la clase:

    Código Delphi [-]
    type
      TForm1 = class(TForm)
        ...
      public
        procedure sumar(a: string);
      end;
  2. Tal como está, el procedimento sumar no es más que un procedimiento suelto que resulta estar declarado en la misma unidad que el formulario pero sin ninguna relación con él.

  3. Este tipo de procedimientos no deberían estar ahí.

  4. Los procedimientos sueltos de uso general -y si va a ser usado desde otra unidad ya califica como de uso general- deberían ir en su propia unidad y no mezclados con la clase de un formulario.

  5. Si tienes muchos procedimientos y funciones de uso general te conviene distribuirlos en varias unidades de acuerdo a su uso.

// Saludos

jeremiselxi 30-09-2014 18:42:42

Muchísimas gracias por la aclaración. :)

ecfisa 30-09-2014 20:33:32

Hola jeremiselxi.
Cita:

Empezado por jeremiselxi (Mensaje 482349)
Muchísimas gracias ecfisa. Una ultima consulta. Yo pregunte esto porque trabajare con muchos procedimientos y funciones sin embargo necesito saber cual es la mejor practica de donde debo colocar todos mis procedimientos
Saludos

Coincido en su totalidad con lo que te respondió roman y no se me ocurre una forma mas clara y didáctica de explicarlo.

Saludos :)

nlsgarcia 30-09-2014 21:46:51

jeremiselxi,

Cita:

Empezado por jeremiselxi
...trabajare con muchos procedimientos y funciones sin embargo necesito saber cual es la mejor practica de donde debo colocar todos mis procedimientos...

:rolleyes:

Revisa esta información:
Espero sea útil :)

Nelson.

jeremiselxi 02-10-2014 12:07:24

Cita:

Empezado por nlsgarcia (Mensaje 482388)
jeremiselxi,


:rolleyes:

Revisa esta información:
Espero sea útil :)

Nelson.

Muchisisimas gracias hermano


La franja horaria es GMT +2. Ahora son las 20:05:09.

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