Tambien en probado con esto
Código Delphi
[-]
type
string437 = type AnsiString(437);
function ExtraeGolpesDeMaquina(nombre: string; senal: word): string437;
Código Delphi
[-]
function TFormMain.ExtraeGolpesDeMaquina(nombre: string; senal: word): string437;
var
i: word;
maquina: integer;
res: string437;
begin
maquina := BuscaIndiceDeMaquina(nombre);
if maquina = -1 then
begin
res := String437('[3,' + nombre + ',Máquina no encontrada]');
Result := res;
Exit;
end;
res := '[0,';
if senal = 0 then
begin
for i := 0 to 5 do
res := res + String437(IntToStr(DCx[maquina].Contadores[i])) + ',';
res := Copy(res, 1, Length(res) - 1); end
else
begin
if (senal < 1) or (senal > 6) then
res := '[4,' + 'Señal fuera de rango'
else
res := res + String437(IntToStr(DCx[maquina].Contadores[senal - 1]));
end;
res := res + ']';
Result := res;
end;
Y la uso asi
Código Delphi
[-]
if comando = 'golpes' then
begin
msg := ExtraeGolpesDeMaquina(parametro, senal);
TServidorSocket(Sender).rxClientes[rxCliente].Envia(AnsiString(msg));
end;
Y al pasar por la funcion del mensaje anterior, he probado a que convierta a 437 y el tipo no es String437 y que la deje tal cual si el tipo si es String437, y en esta aplicación no funciona.
