Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 16-01-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Pues si se puede hacer:
Código Delphi [-]
procedure TForm1.TheMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  var Fsub,tmp:TFont;

  procedure PintaFormula(const str:string; Fnormal, Fsubindice:TFont; C:Tcanvas);
  var Xpixel, i:Integer;

  begin
    Xpixel := 10;
    for i:=1 to Length(str) do
    begin
      if str[i] in ['0'..'9'] then
      begin
        C.Font.Assign(Fsubindice); // si es un número, lo tomo por subindice (no he visto formulas con superindece)
        C.TextOut(Xpixel,30,str[i]); //(pinto en la coordenada Y = 30, para que se vea más abajo y parezca un subindice
      end
      else
      begin
        C.Font.Assign(Fnormal); // es una letra, así que restauro la fuente del Tcanvas
        C.TextOut(Xpixel,20,str[i]); // pinto en la coordenada Y = 20 que es la normal
      end;
      Xpixel := Xpixel + C.TextWidth(str[i]); // guardo la coordenada X, la del siguiente carácter.
    end;
  end;
begin
  Fsub := TFont.Create; // creo una fuente para los subindices
  tmp := TFont.Create; // fuente del paintbox;
  tmp.Assign(PaintBox1.Canvas.Font);
  PaintBox1.Font.Size:= 12; 
  // le tengo que poner 12, porque la fuente que elegí tenía como tamaño mínimo
 // 8 por tanto, despues no deja decrementar la fuente

  Fsub.Assign(PaintBox1.Font);
  Fsub.Size:= Fsub.Size -2; // tamaño de subindice 2 puntos menor a la normal

  PintaFormula('K2SO4',tmp,Fsub,PaintBox1.Canvas);

 tmp.Free; // libero las fuentes
 Fsub.Free;
end;

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 16-01-2006 a las 12:15:27.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Forever Loyal to Delphi Delfino Noticias 1 24-12-2005 13:31:04
Formulas en Delphi Fita Varios 1 05-11-2005 00:23:22
La increíble tecla F1 en Delphi dec Varios 1 31-08-2005 22:26:45
Novedades en Delphi 2005 Al González Noticias 12 04-12-2004 03:46:02
¿Cual es el futuro de Delphi? Voutarks Debates 33 13-04-2004 19:29:08


La franja horaria es GMT +2. Ahora son las 08:32:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi