• Viernes 8 de Noviembre de 2024, 11:30

Autor Tema:  Fórmulas Químicas Con Delphi  (Leído 1742 veces)

Deiv

  • Miembro activo
  • **
  • Mensajes: 67
  • Nacionalidad: bo
    • Ver Perfil
Fórmulas Químicas Con Delphi
« en: Domingo 15 de Enero de 2006, 22:14 »
0
Hola,
Una consulta, y aclaro que todo esto me está pasando por novato, ¿Como puedo colocar un texto por código en un PaintBox, donde cada letra (casi) vienen o responden a un cálculo, y además colocar con diferentes TOPs?
Bueno, lo que sucede es que por ejemplo quise emplear el uso de Labels en un principio, pero me complicaba cuando el texto a escribir era ' ' (nada) y aún así Delphi me dejaba un cierto espacio. Lo que requiero es que el texto salga UNIDO y sin espacios.

Verán por ejemplo necesito mostrar (después de un cálculo) (como ejemplo) fórmulas químicas:
K-2-S-O-4, Fe-''-Te-O-3, Na-''-Cl-O-'', Hice a propósito la separación con guiones para que se me entienda, pues en realidad no puedo mostrar en este post SUBÍNDICES de: K2SO4, FeTeO3 Y NaClO, notarán que en algunos no existe letras (Subíndices) y en otros el Símbolo es de dos letras (Na, Fe) a diferencia de Potasio=K.

Mi pregunta para el Foro no es "La Química", es ¿Como colocar en un PaintBox esos textos donde cada letra "K", "Fe", "Te", etc (cada uno) que vienen de un cierto cálculo, y además mostrar NÍTIDAMENTE los SUBÍNDICES que también vienen de otro cálculo, pero colocarlo en el PaintBox con diferente TOP y se note como subíndice?
Gracias, estaré atento a vuestras sugerencias.
Un Saludo

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Fórmulas Químicas Con Delphi
« Respuesta #1 en: Lunes 16 de Enero de 2006, 16:43 »
0
Citar
K-2-S-O-4 : sulfato de potasio
Fe-''-Te-O-3: Teluriato de hierro
Na-''-Cl-O-'' : hipoclorito de sodio
No tengo el TPaintBox pero supongo que deberá ser similar al TImage.
Deberías usar la propiedad TCanvas (como siempre) y hacer algo así para K2SO4:

*Poner el tamaño de letra comun.
*hacer un TextOut de la letra K, en una posicion supongamos (10,5)
*poner el tamaño de letra más chico
*hacer un TextOut del subindice 2 en una posicion "*Indicada*" eso lo tendrías qu eir probando, otra no queda...... :whistling:
*Asi susesivamente.

el metodo TextWidth(cadena):integer te devuelve el ancho en pixeles de una cadena.
Para el caso será útil la funcion.

Otra forma más que ensayo y error no le veo, probar hasta que salgan las proporciones.