Como colocar sombra no Alert do Clipper?
Enviado: 17 Mai 2008 18:42
Gostaria de Colocar sombra qiuando uso a função Alert do Clipper. Isso é possível?
Em homenagem a Paulo Cesar Toledo
https://pctoledo.org/
Código: Selecionar todos
DO WHILE .T.
SET CURSOR OFF
SET COLOR TO B/W
CLEAR SCREEN
FOR L = 0 TO 24
@ L,00 SAY REPLICATE(CHR(124),80)
NEXT
IF ALERTA("DESEJA REALMENTE SAIR?",{"SIM","NAO","CANCELAR"},"W+/B") = 1
EXIT
ENDIF
ENDDO
SET CURSOR ON
SET COLOR TO
CLEAR SCREEN
RETURN
FUNCTION ALERTA(cMSG,aBOTOES,cCORES)
LOCAL nHI, nHF, nVI, nVL
LOCAL nTAMSG, nLARCX, nALTCX
LOCAL nTAMOP, nOP
LOCAL cCORMSG, cTELAMSG
LOCAL nALERTA
cCORES = cCORES + ",I"
nTAMOP = 0
FOR nOP := 1 TO LEN(aBOTOES)
nTAMOP = nTAMOP + LEN(ALLTRIM(aBOTOES[nOP])) + IIF((nOP > 1) .AND. (nOP < LEN(aBOTOES)),3,0)
NEXT
nTAMSG = LEN(cMSG)
IF nTAMSG > 70
nTAMSG = 70
ENDIF
nLARCX = nTAMSG + 8
nALTCX = 3
nVI = ((MAXROW() - 1) - nALTCX) / 2
nHI = ((MAXCOL() - 1) - nLARCX) / 2
nVF = nVI + nALTCX + 1
nHF = nHI + nLARCX + 1
cCORMSG = SETCOLOR()
cTELAMSG = SAVESCREEN(00,00,MAXROW(),MAXCOL())
SETCOLOR(cCORES)
@ nVI,nHI CLEAR TO nVF,nHF
@ nVI,nHI TO nVF,nHF
DBGSHADOW(nVI,nHI,nVF,nHF)
@ nVI + 1, ROUND(nHI + (((nHF - nHI) - nTAMSG) / 2),0) SAY cMSG
@ nVI + 3, ROUND(nHI + (((nHF - nHI) - nTAMOP) / 2),0) SAY ""
FOR nOP := 1 TO LEN(aBOTOES)
@ ROW(), COL() + IIF(nOP=1,0,3) PROMPT ALLTRIM(aBOTOES[nOP])
NEXT
MENU TO nALERTA
DO CASE
CASE LASTKEY() = 27
nALERTA = 0
ENDCASE
SETCOLOR(cCORMSG)
RESTSCREEN(00,00,MAXROW(),MAXCOL(),cTELAMSG)
RETURN nALERTA