Bienvenido al club.
Antes de nada, te recomiendo que revises
la guía de estilo de los foros.
Estaría bien un título descriptivo en tu mensaje y algo más de concreción en tu pregunta, ya que es algo genérica.
Imagino que el procedimiento/evento
btn11Click es el que correspode a realizar el cálculo.
Ese procedimiento lo has programado para trabajar con dos operadorandos y 1 operador, pero no te va a servir para más combinaciones (com la que necesitas), porque no puedes programar utilizando los IF todas las combinaciones posibles como has hecho ahí.
Debes enfocar ese procedimiento a generar un evaluador de expresiones (
o utilizar uno ya existente si te dejan).
Si debes hacerlo tú, puedes pensar en un procedimiento similar a este:
Código Delphi
[-]
function Evaluar(pExpresion:string):integer;
function Evaluar(pExpresion:string):single;
function Evaluar(pExpresion:string):double;
Que te permita evaluar algo como lo que comentas: 10-(5-3)*5
(1) Separar los operandos y operadores
(2) Evaluar los operando de forma individual por si son complejos del estilo a: (5-3)
(3) De forma
recursiva o iterativa volver a evaluar teniendo en cuenta las prioridades.
Si tuvieras algo como esto:
10-(5-3)*5
Debes hacer por pasos:
-----------------------
10-(5-3)*5
----------------------- Aplanar
10
-
(5-3)
*
5
----------------------- Evaluar
10
-
2
*
5
----------------------- Evaluar
10
-
10
----------------------- Evaluar
0