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 (https://www.clubdelphi.com/foros/showthread.php?t=79007)

martini002 02-06-2012 04:12:15

Llamar un procedimiento desde otro
 
Saludos Comunidad,

He estado haciendo algunos ejercicios de la universidad
y me he encontrado con un particular problema,
como siempre antes de preguntar he buscado y leido sobre el tema
pero sin la suerte de encontrar algo que realmente me funcione,

Tengo en mi codigo un procedimiento

Código Delphi [-]
procedure TFormEjercicio1.Image1Click(Sender: TObject);

el cual ejecuta algunas cosas
pero como esa imagen la converti en boton
tambien tiene un texto, que al ser clickeado no hace nada
entonces quiero en vez de copiar todo el procedimiento dentro del nuevo

Código Delphi [-]
Procedure TFormEjercicio1.Label3Click(Sender: TObject);

Me gustaria conocer la forma de llamar al primer procedimiento desde el segundo,
les dejo adicional el codigo completo sobre este sencillo programita

Espero esten bien
Best,
Martin


Código Delphi [-]
unit Ejercicio1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TFormEjercicio1 = class(TForm)
    FndPrncEjer1                : TImage;
    IngresarNumero              : TEdit;
    Label1                      : TLabel;
    Label2                      : TLabel;
    Image1                      : TImage;
    Label3                      : TLabel;
    SumaPares                   : TEdit;
    ProductoM5                  : TEdit;
    Label4                      : TLabel;
    Label5                      : TLabel;
    Label7: TLabel;
    procedure Image1Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormEjercicio1            : TFormEjercicio1;
  I                         : Integer;
  Vector                    : Array [1..10] of Integer;
implementation

{$R *.dfm}

Procedure InicializarVector;
Var
   I                        :Integer;
Begin
for I := 1 to 10 do
    Vector[i]:=0;
End;

procedure TFormEjercicio1.Image1Click(Sender: TObject);
var
   Num, Suma, Producto : Integer;

begin
  Num:=StrToInt(IngresarNumero.Text);
  if Num > 0 then
    if I <= 9 then
      if Num MOD 5 = 0 then
        Begin
          Vector[i]:=Num;
          I:=I+1;
          Producto:=StrToInt(ProductoM5.Text)*Num;
          ProductoM5.Text:=IntToStr(Producto);
          Label7.Caption:='Restan '+IntToStr(10-I)+' Numeros';
          IngresarNumero.Text:='';
        End
      Else
        if Num MOD 2 = 0 then
          Begin
            I:=I+1;
            Suma:= StrToInt(SumaPares.Text)+Num;
            SumaPares.Text:=IntToStr(Suma);
            Label7.Caption:='Restan '+IntToStr(10-I)+' Numeros';
            IngresarNumero.Text:='';
          End
        Else
          Begin
            I:=I+1;
            Label7.Caption:='Restan '+IntToStr(10-I)+' Numeros';
            IngresarNumero.Text:='';
          End
    Else
      Begin
        ShowMessage('Solo 10 Numeros Maximo');
      End
  Else
    Begin
      ShowMessage('Numero NO Mayor a 0');
    End;
End;

procedure TFormEjercicio1.Label3Click(Sender: TObject);
begin
  procedure Image1Click(Sender: TObject);// Es lo que he intentado hacer
end;

End.

ecfisa 02-06-2012 05:37:14

Hola martini002.

Cita:

Me gustaria conocer la forma de llamar al primer procedimiento desde el segundo
Ejemplo:
Código Delphi [-]
...
procedure TForm1.Image1Click(Sender: TObject);
begin
 if Sender is TLabel then
    ShowMessage(TLabel(Sender).Name); // muestra Label3 cuando se invoca desde Label3Click
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
  Image1Click(Sender) 
end;
...
Como ves, no estabas tan lejos... :)

Saludos

martini002 02-06-2012 05:58:12

:O

Funciona!
Mil gracias Ecfisa, gracias por tu tiempo,
haz levantado mi animo :)

Saludos


La franja horaria es GMT +2. Ahora son las 09:46:27.

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