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 03-11-2012
mosco mosco is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 20
Poder: 0
mosco Va por buen camino
Repetir varias funciones y salir

Esta puede ser una pregunta basica pero yo no se como resolverla. Llevo poco tiempo con DELPHI. La cuestion es que quiero hacer que se ejecuten varias funciones dentro de un procedimiento y salir cuando pulse otro boton:

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
BorraBuffer;
EnviaDatos();
RecibeDatos;
end;

He probado con repeat...until pero no lo he conseguido.
Responder Con Cita
  #2  
Antiguo 03-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #3  
Antiguo 03-11-2012
mosco mosco is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 20
Poder: 0
mosco Va por buen camino
Disculpas por no pegar el codigo correctamente. No llevo mucho tiempo por aquí, ya lo pego a continuacion para ir practicando:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
  begin
       Memo1.Clear;
      BorraBuffer;
      EnviaDatos();
      RecibeDatos;
   end;

Ahora si....

Gracias.
Responder Con Cita
  #4  
Antiguo 03-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mosco.

Una posibilidad es:
Código Delphi [-]
...
procedure TForm1.btnComenzarClick(Sender: TObject);
begin
  repeat
    Memo1.Clear;
    BorraBuffer;
    EnviaDatos();
    RecibeDatos;
    Application.ProcessMessages;
  until btnTerminar.Tag = -1;
  btnTerminar.Tag := 0;
end;

procedure TForm1.btnTerminarClick(Sender: TObject);
begin
  btnTerminar.Tag:= -1;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 03-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mosco,

Cita:
Empezado por mosco Ver Mensaje
quiero hacer que se ejecuten varias funciones dentro de un procedimiento y salir cuando pulse otro boton:
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  // Declara los procedimientos y funciones a ejecutar
 
  Procedure Procedimiento1();
  Procedure Procedimiento2();
  Function Funcion1(Param1 : Integer) : Integer;
  Function Funcion2(Param2 : Integer) : Integer;

var
  Form1: TForm1;
  CancelLoop : Boolean;

implementation

{$R *.dfm}

// Implementa los procedimientos y funciones a ejecutar

Procedure Procedimiento1();
begin
   // Codigo a ejecutar
end;

Procedure Procedimiento2();
begin
   // Codigo a ejecutar
end;

Function Funcion1(Param1 : Integer) : Integer;
begin
   // Codigo a ejecutar
   Result := Param1; // Devuelves el valor que calculastes en el código
end;

Function Funcion2(Param2 : Integer) : Integer;
begin
   // Codigo a ejecutar
   Result := Param2; // Devuelves el valor que calculastes en el código
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   F1 : Integer;
   F2 : Integer;
   Param1 : Integer;
   Param2 : Integer;

begin

   CancelLoop := False;

   // Carga los paramtros de inicio de las funciones de ejemplo
   Param1 := StrToInt(Edit1.text);
   Param2 := StrToInt(Edit1.text);

   // El Ciclo se repite hasta que la variable CancelLoop sea true
   repeat

      // Lee eventos externos al loop para permitir su cancelación
      Application.ProcessMessages;

      // Ejescuta varias funciones y procedimientos
      Procedimiento1;
      Procedimiento2;
      F1 := Funcion1(Param1);
      F2 := Funcion2(Param2);

   until CancelLoop;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   // Cambia el valor de la variable CancelLoop a True y cancela el loop repeat
   CancelLoop := True;
end;

end.
El código anterior se explica por si mismo.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 03-11-2012 a las 17:56:43.
Responder Con Cita
  #6  
Antiguo 03-11-2012
mosco mosco is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 20
Poder: 0
mosco Va por buen camino
Gracias ecfisa y Nelson. Funciona perfecto. Sin vuestra ayuda no se lo que hubiera tardado en implementarlo.

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
Repetir una accion lmpadron C++ Builder 5 29-07-2010 20:21:31
ejecucion de varias funciones pulpin C++ Builder 2 06-03-2008 04:05:36
Es sano repetir? Johnny Q OOP 4 12-07-2005 21:09:51
Varias dudas de funciones seduerey API de Windows 9 30-04-2004 17:36:17
no repetir campos ebeltete SQL 5 22-05-2003 04:32:53


La franja horaria es GMT +2. Ahora son las 12:44:20.


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