FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como Calcular Ancho en Pixeles de una Variable "FrancicoA"
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Como Calcular Ancho en Pixeles de una Variable "FrancicoA"
Posted: Fri Jun 12, 2020 01:26 AM
Hola Amigos

Necesito obtener el ancho real de una variable en PIXELES, para colorear el fondo de un SAY en un DEFINE DIALOG.

Estou usando : GetTextWidth(0,Profe->Nom_Pro, oFont6).

El problema es que el calculo, me corta el contenido de la variable, aun cuando no le ponga en oFont6, el contenido impreso es el mismo.

Muchos Saludos

Antonio.

Codigo:
Code (fw): Select all Collapse
@ 200,160 SAY Profe->Nom_Pro 聽 聽 聽 SIZE GetTextWidth(0,Profe->Nom_Pro,oFont6),20 PIXEL OF oDlg2 聽 PICTURE "@!" 聽COLOR RGB(0,0,128), RGB(159,233,255)
FWH 22.10 - HARBOUR - PELLES C
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Fri Jun 12, 2020 02:22 AM
Usa oFont6:hFont
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Fri Jun 12, 2020 02:06 PM
Hola Cristobal

Deseo que te encuentres muy bien.

Aplique lo que me indicas y lamentablemente no surge ningun cambio, sigue cortandome el contenido de la variable.

Muchos Saludos.
Antonio.

Code (fw): Select all Collapse
     DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14  BOLD
....
....
     @ 200,160 SAY oSay1 Var Profe->Nom_Pro       SIZE GetTextWidth(0,Profe->Nom_Pro,oFont6:hFont),20 PIXEL OF oDlg2   PICTURE "@!"  COLOR RGB(0,0,128), RGB(159,233,255)
FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Fri Jun 12, 2020 08:37 PM
DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14 BOLD
@ 200,160 SAY oSay1 Var Profe->Nom_Pro SIZE GetTextWidth(0,Profe->Nom_Pro,oFont6:hFont),20 PIXEL OF oDlg2 PICTURE "@!" COLOR RGB(0,0,128), RGB(159,233,255)


Antonio, as铆 deber铆a funcionarte:
Code (fw): Select all Collapse
 聽@ 105,160 SAY oSay2 PROMPT 聽Profe->Nom_Pro 聽SIZE GetTextWidth( 0, Alltrim(Profe->Nom_Pro), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 聽 ADJUST

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Fri Jun 12, 2020 08:50 PM
Probando tu ejemplo, con las modificaciones sugeridas.
Code (fw): Select all Collapse
//---------------------------------------------------------//
Function ClrFondoSay()
local oDlg2, oTitu, oSay1, oSay2, oSay3
local oFont2, oFont5, oFont6

   DBUSEAREA(.T.,,"PLANIL","PLANIL",.T.)
   DBGOTOP()

   DEFINE FONT oFont2 NAME "ARIAL"  SIZE 0,-10
   DEFINE FONT oFont5 NAME "ARIAL"  SIZE 0,-12
   DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14

   DEFINE DIALOG oDlg2 SIZE 600,570 PIXEL TRUEPIXEL FONT oFont2  //STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )

   @ 10,150 SAY otitu PROMPT " MUESTRA PROFESIONAL "  PIXEL OF oDlg2 COLORS RGB(0,100,0)   FONT oFont5

   @ 055,050 SAY "C贸digo :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6
   @ 105,050 SAY "Nombre :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6
   @ 130,050 SAY "Inss   :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6

  // Aqui necesito que estos Say, tengan un fondo en color y solo del largo del texto
  // de la variable no considerando los caracteres en blanco.
  @ 053,160 SAY oSay1 PROMPT  Planil->Numemp  SIZE GetTextWidth( 0, Alltrim(Planil->Numemp), oFont6:hFont ),22  PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW  FONT oFont6   BORDER  CENTER ADJUST 
  @ 105,160 SAY oSay2 PROMPT  Planil->Nombre  SIZE GetTextWidth( 0, Alltrim(Planil->Nombre), oFont6:hFont ),22  PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6   ADJUST 
  @ 130,160 SAY oSay3 PROMPT  Planil->Ninssbi SIZE GetTextWidth( 0, Alltrim(Planil->Ninssbi),oFont6:hFont ),22  PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW  FONT oFont6   ADJUST 

  @ 300,250 BUTTON "Salir" SIZE 100,30 PIXEL OF oDlg2 ACTION oDlg2:End()

  ACTIVATE DIALOG oDlg2 CENTERED 

  RELEASE oFont2, oFont5, oFont6
  PLANIL->(DBCLOSEAREA())

Return nil

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Fri Jun 12, 2020 10:50 PM
Este ejemplo, mejorado, muestra con mas claridad los resultados:
Code (fw): Select all Collapse
//---------------------------------------------------------//
Function ClrFondoSay()
local oDlg2, oTitu, oSay1, oSay2, oSay3
local oFont2, oFont5, oFont6

聽 聽DBUSEAREA(.T.,,"PLANIL","PLANIL",.T.)
聽 聽DBGOTOP()

聽 聽DEFINE FONT oFont2 NAME "ARIAL" 聽SIZE 0,-10
聽 聽DEFINE FONT oFont5 NAME "ARIAL" 聽SIZE 0,-12
聽 聽DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14

聽 聽DEFINE DIALOG oDlg2 SIZE 600,570 PIXEL TRUEPIXEL FONT oFont2 聽//STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )

聽 聽@ 10,150 SAY otitu PROMPT " MUESTRA PROFESIONAL " 聽PIXEL OF oDlg2 COLORS RGB(0,100,0) 聽 FONT oFont5

聽 聽@ 055,050 SAY "C贸digo :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6
聽 聽@ 105,050 SAY "Nombre :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6
聽 聽@ 130,050 SAY "Inss 聽 :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6

聽 // Aqui necesito que estos Say, tengan un fondo en color y solo del largo del texto
聽 // de la variable no considerando los caracteres en blanco.
聽 @ 053,160 SAY oSay1 PROMPT 聽Planil->Numemp 聽SIZE GetTextWidth( 0, Alltrim(Planil->Numemp), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW 聽 聽 聽 FONT oFont6 聽ADJUST 
聽 @ 105,160 SAY oSay2 PROMPT 聽Planil->Nombre 聽SIZE GetTextWidth( 0, Alltrim(Planil->Nombre), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 聽ADJUST 
聽 @ 130,160 SAY oSay3 PROMPT 聽Planil->Ninssbi SIZE GetTextWidth( 0, Alltrim(Planil->Ninssbi),oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW 聽 聽 聽 FONT oFont6 聽ADJUST 

聽 @ 300, 50 BUTTON "Siguiente" SIZE 100,30 PIXEL OF oDlg2 ACTION NextData(oSay1,oSay2,oSay3)
聽 @ 300,250 BUTTON "Salir" SIZE 100,30 PIXEL OF oDlg2 ACTION oDlg2:End()

聽 ACTIVATE DIALOG oDlg2 CENTERED 

聽 RELEASE oFont2, oFont5, oFont6
聽 PLANIL->(DBCLOSEAREA())

Return nil

//---------------------------------------------------------//
Function NextData(oSay1,oSay2,oSay3)

聽 聽planil->(dbskip())
聽 聽if planil->(eof())
聽 聽 聽 Planil->(dbgotop())
聽 聽endif

聽 聽oSay1:Refresh()
聽 聽oSay2:Refresh()
聽 聽oSay3:Refresh()

聽 聽oSay1:nWidth := GetTextWidth( 0, Alltrim(Planil->Numemp), oSay1:oFont:hFont )
聽 聽oSay2:nWidth := GetTextWidth( 0, Alltrim(Planil->Nombre), oSay2:oFont:hFont )
聽 聽oSay3:nWidth := GetTextWidth( 0, Alltrim(Planil->Ninssbi),oSay3:oFont:hFont )

Return nil

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 01:02 AM

Francisco, Amigo.

Realmente te pasaste como siempre.

Muchas gracias por toda tu ayuda, tiempo dedicado y codigos funcionales, funciono PERFECTO.

Quise habilitar BORDER, pero me afecta la visi贸n de los 煤ltimos caracteres, por lo que desisti y lo deje solo con el color como tu lo desarrollaste.

Mil Gracias Amigo.

Muchos Saludos

Antonio

FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 06:38 PM
Quise habilitar BORDER, pero me afecta la visi贸n de los 煤ltimos caracteres, por lo que desisti y lo deje solo con el color como tu lo desarrollaste.


Antonio, prueba asi:
Code (fw): Select all Collapse
Function ClrFondoSay()   
local oDlg2, oTitu, oSay1, oSay2, oSay3
local oFont2, oFont5, oFont6

   DBUSEAREA(.T.,,"PLANIL","PLANIL",.T.)
   DBGOTOP()

   DEFINE FONT oFont2 NAME "ARIAL"  SIZE 0,-10
   DEFINE FONT oFont5 NAME "ARIAL"  SIZE 0,-12 BOLD
   DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14

   DEFINE DIALOG oDlg2 SIZE 600,270 PIXEL TRUEPIXEL FONT oFont2  //STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )

   @ 10,050 SAY otitu PROMPT "COLOR FONDO DE oSAY Y AJUSTAR ANCHO DEL oSAY A ANCHO DEL TEXTO"  PIXEL OF oDlg2 COLORS RGB(0,100,0)   FONT oFont5

   @ 055,050 SAY "C贸digo :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6
   @ 105,050 SAY "Nombre :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6
   @ 130,050 SAY "Inss   :"   SIZE 100,20  PIXEL OF oDlg2  RIGHT  FONT oFont6

  // Aqui necesito que estos Say, tengan un fondo en color y solo del largo del texto
  // de la variable no considerando los caracteres en blanco.
  @ 053,160 SAY oSay1 PROMPT  Planil->Numemp  SIZE GetTextWidth( 0, Alltrim(Planil->Numemp), oFont6:hFont ),20  PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW       FONT oFont6  ADJUST BORDER
  @ 105,160 SAY oSay2 PROMPT  Planil->Nombre  SIZE GetTextWidth( 0, Alltrim(Planil->Nombre), oFont6:hFont ),20  PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6  ADJUST 
  @ 130,160 SAY oSay3 PROMPT  Planil->Ninssbi SIZE GetTextWidth( 0, Alltrim(Planil->Ninssbi),oFont6:hFont ),20  PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW       FONT oFont6  ADJUST 

  @ 230, 50 BUTTON "Siguiente" SIZE 100,30 PIXEL OF oDlg2 ACTION NextData({oSay1,oSay2,oSay3},{.t.,.f.,.f.})
  @ 230,250 BUTTON "Salir" SIZE 100,30 PIXEL OF oDlg2 ACTION oDlg2:End()

  ACTIVATE DIALOG oDlg2 CENTERED ON INIT RefreshData({oSay1,oSay2,oSay3},{.t.,.f.,.f.})

  RELEASE oFont2, oFont5, oFont6
  PLANIL->(DBCLOSEAREA())

Return nil

//-----------------------------------------------// Siguiente registro
Function NextData(aoSay, alBorder) 

   planil->(dbskip())
   if planil->(eof())
      Planil->(dbgotop())
   endif

   RefreshData(aoSay, alBorder)

Return nil

//-----------------------------------------------// Refresca dato y ancho de oSay
Function RefreshData(aoSay, alBorder) 

   AEval(aoSay,{|o,n| o:Refresh(),;
          o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],4,0) })

Return nil

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 08:19 PM

Hola Francisco

Muchas gracias por responder.

Aplique lo que me indicas, pero no surge ningun efecto, realiza la muestra de los campos con el color de fondo, pero no genera el Borde del campo mostrado.

Hay algunos campos que los muestra bien, pero otros con contenido, los muestra asi.

Variable="13.456.643-5"

Muestra en pantalla: 13.456.643- , el ultimo queda debajo del marco del borde.

Quizas podria existir una forma de hacer una rectangulo de linea, para enmarcar en say, lo mismo podria existir para los get, algo mas bonito que un Border hundido como el que se genera. En una de esas existe, pero no lo he encontrado en el foro.

Muy agradecido y saludos.

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 10:30 PM
Antonio,
Que raro. Me parece que algo se te ha pasado por alto. A mi me funciona bien (FWH1709)
Esta function ha sido cambiada a: NextData(aoSay, alBorder) llamandola asi: NextData({oSay1,oSay2,oSay3},{.T.,.f.,.f.}) // Array con tantos elementos como oSays requeridos. La .t.indica que se usa BORDER, la .f. indica sin borde.
Se agreg贸 la function RefreshData(aoSay, alBorder) llamandola con los mismos parametros.

Code (fw): Select all Collapse
 聽@ 053,160 SAY oSay1 PROMPT 聽Planil->Numemp 聽SIZE GetTextWidth( 0, Alltrim(Planil->Numemp), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW 聽 聽 聽 FONT oFont6 聽ADJUST BORDER 聽 聽 聽 聽//mira aqui
聽 @ 105,160 SAY oSay2 PROMPT 聽Planil->Nombre 聽SIZE GetTextWidth( 0, Alltrim(Planil->Nombre), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 聽ADJUST
聽 @ 130,160 SAY oSay3 PROMPT 聽Planil->Ninssbi SIZE GetTextWidth( 0, Alltrim(Planil->Ninssbi),oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW 聽 聽 聽 FONT oFont6 聽ADJUST

聽 @ 230, 50 BUTTON "Siguiente" SIZE 100,30 PIXEL OF oDlg2 ACTION NextData({oSay1,oSay2,oSay3},{.T.,.f.,.f.}) 聽 聽 //mira aqui

聽 ACTIVATE DIALOG oDlg2 CENTERED ON INIT RefreshData({oSay1,oSay2,oSay3},{.T.,.f.,.f.}) 聽 聽//mira aqui
...
...

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 10:49 PM

Hola Amigo.

Tenias razon, se me habia pasado agregar a tu codigo anterior "BORDER", solo habia cambiado tu nuevas funciones. Ahora funciona muy bien.

Mil gracias por tu ayuda y disponibilidad, deseo que estes muy bien junto a tu familia.

Le hare una mdificacion, ya que cuando el campo esta vacio, muestra una linea paralela.

Muchos Saludos.

Antonio

FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sat Jun 13, 2020 11:04 PM

Antonio.
Me alegra mucho que hayas resuelto. Salud para ti y tu familia.

Saludos.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sun Jun 14, 2020 01:20 AM

Hola Francisco

Disculpa que te moleste.

Me di cuenta de un error, el primer dato oSay1, en algunas ocaciones se imprime en blanco aun cuando el campo en la DBF tiene datos, me he podido dar cuenta, que esto ocurre, cuando el registro anterior el campo de oSay1 no tiene dato, al mostrar el siguiente produce el error.

Muchos saludos.

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Calcular Ancho en Pixeles de una Variable
Posted: Sun Jun 14, 2020 01:41 AM
remtec wrote:Hola Francisco

Disculpa que te moleste.

Me di cuenta de un error, el primer dato oSay1, en algunas ocaciones se imprime en blanco aun cuando el campo en la DBF tiene datos, me he podido dar cuenta, que esto ocurre, cuando el registro anterior el campo de oSay1 no tiene dato, al mostrar el siguiente produce el error.

Muchos saludos.

Antonio.


Antonio,
No es ninguna molestia.
驴Es posible mostrar el c贸digo que te est谩 dando problemas al enviar a impresi贸n?

Saludos.
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"
Posted: Sun Jun 14, 2020 02:05 AM
Hola Francisco

Te dejo el codigo.

Mi DBF esta abierta desde donde lo envio.

Saludos y muchas gracias
Antonio

Code (fw): Select all Collapse
聽Function ClrFondoSay()
聽 聽 聽 聽 local oDlg2, oTitu, oSay1, oSay2, oSay3
聽 聽 聽 聽 local oFont2, oFont5, oFont6

聽 // DBGOTOP()

聽 聽DEFINE FONT oFont2 NAME "ARIAL" 聽SIZE 0,-10 聽BOLD
聽 聽DEFINE FONT oFont5 NAME "ARIAL" 聽SIZE 0,-12 聽BOLD
聽 聽DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14 聽 BOLD

聽 聽DEFINE DIALOG oDlg2 SIZE 600,570 PIXEL TRUEPIXEL FONT oFont2 聽//STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
聽 聽 聽oDlg2:lTransparent := .F.
聽 聽@ 10,150 SAY otitu PROMPT " MUESTRA PROFESIONAL " 聽PIXEL OF oDlg2 COLORS RGB(0,100,0) 聽 FONT oFont5

聽 聽@ 055,050 SAY "C贸digo :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6 聽 Transparent
聽 聽@ 105,050 SAY "Nombre :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6 聽 Transparent
聽 聽@ 130,050 SAY "Inss 聽 :" 聽 SIZE 100,20 聽PIXEL OF oDlg2 聽RIGHT 聽FONT oFont6 聽 Transparent

聽 // Aqui necesito que estos Say, tengan un fondo en color y solo del largo del texto
聽 // de la variable no considerando los caracteres en blanco.
聽 @ 053,160 SAY oSay1 PROMPT 聽Profe->Rut_Pro 聽SIZE GetTextWidth( 0, Alltrim(Profe->Rut_Pro), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 聽ADJUST 聽 border
聽 @ 105,160 SAY oSay2 PROMPT 聽Profe->Nom_Pro 聽SIZE GetTextWidth( 0, Alltrim(Profe->Nom_Pro), oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 聽ADJUST 聽 border

聽 聽 @ 130,160 SAY oSay3 PROMPT 聽Profe->Nom_Doc SIZE GetTextWidth( 0, Alltrim(Profe->Nom_Doc),oFont6:hFont ),20 聽PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW 聽 聽 聽 FONT oFont6 聽ADJUST 聽 border

聽 @ 300, 50 BUTTON "Siguiente" SIZE 100,30 PIXEL OF oDlg2 ACTION 聽NextData({oSay1,oSay2,oSay3},{.t.,.t.,.t.})
聽 @ 300,250 BUTTON "Salir" SIZE 100,30 PIXEL OF oDlg2 ACTION oDlg2:End()

聽 ACTIVATE DIALOG oDlg2 CENTERED 聽 ON INIT RefreshData({oSay1,oSay2,oSay3},{.t.,.t.,.t.})

聽 RELEASE oFont2, oFont5, oFont6


Return nil

//---------------------------------------------------------//
Function 聽NextData(aoSay, alBorder)

聽 聽Profe->(dbskip())
聽 聽if Profe->(eof())
聽 聽 聽 Profe->(dbgotop())
聽 聽endif
聽 聽 聽?nom_pro,rut_pro,Alltrim(rut_Pro),len(rut_pro),len(alltrim(rut_pro))
聽 聽RefreshData(aoSay, alBorder)


Return nil

Function RefreshData(aoSay, alBorder)
聽 聽 聽/*
聽 聽AEval(aoSay,{|o,n| o:Refresh(),;
聽 聽 聽 聽 聽 o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:hFont ) + if(alBorder[n].and.(Len(Alltrim(o:cCaption))>0),6,0) })
聽 聽 聽 聽 */
聽 聽AEval(aoSay,{|o,n| o:Refresh(),;
聽 聽 聽 聽 聽 o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],6,0) })


Return nil
FWH 22.10 - HARBOUR - PELLES C