Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pregunta sobre funciones (https://www.clubdelphi.com/foros/showthread.php?t=45349)

atapia 29-06-2007 19:08:00

Pregunta sobre funciones
 
Hola,perdon por molestar pero tengo una duda:tengo un procedure del tipo butonclick y no se si sea posible dentro de el llamar a una funcion;tengo q llamar solo a la funcion o poner toda la funcion dentro del procedure.Este es parte del codigo:



procedure TfrmEtiquetas.AbrirpuertoClick(Sender: TObject);
begin
if OHAUS.Checked then
begin
showmessage('Código para OHAUS');
Function TfrmEtiquetas.LeePeso(var peso: double) : boolean;
var
buff : string;
intentos : integer;
lectura_correcta : boolean;
begin
buff := 'P'+chr(13)+chr(10);
PesoPort.WriteText(buff);
//Una espera inicial de .3 segundos
sleep(300);
intentos := 0;
etc etc etc...

Creo q lo q esta mal es poner asi la funcion no?Ojala alguien me pueda explicar:p .Gracias

eduarcol 29-06-2007 19:11:51

Cita:

Empezado por atapia
Creo q lo q esta mal es poner asi la funcion no?Ojala alguien me pueda explicar:p .Gracias

Menos mal que ya sabes donde esta el error, alli solo debes es llamar a la funcion que debe estar dentro del cuerpo de implementation pero fuera de los procedures

Código Delphi [-]
 
procedure TfrmEtiquetas.AbrirpuertoClick(Sender: TObject);
begin
    if OHAUS.Checked then
    begin
      showmessage('Código para OHAUS');
      VariableBoolean := LeePeso;  
    end;
end;

Function TfrmEtiquetas.LeePeso(var peso: double) : boolean;
var
        buff : string;
        intentos : integer;
        lectura_correcta : boolean;
begin
        buff := 'P'+chr(13)+chr(10);
        PesoPort.WriteText(buff);
        //Una espera inicial de .3 segundos
        sleep(300);
        intentos := 0;
        etc etc etc...
end;

Espero te sirva

atapia 29-06-2007 19:15:34

Gracias!!
 
Muchas gracias, que bueno q no andaba tan perdido como dices jaja,seguire trabajando,si me atoro los volvere a molestar, gracias de nuevo :) .

José Luis Garcí 04-07-2007 18:51:29

Personalmente prefiero meter todas las funciones en un fichero "funciones.pas" y llamarlas con el uses, como a un modulo más.

Un saludo desde Canarias

gabrielkc 04-07-2007 18:58:56

Existe otra forma de usar las funciones cuando solo la vas a llamar desde un procedimiento

Código Delphi [-]
procedure TfrmEtiquetas.AbrirpuertoClick(Sender: TObject);
  Function TfrmEtiquetas.LeePeso(var peso: double) : boolean;
  var
  buff : string;
  intentos : integer;
  lectura_correcta : boolean;
  begin
   buff := 'P'+chr(13)+chr(10);
   PesoPort.WriteText(buff);
   //Una espera inicial de .3 segundos
   sleep(300);
   intentos := 0;
   etc etc etc...
  end;

var Var_boolean:Boolean;
begin
 if OHAUS.Checked then
  begin
   showmessage('Código para OHAUS');
   Var_boolean:=LeePeso(peso);   
  end;
end;


La franja horaria es GMT +2. Ahora son las 03:07:03.

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