acabo de ver un pequeño error relacionado con la sombra que comentas:
Código Delphi
[-]
Fsub := TFont.Create;
tmp := TFont.Create;
PaintBox1.Canvas.Font.Size:= 12;
tmp.Assign(PaintBox1.Canvas.Font);
with PaintBox1.Canvas do
FillRect(Rect(0,0,Width,Height));
Fsub.Assign(PaintBox1.Canvas.Font);
Fsub.Size:= Fsub.Size -2;
PintaFormula('K2SO4',tmp,Fsub,PaintBox1.Canvas);
tmp.Free;
Fsub.Free;
El tema está en que cambiaba la fuente del Paintbox, cuando en realidad quería cambiar la fuente del Paintbox1.canvas
De ahí que no lo hiciera bien.
En cuanto a los 3 clics de ratón ... ni idea, acabo de probarlo y me funciona correctamente desde un botón.
Al evento Paint del Paintbox1, asignale tambien el evento del botón, con eso, siempre que haga falta repintarlo, se pondrá la formula, digamos que sería como un Label, algo persistente.
saludos