CLASS OF DLL

TDr3dText

명령어 설명

입체형의 3DText를 만들어 냅니다.

일반적인 윈도우 Text는 단순하기 때문에 사용자 인터페이스를 세련되게 구현하기 어렵습니다. 이 단점을 Tdr3DText를 이용하게 되면 입체적인 Text Label이나 Text Box그리고 Windows 98 Style의 Text를 표현할 수 있습니다

TDr3dText():Redefine( nId, oWnd, cCaption, oFont, nClrText, nClrBack, nLineDepth )
nId			ID
oWnd     	3DTEXT가 그려질 다이얼로그 객체명
cCaption   	표시될 문자
oFont      	사용할 글자 객체
nClrTxt    	글자색
nClrBack   	배경색
nLineDepth 	테두리 굵기
DATA
bAction			Text를 눌렀을 때 실행할 행동
bSAction          SHIFT Click시 실행할 행동
lButtonLook       버튼처럼 Focus가 지정되면 테두리가 두꺼워 집니다. 
nTextMode  		3D Text의 종류를 지정
				0 : Grade Text
                  	1 : Hard EmBoss
                  	2 : EmBoss
                  	3 : EnGrave
                  	4 : Shadow
nFadeMode  		배경 Fade mode를 지정
             		0 : No Grade
                  	1 : Grade Fade In
                 	2 : Grade Fade Out
nGradeClr  	    배경 Grading 색상 (이것 대신에 ::nStClr/::nEndClr를 사용권장)
             	    1 : Black tone
                  2 : Blue tone
nStClr		    Fade 시작 색상
nEndClr		    Fade 종료 색상
lText3D		    3D 문자 인지 여부
lCenter	         중앙에 위치할지 여부
cResName	    자원에 있는 Bmp명
cTextBmp	    Bmp 파일명
lMovement	    Text가 속한 윈도우나 다이얼로그를 움직이게 할지 여부
aCaption          여러 줄의 문자를 표시할 때 사용하는 배열
lMultiTxt		다중 라인 여부
nLineDepth		Border의 테두리 라인의 굵기
nGap		  	여러 줄 일 때 각각의 줄 간격
nCapStyle	 	문자를 움직이게 방향
                  	1 : 우측에서 좌측으로 반복 이동
                 	2 : 좌측에서 우측으로 반복 이동
             		3 : 아래에서 위로 반복 이동
                  	4 : 위에서 아래로 반복 이동
                 	5 : 좌상에 우하로 반복 이동
             		6 : 우하에서 좌상으로 반복 이동
                  	7 : 좌하에서 우상으로 반복 이동
                 	8 : 우상에서 좌하로 반복 이동
             		9 : 좌우 쿠션 이동
                  	10 : 상하 쿠션 이동
                 	11 : 좌상 우하 쿠션 이동
             		12 : 좌하 우상 쿠션 이동
                  	13 : 자유 쿠션 이동
nTextPos		문자의 위치
             		0 : 좌측 정렬
                  	1 : 중앙 정렬
                 	2 : 우측 정렬
             		3 : 좌측상단 정렬
                  	4 : 중앙상단 정렬
                 	5 : 우측상단 정렬
             		6 : 좌측하단 정렬
                  	7 : 중앙하단 정렬
                 	8 : 우측하단 정렬
METHOD
SetText			SetText( cText, nTry )
SetSpeed		글자를 움직이고 배경을 복구하는 시간을 정한다.
				SetSpeed( nBkSpeed, nTxtSpeed )
SetCapTionStyle 	움직이는 방향을 정한다. (1~13)
				SetCapTionStyle( nCapStyle )
SetTxtBorder		SetTxtBorder( nTextMode, nClrText, nClrFade )
SetBkBorder		SetBkBorder( nBbClr, nBtClr, nLineDepth, lBdFade )
SetTxtFade		SetTxtFade( nTextFade, nStClrTxt, nEndClrTxt )
SetBlink()         깜박이는 Text
SetTxtFont		SetTxtFont( oFont )
SetGrade( nFadeMode, nColor, nBkBmpSpeed, nClrText, nClrShadow, nShadowMode )
nFadeMode
1 좌에서 우로 여리게
2 좌에서 우로 진하게
3 상에서 하로 여리게
4 상에서 하로 진하게
5 좌.우는 진하고 가운데는 여리게
6 좌.우는 여리고 가운데는 진하게
7 상.하는 진하고 가운데는 여리게
8 상.하는 여리고 가운데는 진하게
9 가운데는 여리고 상.하.좌.우는 진하게
10 가운데는 진하고 상.하.좌.우는 여리게

<nBkBmpSpeed>         농도를 나타낸다. 1이 가장 미세하고 숫자가 클수록 거칠어진다. ReSet()    재 설정 함

GotFocus()  포커스 될 때 수행할 행동

LostFocus() 빠져 나갈 때 수행할 행동

NSAMPLES\3DTXT\SAM3TXT1.PRG 참조

#include "npp.ch"

FUNCTION MAIN()
         LOCAL oApp := T3DTXT():New()
RETURN NIL


CLASS T3DTXT
      DATA oDlg
      DATA oFont
      DATA oTxt  AS ARRAY INIT Array(5)
      DATA oSay  AS ARRAY INIT Array(5)
      DATA oGet  AS ARRAY INIT Array(4)
      DATA oCbx  AS ARRAY INIT Array(9)
      DATA oBut  AS ARRAY INIT Array(4)
      DATA nGet  AS ARRAY INIT Array(4)
      DATA nCbx  AS ARRAY INIT Array(9)
      DATA cCbx  AS ARRAY INIT Array(9)

      METHOD New() CONSTRUCTOR

      METHOD LoadData()
      METHOD FormCreate()
        METHOD ReSay()
        METHOD ReGet()
        METHOD ReCbx()
        METHOD ReText()
        METHOD ReBut()
          METHOD SetColor( nMode )
            METHOD ChgTxt()

ENDCLASS


METHOD New() CLASS T3DTXT
      ::LoadData()
      ::FormCreate()
RETURN NIL


METHOD LoadData() CLASS T3DTXT

       ::oFont := Dr_Font(20)

       ::nCbx[1] := "07"     // nFadeMode
       ::nCbx[2] := "07"     // nColor
       ::nCbx[3] := "01"     // nBkBmpSpeed
       ::nGet[1] := 16777215 // nClrText
       ::nGet[2] := 0        // nClrShadow
       ::nCbx[4] := "01"     // nShadowMode

       ::nCbx[5] := "01"     // SetCaptionStyle
       ::nCbx[6] := "01"     // nLineDepth

       ::nCbx[7] := "01"     // nBkSpeed
       ::nCbx[8] := "01"     // nTxtSpeed

       ::nCbx[9] := "01"     // nFadeMode
       ::nGet[3] := 15862550 // nStClr
       ::nGet[4] := 15862550 // nEndClr
       ::cCbx[1]:={"01","02","03","04","05","06","07","08","09","10","11" }
       ::cCbx[2]:={"01","02","03","04","05","06","07","08","09","10","11","12","13","14",       ;
                 "15","16","17","18","19","20","21","22"}
       ::cCbx[3]:={"01","02","03","04","05","06","07","08","09","10","11","12","13","14",       ;
                 "15","16","17","18","19","20","21","22"}
       ::cCbx[4]:={"00","01","02","03","04"}
       ::cCbx[5]:={"01","02","03","04","05","06","07","08","09","10","11","12","13"}
       ::cCbx[6]:={"01","02","03","04","05","06","07","08","09","10","11","12","13",;
                   "14","15","16","17","18","19","20" }
       ::cCbx[7]:={"0001","0100", "0500", "1000", "2000", "3000", "40000", "5000", "6000"}
       ::cCbx[8]:={"01","02","03","04","05","06","07","08","09","10","11","12","13",;
                   "14","15","16","17","18","19","20","21","22"}
       ::cCbx[9]:={"00","01","02"}

RETURN NIL


METHOD FormCreate() CLASS T3DTXT

       DEFINE DIALOG ::oDlg RESOURCE "D_3DTXT"

              ::ReSay()
              ::ReGet()
              ::ReCbx()
              ::ReText()
              ::ReBut()

       ACTIVATE DIALOG ::oDlg CENTER

RETURN NIL

METHOD Resay() CLASS T3DTXT

       REDEFINE SAY ::oSay[1] VAR "nFadeMode, nColor, nBkBmpSpeed,"+ ;
                "nClrText,      nClrShadow,       nShadowMode"       ;
                ID 1001 OF ::oDlg
       REDEFINE SAY ::oSay[2] VAR "SetCaptionStyle,   LineDepth"     ;
                ID 1002 OF ::oDlg
       REDEFINE SAY ::oSay[3] VAR "nBkSpeed, nTxtSpeed"              ;
                ID 1003 OF ::oDlg
       REDEFINE SAY ::oSay[4] VAR "nFadeMode,   nStClr,           "+ ;
                "nEndClr"                                            ;
                ID 1004 OF ::oDlg

Return Nil


METHOD ReGet() CLASS T3DTXT

       REDEFINE GET ::oGet[1] VAR ::nGet[1] ID 2001 OF ::oDlg PICTURE "9999999999"
       REDEFINE GET ::oGet[2] VAR ::nGet[2] ID 2002 OF ::oDlg PICTURE "9999999999"
       REDEFINE GET ::oGet[3] VAR ::nGet[3] ID 2003 OF ::oDlg PICTURE "9999999999"
       REDEFINE GET ::oGet[4] VAR ::nGet[4] ID 2004 OF ::oDlg PICTURE "9999999999"

RETURN NIL


METHOD ReCbx() CLASS T3DTXT

       REDEFINE COMBOBOX ::oCbx[1] VAR ::nCbx[1] ITEMS ::cCbx[1] ID 4001 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[2] VAR ::nCbx[2] ITEMS ::cCbx[2] ID 4002 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[3] VAR ::nCbx[3] ITEMS ::cCbx[3] ID 4003 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[4] VAR ::nCbx[4] ITEMS ::cCbx[4] ID 4004 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[5] VAR ::nCbx[5] ITEMS ::cCbx[5] ID 4005 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[6] VAR ::nCbx[6] ITEMS ::cCbx[6] ID 4006 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[7] VAR ::nCbx[7] ITEMS ::cCbx[7] ID 4007 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[8] VAR ::nCbx[8] ITEMS ::cCbx[8] ID 4008 OF ::oDlg
       REDEFINE COMBOBOX ::oCbx[9] VAR ::nCbx[9] ITEMS ::cCbx[9] ID 4009 OF ::oDlg

Return Nil

METHOD ReText() CLASS T3DTXT

      ::oTxt[1] := TDr3dText():Redefine ( 5001, ::oDlg ,, ::oFont )
      ::oTxt[1]:lMovement := .t.
      ::oTxt[1]:SetBkGrdClr( val(::nCbx[1]), val(::nCbx[2]), val(::nCbx[3]),;
                            ::nGet[1],::nGet[2], val(::nCbx[4]) )
      ::oTxt[1]:SetText( "움직이는 독립 3D TEXT 예제" )
      ::oTxt[1]:SetCaptionStyle( val(::nCbx[5]) )
      ::oTxt[1]:nLineDepth := val(::nCbx[6])
      ::oTxt[1]:SetSpeed( val(::nCbx[7]), val(::nCbx[8]) )

      ::oTxt[2] := TDr3dText():Redefine ( 5002, ::oDlg )
      ::oTxt[2]:SetText( "독립 3D TEXT" )
      ::oTxt[2]:SetBkFade( val(::nCbx[9]), ::nGet[3], ::nGet[4] )

      ::oTxt[3] := TDr3dText():Redefine ( 5003, ::oDlg )
      ::oTxt[3]:SetBkGrdClr( 10,6,1,nRGB ( 255, 255, 215 ),CLR_BLACK,3)
      ::oTxt[3]:SetText( "적 용 버 튼" )
      ::oTxt[3]:bAction := {|| ::ChgTxt(1) }

      ::oTxt[4] := TDr3dText():Redefine ( 5004, ::oDlg  )
      ::oTxt[4]:SetBkGrdClr( 10,6,1,nRGB ( 255, 255, 215 ),CLR_BLACK,3)
      ::oTxt[4]:SetText( "적 용" )
      ::oTxt[4]:bAction := {|| ::ChgTxt(2) }

Return Nil


METHOD ReBut() CLASS T3DTXT

       REDEFINE BUTTON ::oBut[1] ID 3001 OF ::oDlg  ACTION ::SetColor(1)
       REDEFINE BUTTON ::oBut[2] ID 3002 OF ::oDlg  ACTION ::SetColor(2)
       REDEFINE BUTTON ::oBut[3] ID 3003 OF ::oDlg  ACTION ::SetColor(3)
       REDEFINE BUTTON ::oBut[4] ID 3004 OF ::oDlg  ACTION ::SetColor(4)

RETURN NIL


METHOD SetColor( nMode ) CLASS T3DTXT

       ::nGet[nMode] := ChooseColor()
       ::oGet[nMode]:Refresh()

Return Nil



METHOD ChgTxt( nMode ) CLASS T3DTXT

      if nMode == 1
         ::oTxt[1]:SetBkGrdClr( val(::nCbx[1]), val(::nCbx[2]), val(::nCbx[3]),;
                                ::nGet[1],::nGet[2], val(::nCbx[4]) )
         ::oTxt[1]:SetCaptionStyle( val(::nCbx[5]) )
         ::oTxt[1]:nLineDepth := val(::nCbx[6])
         ::oTxt[1]:SetSpeed( val(::nCbx[7]), val(::nCbx[8]) )
         ::oTxt[1]:Reset()
         ::oTxt[1]:Refresh()
      Else
         ::oTxt[2]:SetBkFade( val(::nCbx[9]), ::nGet[3], ::nGet[4] )
         ::oTxt[2]:ReSet()
         ::oTxt[2]:Refresh()
      End

Return Nil


Init Function App_Init()

     SET RESOURCES TO "SAM3TXT1.DLL"
     SETHANDLECOUNT( 45 )
     SET _3DLOOK ON

     Dr_GSetColor ( { CLR_BLACK, CLR_WHITE } ,     ;
                    { CLR_WHITE, CLR_CYAN  } ,     ;
                    { CLR_BLACK, nRGB ( 255, 255, 235 ) } )

Return NIL


Exit Function App_Exit()

     SET RESOURCES TO
     SYSREFRESH()

Return NIL
 

Link categories 1

Link categories 2