Hola sac.
Para el ejemplo: Agregá diez
TEdit, de nombres "Edit1",..., "Edit10" para ingresar la cantidad de unidades, y diez
TLabel de nombres "Label1",..., "Label10" para mostrar el resultado del producto de la cantidad por la moneda.
Luego:
Código Delphi
[-]
...
const
MONEDA: array[1..10] of Currency = (0.05, 0.10, 0.25, 0.50, 1, 2, 5, 10, 50, 100);
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i:= 1 to 10 do
with TEdit(FindComponent('Edit'+IntToStr(i))) do
begin
Text := '';
OnChange := EditChange;
OnKeyPress := EditKeyPress;
Tag := i;
end;
end;
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[#8,'0'..'9']) then
begin
Key := #0;
MessageBeep(MB_ICONERROR)
end;
end;
procedure TForm1.EditChange(Sender: TObject);
var
c: Integer;
begin
if TryStrToInt(TEdit(Sender).Text, c) then
TLabel(FindComponent('Label'+IntToStr(TEdit(Sender).Tag))).Caption:=
CurrToStr(c * MONEDA[TEdit(Sender).Tag])
end;
...
Agrega otros diez Labels sobre los Edits para saber que valor de moneda están ingresando.
Saludos.