PDA

Ver la Versión Completa : Multiinputbox no funciona


José Luis Garcí
13-05-2012, 12:24:00
Hola compañeros , estaba intentando hacer funcionar el siguiente artículo http://www.humbug.in/stackoverflow/de/are-there-any-way-to-use-delphi-inputbox-with-multiple-values--1879427.html pero no lo logro me da el mensaje

[DCC Error] Unit1.pas(342): E2197 Constant object cannot be passed as var parameter

Me podéis ayudar, un saludo.

ecfisa
13-05-2012, 21:42:30
Hola José Luis.

Declara la cabecera del procedimiento de este modo:

procedure MultiInputBox(const Prompts: array of string; Values: array of string);


Saludos.

ecfisa
13-05-2012, 23:21:11
Hola José.

Me quede pensando... como te puse arriba no te va a dar error, y tampoco va a modificar los valores enviados. Pero aparentemente lo que desea el autor del código del enlace es cambiar el valor de las variables. De ese modo no le va a funcionar (al menos no en Delphi 7).

Creo que lo correcto sería:

procedure MultiInputBox(const Prompts: array of string; var Values: array of string);
var
i: Integer;
begin
for i := 0 to High(Prompts) do
Values[i] := InputBox(Application.Title, Prompts[i], Values[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
vs: array of string;
begin
SetLength(vs,3);
vs[0]:= TimeToStr(Now); // (DefaultTime)
vs[1]:= IntToStr(90); // (DefaultPressure)
vs[2]:= ''; // (DefaultName)
MultiInputBox(['Time', 'Pressure', 'Name'], vs);
//...
// Mostrar valores
ShowMessage(vs[0] + #10#13 + vs[1] + #10#13 + vs[2]);
end;


Saludos.

José Luis Garcí
14-05-2012, 08:56:22
Muchas gracias ecfisa, lo probare esta tarde en casa.

José Luis Garcí
14-05-2012, 17:28:52
Probado y Perfecto:eek:, muchísimas gracias.