Hola tiagor64,
se me ocurren varias maneras:
Si esa "función" la vas a usar para pintar en los mismos edit siempre, puedes modificar directamente dentro de la funcion dichos edits, y la pondríamos como procedimiento. Es decir,
Código Delphi
[-]
procedure tform4.buscararticulo(celda : string);
begin
qrycache.sql.text := 'select descripcion, unidades from articulos_cache where codigo = '' '+celda+'''';
qrycache.Open;
if qrycache.Recordcount > 0 then begin edit5.text := dsarticulocache.DataSet.FieldByName('descripcion').AsString;
edit8.text := dsarticulocache.DataSet.FieldByName('unidades').Value;
end
else begin
edit5.text := '';
edit8.text := '';
end;
end;
En otro caso tambien puedes hacer un procedimiento que pase 2 variables por "referencia":
Código Delphi
[-]
procedure tform4.buscararticulo(celda : string, Var Desc : String; Var Uds : Integer);
begin
qrycache.sql.text := 'select descripcion, unidades from articulos_cache where codigo = '' '+celda+'''';
qrycache.Open;
if qrycache.Recordcount > 0 then begin Desc := dsarticulocache.DataSet.FieldByName('descripcion').AsString;
Uds := dsarticulocache.DataSet.FieldByName('unidades').Value;
end
else begin
Desc := '';
Uds := 0;
end;
end;
Un saludo.