Página 1 de 1
Como atualizar SAY na dialog ?
Enviado: 26 Jul 2024 20:35
por JoséQuintas
Já fiz todos os testes possíveis.
say:Refresh()
dialog:refresh()
say:Display()
Por enquanto, a saída foi trocar SAY BORDER por GET READONLY.
GET atualiza.
Nota: conteúdo está atualizado, já confirmei, mas a tela não atualiza de jeito nenhum, nem com WINDOW nem com DIALOG
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 10:41
por Kapiaba
Use: VARPUT()
Código: Selecionar todos
LOCAL cSay := ...
LOCAL oSay
REDEFINE SAY oSay VAR cSay ID 450 OF oDlg ;
COLORS CLR_BLACK, CLR_WHITE UPDATE FONT oFont
// dispare em um VALID, ON CHANGE ou ACTION.. GET ou BUTTON...
FUNCTION Troca_SAY( oSay )
LOCAL nTam...
oSay:VarPut( Strzero( nTam, 3, 0 ) )
oSay:Refresh()
RETURN( .T. )
Regards, saludos.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 10:53
por JoséQuintas
Ok, vou testar depois na dialog, é só na dialog que não atualiza.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 11:36
por Kapiaba
Teste simples com SetText(), como ja disse antes, FIVEWIN tem sempre formas difrentes de se fazer a mesma coisa, dependendo do momento.
Código: Selecionar todos
// C:\FWH\SAMPLES\TESTSAY.PRG Modified by João Santos.
#include "FiveWin.ch"
STATIC oFont, oFnt, oFont1, oFont2, oFont3
FUNCTION Main()
LOCAL oWnd
LOCAL oMenu
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -14
DEFINE FONT oFont2 NAME "Segoe UI Light" SIZE 0, -18
DEFINE FONT oFont3 NAME "Segoe UI" SIZE 0, -26
MENU oMenu
MENUITEM "&Gradient" ACTION Dlg_Grad()
MENUITEM "&Color" ACTION Dlg_Color()
MENUITEM "&Bitmap" ACTION Dlg_Bit()
MENUITEM "&Saida" ACTION( oWnd:End() )
ENDMENU
DEFINE WINDOW oWnd TITLE "Test Say" FROM 0, 0 TO 400, 800 PIXEL MENU oMenu
ACTIVATE WINDOW oWnd CENTERED // MAXIMIZED
RELEASE oFont, oFnt, oFont1, oFont2, oFont3
RETURN NIL
PROCEDURE Dlg_Grad
LOCAL oDlg, oSay, oBrush, oBtn
DEFINE BRUSH oBrush GRADIENT { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) }, ;
{ 0.6, nRGB( 24, 61, 118 ), nRGB( 50, 95, 158 ) } }
DEFINE DIALOG oDlg TITLE "Test Say With Gradient Brush" ;
SIZE 400, 400 PIXEL BRUSH oBrush transparent
oDlg:lHelpIcon := .F.
// @ 2, 2 TO 100, 100 OF oDlg PIXEL - VERSOES ANTIGAS COMO NO CLIPPER
// VERSOES MODERNAS DO FIVEWIN:
@ 30, 2 GROUP TO 100, 150 LABEL "Say With Gradient Brush" OF oDlg PIXEL ;
COLOR METRO_ORANGE, CLR_WHITE TRANSPARENT FONT oFnt
@ 50, 15 SAY oSay PROMPT "This a Test" of oDlg SIZE 50, 20 UPDATE ;
COLOR METRO_ORANGE, CLR_WHITE PIXEL TRANSPARENT ADJUST FONT oFont3
@ 10, 120 BUTTON oBtn PROMPT "Test Quintas" OF oDlg PIXEL ;
ACTION( oSay:SetText( "Change Text Quintas" ), oBtn:Disable() )
@ 130, 080 BUTTON "&Saida" OF oDlg PIXEL ;
ACTION( oDlg:End() ) CANCEL
ACTIVATE DIALOG oDlg CENTERED
RELEASE BRUSH oBrush
oBtn:Enable() // religo o Botao
RETURN
PROCEDURE Dlg_Color
LOCAL oDlg
LOCAL oBrush
LOCAL oSay
DEFINE BRUSH oBrush COLOR CLR_CYAN
DEFINE dialog oDlg TITLE "Test Say With Color Brush" BRUSH oBrush ;
SIZE 400, 400 PIXEL
oDlg:lHelpIcon := .F.
@ 2, 2 SAY oSay PROMPT "This a Test" OF oDlg SIZE 100, 130 ;
COLOR CLR_WHITE PIXEL TRANSPARENT UPDATE
@ 10, 120 BUTTON "Test" ACTION oSay:SetText( "Change Text" ) PIXEL
ACTIVATE DIALOG oDlg CENTERED
RELEASE BRUSH oBrush
RETURN
PROCEDURE Dlg_Bit
LOCAL oDlg, oBrush, oSay
DEFINE BRUSH oBrush FILE "..\bitmaps\cara.bmp"
DEFINE dialog oDlg TITLE "Test Say With bitmap Brush" BRUSH oBrush ;
SIZE 400, 400 PIXEL
oDlg:lHelpIcon := .F.
@ 2, 2 SAY oSay PROMPT "This a Test" OF oDlg SIZE 100, 130 ;
COLOR CLR_WHITE PIXEL TRANSPARENT UPDATE
@ 10, 120 BUTTON "Test" PIXEL ACTION oSay:SetText( "Change Text" )
ACTIVATE DIALOG oDlg CENTERED ON INIT osay:refresh()
RELEASE BRUSH oBrush
RETURN
// FIN / END - kapiabafwh@gmail.com
Regards, saludos.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 11:44
por Kapiaba
Usando SayText() VERTICAL:
Código: Selecionar todos
// C:\FWH\SAMPLES\SAYBOX.PRG
#include "FiveWin.ch"
/*
FUNCTION Main()
LOCAL oWnd, oSay[ 3 ], oFont[ 2 ]
DEFINE FONT oFont[ 1 ] NAME "ARIAL" SIZE 0, 20 BOLD NESCAPEMENT 900
DEFINE WINDOW oWnd ;// FROM 1,5 TO 20,65 ;
TITLE "Testing SAY With Design"
@ 180, 30 SAY osay[ 2 ] PROMPT "" OF oWnd COLOR 0 SIZE 80, 200 ;
FONT oFont[ 1 ] design UPDATE pixel
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT oSay[ 2 ]:SAY( 180, 30, "THIS DONT SHOW", CLR_BLACK, CLR_YELLOW, oFont[ 1 ], .T., ) ;
ON PAINT osay[ 2 ]:SAY( 180, 30, "THIS DONT SHOW", CLR_BLACK, CLR_YELLOW, oFont[ 1 ], .F., )
RETURN NIL
*/
/*
#include "fivewin.ch"
#define SS_CENTERIMAGE 0x00000200
FUNCTION SayTestDlg()
LOCAL oDlg, oSay
DEFINE DIALOG oDlg TRUEPIXEL TITLE "SAY VCENTER"
@ 20, 20 SAY oSay PROMPT "Center" SIZE 200, 100 PIXEL OF oDlg CENTER
IF Empty( oSay:hWnd )
oSay:nStyle := nOr( oSay:nStyle, SS_CENTERIMAGE ) // dialogs
ELSE
oSay:WinStyle( SS_CENTERIMAGE, .T. ) // windows, etc
ENDIF
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT oDlg:Box( oSay:nTop - 1, oSay:nLeft - 1, oSay:nBottom + 1, oSay:nRight + 1 )
RETURN NIL
*/
#include "FiveWin.ch"
FUNCTION SayTest()
LOCAL oDlg, oSay, oFont
DEFINE FONT oFont NAME "Segoe UI" SIZE 0, - 40 NESCAPEMENT 900
DEFINE DIALOG oDlg SIZE 600, 700 PIXEL TRUEPIXEL
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT ( oDlg:SayText( "Vertical Text" + CRLF + "Second Line", ;
{ 20, 20, 300, 120 }, NIL, oFont ), ;
oDlg:Box( 20, 20, 300, 120 ) )
RELEASE FONT ofont
RETURN NIL
Regards, saludos.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 11:48
por Kapiaba
Mudando a COR do SAY em tempo REAL:
Código: Selecionar todos
// C:\FWH\SAMPLES\SAYCOR3.PRG
#Include "FiveWin.ch"
FUNCTION CambiaClrSay()
LOCAL oDlg, oFont, oBold, oSay, cClr
LOCAL nKilos := 2000
LOCAL bColor := {|| If( nKilos <= 50, cClr := CLR_HBLUE,;
If( nKilos >= 51 .and. nKilos <=500, cClr := CLR_GREEN,;
If( nKilos >= 501 .and. nKilos <=1000, cClr := CLR_HRED,))),;
oSay:SetColor(cClr,CLR_YELLOW) ,;
oSay:Refresh() }
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
DEFINE FONT oBold NAME "VERDANA" SIZE 0,-32 BOLD
DEFINE DIALOG oDlg SIZE 400,150 PIXEL TRUEPIXEL FONT oFont ;
TITLE "SAY COLOR TEST"
@ 20,100 SAY oSay PROMPT nKilos PICTURE "9999" ;
SIZE 200,36 PIXEL OF oDlg FONT oBold CENTER
@ 80, 20 BUTTON "50" SIZE 100,30 PIXEL OF oDlg ;
ACTION ( nKilos := 50, Eval(bColor) )
@ 80,150 BUTTON "500" SIZE 100,30 PIXEL OF oDlg ;
ACTION ( nKilos := 500, Eval(bColor) )
@ 80,280 BUTTON "1000" SIZE 100,30 PIXEL OF oDlg ;
ACTION ( nKilos := 1000, Eval(bColor) )
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont, oBold
RETURN NIL
Regards, saludos.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 12:38
por Kapiaba
Dúvidas, pergunte, A MAIOR SUPER POTÊNCIA DO FIVEWIN BRASIL está ao seu DISPOR. kkkkkkkkkkkkkkkkkkkkkkkkkk
Brincadeira Mister Quintas.
Código: Selecionar todos
// C:\FWH\SAMPLES\TROCASAY.PRG by Joao Santos.
#include "FiveWin.ch"
STATIC oFont, oFnt, oFont1, oFont2, oFont3, oSay, lLigaBtn := .F.
FUNCTION Main()
LOCAL oDlg, oBtn, oBtn2, oBtn3, oBrush, cSay := "EU SOU O SAY DO QUINTAS!"
SkinButtons() // cores no botao
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -14
DEFINE FONT oFont2 NAME "Segoe UI Light" SIZE 0, -18
DEFINE FONT oFont3 NAME "Segoe UI" SIZE 0, -26
DEFINE BRUSH oBrush COLOR METRO_CYAN // CLR_CYAN
DEFINE DIALOG oDlg TITLE "Trocar Say em Tempo Real" BRUSH oBrush ;
SIZE 550, 400 PIXEL
oDlg:lHelpIcon := .F.
@ 080, 10 SAY oSay VAR cSay OF oDlg SIZE 300, 20 FONT oFont3 ;
COLOR METRO_ORANGE, CLR_WHITE PIXEL TRANSPARENT UPDATE
@ 10, 120 BUTTONBMP oBtn PROMPT "&Trocar SAY" OF oDlg SIZE 70, 16 ;
PIXEL BITMAP "..\bitmaps\16x16\floppy.bmp" TEXTRIGHT ;
TOOLTIP "Trocar SAY em Tempo Real by Quintas" FONT oFont2 ;
ACTION ( TROCAR_SAY_EM_TEMPO_REAL() )
@ 35, 120 BUTTONBMP oBtn2 PROMPT "&Voltar SAY" OF oDlg SIZE 70, 16 ;
PIXEL BITMAP "..\bitmaps\16x16\Open.bmp" TEXTRIGHT ;
TOOLTIP "Voltar SAY em Tempo Real by Quintas" FONT oFont2 ;
ACTION ( VOLTAR_SAY_EM_TEMPO_REAL() ) WHEN( lLigaBtn )
@ 150, 100 BUTTONBMP oBtn3 PROMPT "&Saida" OF oDlg SIZE 50, 16 ;
PIXEL BITMAP "..\bitmaps\16x16\exit.bmp" TEXTRIGHT ;
TOOLTIP "Saida - Exit - Cancelar" FONT oFont ;
ACTION ( oDlg:End() ) CANCEL
ACTIVATE DIALOG oDlg CENTERED
/*
RELEASE BRUSH oBrush
RELEASE oFont, oFnt, oFont1, oFont2, oFont3
*/
// .PPO:
IIF( HB_ISOBJECT( oBrush ), oBrush:End(), ) ; oBrush := nil
__MVXRelease( "oFont", "oFnt", "oFont1", "oFont2", "oFont3" )
RETURN NIL
FUNCTION TROCAR_SAY_EM_TEMPO_REAL()
LOCAL QuintasSay := "EU SOU O NOVO SAY DO QUINTAS: " + Time()
oSay:VARPUT( QuintasSay )
oSay:Refresh()
lLigaBtn := .T.
RETURN NIL
FUNCTION VOLTAR_SAY_EM_TEMPO_REAL()
LOCAL QuintasSay := "EU SOU O SAY DO QUINTAS!"
oSay:VARPUT( QuintasSay )
oSay:Refresh()
lLigaBtn := .F.
RETURN NIL
// FIN / END - kapiabafwh@gmail.com
Regards, saludos.
Como atualizar SAY na dialog ?
Enviado: 30 Jul 2024 13:51
por JoséQuintas
Kapiaba escreveu:Teste simples com SetText(), como ja disse antes, FIVEWIN tem sempre formas difrentes de se fazer a mesma coisa, dependendo do momento.
Pra mim tá mais pra falta de padronização, ou pra deixar por conta do usuário resolver os pipinos da lib.
Mas tudo bem... fazer o que... pelo menos resolveu.
Agradecido.