[Lazarus-es] devolver valor de un form

JoshyFun joshyfun en gmail.com
Dom Jun 14 16:28:22 CEST 2009


Hello Paola,

Sunday, June 14, 2009, 2:35:14 PM, you wrote:

>>Por el estilo de código da la sensación de que has pasado mucho tiempo
>>con Visual Basic :)
PB> no!!! sólo hace ya bastantes años tuve que
PB> mantener un sistema heredado horriblemente mal programado!!

:)

>>El "descubrimiento" automático de métodos al
[...]
PB> sólo he seguido los consejos de Carlos, y es lo 
PB> que me ha salido!! intenté usar el concepto de 
PB> propiedades, tal como tb se explica en "la biblia de delphi 7".
PB> Ahora, cómo resolverías tu esto??
PB> Agradezco cualquier sugerencia

Creas un form que busque el cliente, por el método que creas
conveniente, vamos que cuando pulses el botón "OK" o "Aceptar" del
form el código de cliente esté en algún sitio. Ahora vas a ese form y
en el apartado de "Public" añades:

public
      Property IDCliente: integer read GetIDCliente();

Pulsas Shift+Ctrl+C para que te autocomplete el código y te creará una
function del tipo:

-----------------
function frmBuscaCliente.GetIDCliente(): Integer;
begin

end;
-----------------

Dentro de esta función pones algo así:

Result:=StrToInt(Text1.Text);
o
Result:=StrToInt(Label1.caption);
o
Result:=Dataset.FieldByName('CLIENTID').asInteger;

O lo que haga falta para que el "Result" sea el valor del ClientID.

En el formulario principal, desde el que vas a llamar al buscador de
clientes:

Uses ..., frmBuscaCliente;
[......]
procedure Loquesea();
var
   BuscaCliente: TfrmBuscaCliente;
   ElCodigoDeCliente: Integer;
begin
[...]
   ElCodigoDeCliente:=-1; //Valor inválido.
   try
     BuscaCliente:=TfrmBuscaCliente.Create(Self);
     if BuscaCliente.ShowModal<>mrCancel then begin
        ElCodigoDeCliente:=BuscaCliente.IDCliente;
     end else begin
        //Se ha cancelado la búsqueda
        Exit; //Por ejemplo.
     end;
   finally
     FreeAndNIL(BuscaCliente); //Libera el formulario.
   end;
[...]
end;

Yo haría algo así...

-- 
Best regards,
 JoshyFun





More information about the Lazarus-es mailing list