>Colores por cada letra de un texto

Post Reply
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

>Colores por cada letra de un texto

Post by Willi Quintana »

Hola Amigos.
Sera posible tener un texto con colores diferentes en cada letra??
Salu2
[img][IMG]http://sia1.subirimagenes.net/img/2014/08/09/mini_140809060949533781.jpg[/img][/img]
[img][IMG]http://sia1.subirimagenes.net/img/2014/08/09/140809060949533781.jpg[/img][/img]
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: >Colores por cada letra de un texto

Post by Willi Quintana »

No es posible????
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: >Colores por cada letra de un texto

Post by Armando »

Willi:

Me parece que no existe una función para tal efecto, se me ocurre que metas el texto en
un array y ahí asignarle el color a cada letra. Solo una idea.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
pgfdz
Posts: 145
Joined: Wed Nov 03, 2010 9:16 am

Re: >Colores por cada letra de un texto

Post by pgfdz »

Hola. A ver si esto te vale.
Un saludo


#include "fivewin.ch"


static oWnd

function main()

DEFINE WINDOW oWnd

ACTIVATE WINDOW oWnd ON PAINT Pinta( hDC )

return nil


function Pinta( hDC )

local nColor
local nLeft := 10
local cTexto := "En un lugar de la mancha de cuyo nombre no quiero acordarme"
local oFont
local hFont
local nLen := len( cTexto )
local cLetra, n

DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0, -18


hFont := SelectObject( hDC, oFont:hFont )


for n := 1 to nLen

cLetra := substr( cTexto, n, 1 )

nColor := SetTextColor( hDC, nRandom( CLR_WHITE ) )

TextOut( hDC, 10, nLeft, cLetra )

SetTextColor( hDC, nColor )

nLeft += GetTextWidth( hDC, cLetra, oFont )

next

SelectObject( hDC, hFont )

oFont:ENd()

return nil
Paco García
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: >Colores por cada letra de un texto

Post by Carles »

Image
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: >Colores por cada letra de un texto

Post by karinha »

Very good Paco.

Code: Select all

#Include "Fivewin.ch"

STATIC oWnd

FUNCTION Main()

   DEFINE WINDOW oWnd

   ACTIVATE WINDOW oWnd MAXIMIZED ON PAINT Pinta( hDC )

RETURN NIL

FUNCTION Pinta( hDC )

   LOCAL nColor
   LOCAL nLeft  := 80
   LOCAL nRight := 220
   LOCAL cTexto := "AMBIENTE PAISAGISMO"
   LOCAL oFont
   LOCAL hFont
   LOCAL nLen := len( cTexto )
   LOCAL cLetra, n

   LOCAL nResHoriz, nResVert

   nResHoriz := oWnd:nHorzRes()
   nResVert  := oWnd:nVertRes()

   // Necesito más sugerencias para resoluciones de video.
   // I need more suggestions for video resolutions.
   IF nResHoriz = 1366 .AND. nResVert = 768

      nLeft  := 260
      nRight := 230

   ELSEIF nResHoriz = 1360 .AND. nResVert = 768

      nLeft  := 210
      nRight := 250

   ELSEIF nResHoriz = 1280 .AND. nResVert = 768

      nLeft  := 210
      nRight := 250

   ELSEIF nResHoriz = 1280 .AND. nResVert = 720

      nLeft  := 200
      nRight := 200

   ELSEIF nResHoriz = 1024 .AND. nResVert = 768  // Minha Maquina

      nLeft  :=  80
      nRight := 220

   ELSE

      nLeft  :=  80
      nRight := 220

   ENDIF

   // DEFINE FONT oFont NAME "Segoe UI Light" SIZE 0, - 50
   DEFINE FONT oFont NAME "Segoe UI Symbol" SIZE 0, - 80

   hFont := SelectObject( hDC, oFont:hFont )

   FOR n := 1 TO nLen

      cLetra := substr( cTexto, n, 1 )

      nColor := SetTextColor( hDC, nRandom( CLR_HGREEN ) )  // COLORS.CH

      // TextOut( hDC, 10, nLeft, cLetra )
      TextOut( hDC, 325, nLeft, cLetra )

      SetTextColor( hDC, nColor )

      nLeft += GetTextWidth( hDC, cLetra, oFont )

   NEXT

   SelectObject( hDC, hFont )

   oFont:ENd()

RETURN NIL
 
Saludos.
João Santos - São Paulo - Brasil
Post Reply