차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

독립_3d_text [2012/07/24 22:36] (현재)
admin 새로 만듦
줄 1: 줄 1:
 +== CLASS OF DLL ==
  
 +TDr3dText
 +
 +== 명령어 설명 ==
 +
 +입체형의 3DText를 만들어 냅니다.
 +
 +일반적인 윈도우 Text는 단순하기 때문에 사용자 인터페이스를 세련되게 구현하기 어렵습니다. 이 단점을 Tdr3DText를 이용하게 되면 입체적인 Text Label이나 Text Box그리고 Windows 98 Style의 Text를 표현할 수 있습니다
 +
 +<code>
 +TDr3dText():Redefine( nId, oWnd, cCaption, oFont, nClrText, nClrBack, nLineDepth )
 +</code>
 +
 +<code>
 +nId ID
 +oWnd      3DTEXT가 그려질 다이얼로그 객체명
 +cCaption    표시될 문자
 +oFont      사용할 글자 객체
 +nClrTxt    글자색
 +nClrBack    배경색
 +nLineDepth 테두리 굵기
 +</code>
 +
 +== DATA ==
 +
 +<code>
 +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 : 우측하단 정렬
 +</code>
 +
 +== METHOD ==
 +
 +<code>
 +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 )
 +</code>
 +
 +^nFadeMode^^
 +|  1  |  좌에서 우로 여리게  |
 +|  2  |  좌에서 우로 진하게  |
 +|  3  |  상에서 하로 여리게  |
 +|  4  |  상에서 하로 진하게  |
 +|  5  |  좌.우는 진하고 가운데는 여리게  |
 +|  6  |  좌.우는 여리고 가운데는 진하게  |
 +|  7  |  상.하는 진하고 가운데는 여리게  |  
 +|  8  |  상.하는 여리고 가운데는 진하게  |
 +|  9  |  가운데는 여리고 상.하.좌.우는 진하게  |
 +|  10  |  가운데는 진하고 상.하.좌.우는 여리게  |
 +
 +<nBkBmpSpeed>
 +        농도를 나타낸다. 1이 가장 미세하고 숫자가 클수록 거칠어진다.
 +ReSet()    재 설정 함
 +
 +GotFocus()  포커스 될 때 수행할 행동
 +
 +LostFocus() 빠져 나갈 때 수행할 행동
 +
 +NSAMPLES\3DTXT\SAM3TXT1.PRG 참조
 +
 +{{:00105.jpg|}}
 +
 +<code>
 +#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
 +</code>
 

Link categories 1

Link categories 2