La combinación maestra solo te esta cogiendo el numero 48.
Eso es porque el edit1 al convertirlo a un numero entero y pasarlo como un array of byte que es el parámetro esperado de la función load, y me extraña que no este dando ningún error de tipos, en realidad lo que esta haciendo es cortando y tomando solamente los 8 primeros bits del numero, omitiendo el resto. De hay que solo tome el valor 48.
Cita:
Empezado por danielmj
Código Delphi [-]Combinacion1.load([StrToInt(edit1.Text)])
|
Aunque no le veo mucha utilidad a que el usuario introduzca y/o maneje un numero de INT64 que es al fin y al cabo la forma interna en que maneja el programa una combinación determinada, pero si lo deseas así, puedes utilizar la carga de datos de la siguiente forma:
* añade una nueva función LOAD junto a la que ya tienes definida, utilizando la directiva
overload, de la siguiente forma:
Código Delphi
[-] ...
function load(list: array of Byte): boolean; overload; function load(value:int64):boolean; overload;
...
function TCombinacionHelper.load(value: int64): boolean;
begin
self:=value;
result:=true;
end;
y ahora ya puedes leer el numero de tu edit1 de esta forma (sin los corchetes), el compilador determinara que rutina LOAD utilizar en función de los parámetros que le suministres:
Código Delphi
[-] if not Combinacion1.load(StrToInt(edit1.Text)) then begin
MessageDlg('La combinacion no es valida!!!', mtError, [mbOK], 0);
exit;
end;
y en particular para el valor que tienes en la imagen (34324051248), yo obtengo la siguiente combinación:
Código:
4 5 8 10 12 13 14 16 17 18 19 20 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
Saludos