Hola Cadetill:
Lo primero decirte que la primera opción funcionó perfectamente, con la modificación que me dijiste y alguna más, para solucionar una metedura de pata que tenía en el código que hacía que no terminara nunca el bucle con while. Con la segunda me pongo ahora a ver si doy con la solución, de momento he de decirte que es un procedimiento que tengo en una unidad, en ningún formulario.
P.D.
El código de la primera opción (la mala) quedaría así:
Código:
Procedure RellenarDatosCliente;
Var
i : integer;
indicedeservicios: array [1..7] of integer;
Begin
with FormularioPrincipal do
Begin
for i := 1 to 7 do
memo1.Lines[i]:= '';
// recogida de indices de servicios
indicedeservicios[1]:= modulodedatos.tablavisitasserviciorealizado1.value;
indicedeservicios[2]:= modulodedatos.tablavisitasserviciorealizado2.value;
indicedeservicios[3]:= modulodedatos.tablavisitasserviciorealizado3.value;
indicedeservicios[4]:= modulodedatos.tablavisitasserviciorealizado4.value;
indicedeservicios[5]:= modulodedatos.tablavisitasserviciorealizado5.value;
indicedeservicios[6]:= modulodedatos.tablavisitasserviciorealizado6.value;
indicedeservicios[7]:= modulodedatos.tablavisitasserviciorealizado7.value;
// Localización en la tabla de servicios de esos índices e inserción del nombre en
// el Memo1
for i := 1 to 7 do
Begin
with modulodedatos.tablaservicios do
Begin
modulodedatos.TablaServicios.First;
While not eof do
if modulodedatos.TablaServiciosClaveServicio.value = indicedeservicios[i] then
Begin
memo1.lines[i] := modulodedatos.TablaServiciosnombreservicio.Value;
next;
end
else
Next;
End;
End;
For i := 1 to 7 do
If memo1.Lines[i] = '0' then
memo1.lines[i] := ''
End;
End;