창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by 권선중2005-07-15 16:03:22, Hit : 4850
[끼적강좌7] 달력 구현강좌 [2강][고급]
Homepage : http://ever2ksj.woobi.co.kr/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=open_lec&no=73

2강인 좀 많이 많이 늦었네요.. ㅈㅅ합니다..

방금 스케줄러 제작중 달려제작부분을 완성했습니다.. 이강에서 강좌할 부분인데.. 대략 달력부분 객체수만.. 41*5 = 205개  놀라운 숫자죠.. 물론 달력의 수순 날짜 표기부분의 객체수입니다.. ㅜㅜ 업청난 노가다였습니다.  그만큼 프로그램을 좀더 세밀하게 만들다 보니..들어가는 객체량이 많아지네요.. 그렇타고해서 이번강좌에 그렇게 많은 객체가 필요한건 아니라는 것을..ㅋㅋ 그래도 약간의 노가다는 필요합니다..

그럼 강좌를 들어가볼까요..?

이전강좌에서는 문자표를 이용한 달력을 만들었습니다.. 이번 강좌에서는 문자표 대신 투명배경을 지원하는 객체를 이용해 만들어보도록 하겠습니다..

그럼 투명 배경을 지원하는 객체는 뭐가 있을까요..?
                                        (" ? 예전강좌에도 투명에 대해 예기한기이....")

이름표, 동화, 멀티 버튼(그림형[그림삽이을 하지 않은경우],인터넷형)
이렇게 3가지가 있네요..
그럼 전 간단한 방법을 도모하고자 이름표를 이용하겠습니다..

객체를 준비해봅시다..
창0, 그림판0, 이름표52개, 멀티버튼 3개, 사용자함수1개

그럼 창위에 그림판을 설치합니다..물론 그림판은 달력크기로 설정하면 좋겠죠..
그리고 그림판에 적당한 배경그림을 삽입합니다.. 물론 그림판을 이용해서 투명창을 만들어도 상관없습니다.. 여러분의 입맞에 맞게 설정하세요..


다음 객체를 다음과 같이 배치해보세요..
 (뛰어쓴부분을 하나의 객체로 본다..)


2005 년   7 월   전달  현재  다음달

일   월   화   수   목   금   토

00   00   00   00   00   00   00
00   00   00   00   00   00   00
00   00   00   00   00   00   00
00   00   00   00   00   00   00
00   00   00   00   00   00   00
00   00   00   00   00   00   00


위 와 같은 배치를 하는데 전달, 현재, 다음달로 쓴 부분은 멀티버튼이다..
멀버튼은 인터넷형으로 설치한다..

나머지는 이름표로 설치한다..[이름표 설정중 배경은 반드시 투명배경을 참으로 설정]

설치방법을 지금부터 설명하겠습니다..[ 위 배치를 보고 참고하세요.. 위 배치로 쓰여진 글을객체로 표기하겠습니다..

[2005]로 표기된것의 객체명은 년이름표 [7]은 월이름표 [년],[월]은 객체명을 변경하지 않아도 됩니다..

7의 설정을 하는데 다음과 같이 합니다..
우선 2자리 숫자 12을제목으로 한다음 크기자동조절을 거짓 -> 참 -> 거짓 이렇게 변경하여
크기를 마춘다음 내용정렬을 우측으로 설정합니다..

일,월,화,수,목,금,토 는 그냥 설치하는데 반드시 간격 중분히 설정해준다..

00으로 성정된 객체는는 이름표다 이 이름표역시 월이름표처럼 크기조절후 내용정령을 우측으로 한단..

그런다음 제목을 00을 넣어준다 00을 넣는것은 일정각격주어 배치할때 편하기 때문에 넣어주는것이므로 다른것을 넣어주어도 무관하다.. 단 날자의 죄대 자리수가 2자리인것을 생각해주는 것이 좋타

자 그럼 00을 설치해보자..
00의 객체명을 날0~ 날41까지한다..

즉  다음과 같이 배치를 한다..

날0...........날6
날7...........날13
.
.
.
...............날41

자 배치가 끝났나요..솔직히 그림으로 설명하면 상당히 편하겠지만..귀차니즘...

그럼 사용자함수를 아무곳이나 설치한후 명령을 넣어봅시다..

사용자함수의 객체명을 [달력함수]로 변경하세요..
그다음 함수를 만들어볼까요...

-----------------------------------------[ 달력함수]---------------------------
함수:달력표시(실수:년,월,일);        //<---- 함수 선언부
-------------------------------------------------------------------------------

실수: 시각수,위치수,수,수1,칸수,크기;       //<---- 필요 실수를 설정한다..
년이름표.제목:=수를문(년);                      //<---- 함수에 입력받은 년도를 달력에 표기한다
월이름표.제목:=수를문(월);                      //<---- 역시 입력받은 월을 달력에 표기한다
  시각수 := 날짜요일( 날짜합쳐(년, 월, 1)); //<-- 입력받은 달의 첫째날의 요일을 알아본다.
  만일(시각수 = 1) 위치수 := 0;
  아니면 만일(시각수 = 2) 위치수 :=1;
  아니면 만일(시각수 = 3) 위치수 :=2;
  아니면 만일(시각수 = 4) 위치수 :=3;
  아니면 만일(시각수 = 5) 위치수 :=4;
  아니면 만일(시각수 = 6) 위치수 :=5;
  아니면 위치수 := 6;                               


 
크기 := 달크기(년,월);                              //<----- 입력받은 달의 크기를 알아본다.
반복{ 날#수1.제목:=""; 수1:=수1+1; } 까지(수1 > 41 );     //<---- 달력의 날짜를 모두 지운다



반복 {                                                  //<----- 달력에 날짜를 표기한다

수1:=수+위치수;                                      //<<--- 별도 설명
날#수1.제목:=수를문(수+1);                      //           -------->>
// 이부분에 입력날자를 비교하여 이름표의 글꼴색상을 변경하는 명령을 넣어주면 좋겠죠..//

수:=수+1;
} 까지((수+1)>크기);    //<----- 달 크기만큼 반복한다..

--------------------------------------------------[함수 명령끝]--------------------


---- 여기서 설명하는 부분이 이강의 핵심부분이다..  ----

수1:=수+위치수;    

이것은 시작위치를 를 나타내주는것인데.. 날0부터 1이 들어간다면 달력으로 으미가 없다..
즉 날0은 무조건 일요일이다 그렇기때문에 1일날이 수용일이라면 날4부터 쓰여져야한다..그것을 지정해주는 명령이다..
즉 위에보면 입력받은 달의 첫째 날의 요일을 알아보는 명령이 있다..
즉 만을 첫째날이 수요일이라면  0+위치수 =3 이된다..
물론 수는 처음 지정시 0분터 시작하기대문에 반복이 없었기때문에 0이 된다..

날#수1.제목:=수를문(수+1);

이명령을 이해하지 못하면 강좌의 으미가 없습니다..

날#수   <---- 이것은 아시죠..즉 날?객체를 예기합니다..즉 수가 1이면 날1이라는 객체를 말하는 것입니다.. 즉 창조도움말을 보시면 [객체의 배열] 이라는 함수가 있습니다..그곳을 참고

즉 명령을 해석해보자

위치수가 3이라고하고 1일날 가정하자..
첫번째 바복이 되무로 수는 0이된다..

공식으로 보면

수1:=(날짜 - 1)+위치수

즉  수 = 날짜-1; 과 같은것이다..

수1:=수+3;   -> 수1:=0+3; 이된다..

그럼 수1은 3이된다..

그럼 다음 명령을 볼까

날#수1.제목:=수를문(수+1)   -> 날3.제목:=수를문(0+1) 이된다..

ㅡㅡ 설명이 어렵당..ㅠㅠ 솔직히 가장중요한 부분이지만 설명으로 여러분을 이해 시키려니 정말 어렵습니다...


간단히 요약하자면 날짜를 위치부터 써가라는 이야기입니다..ㅠㅠ


그럼 멀티버튼 0 ,1,2의 명령을 보겠습니다..


--------------------------------------[ 멀티버튼0.클릭했을때 ] -------------------

실수:년,월,일;
년:=문을수(년이름표.제목,날짜년풀어(현재시간));          //<-- 달력에 표기된 년도을 읽는다
월:=문을수(월이름표.제목,날짜월풀어(현재시간))-1; //<-- 달력에 표기된 월을 읽어서 1을뺀다
만일(월<1)                                                               
{ 월:=12; 년:=년-1; }   //달이 1월보다 작으면 년도에서 1을배고 달을 12월로 넘긴다
달력함수.달력표시(년,월,날짜일풀어(현재시간));    //<-- 함수실행한다..

----------------------------------------------------------------------------------


-------------------------------------[ 멀티버튼2.클릭했을때 ]-----------------------
실수:년,월,일;
년:=문을수(년이름표.제목,날짜년풀어(현재시간));
월:=문을수(월이름표.제목,날짜월풀어(현재시간))+1;
만일(월>12)
{월:=1; 년:=년+1;}
달력함수.달력표시(년,월,날짜일풀어(현재시간));
---------------------------------------------------------------------------------
이것은 멀티버튼1과 반대로 생각하면 됩니다..

-----------------------------------------[ 멀티버튼1.클릭했을때 ]-------------------
달력함수.달력표시(날짜년풀어(현재시간),날짜월풀어(현재시간),날짜일풀어(현재시간));

-----------------------------------------------------------------------------------
설명할필요도 없죠.. 그냥 시스템에 있는 날짜를 불러와 그대로 함수를 실행하는 것입니다..


창0.보여질때에도 멀티버튼1.클릭했을때와 같은 명령을 넣으시면됩니다..

휴~~~ 이번강좌는 설명하기가 좀 어렵네요.

솔직히 어려운 부분은 없지만 설명하기 복잡한부분이 많네요..

소스는 제작하지 않겠습니다..
시간 나시는분 소스 만드셔서 올려주셨음합니다..

그럼 즐거운 주말 보내세요..^^





LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
69
   리소스 해커를 이용하여 DLL 파일안의 HTML 문서 넣기! [4]
qkrwhdgns 2005/07/20  5663
68
   [끼적강좌 8]RPG게임을 만들어보자 [1강] [3]
권선중 2005/07/16  6066
67
     [re] [끼적강좌 8]RPG게임을 만들어보자 [2강] [1]
권선중 2005/07/17  5694
66
   [끼적강좌7] 달력 구현강좌 [1강][초급]
권선중 2005/07/11  5147

     [끼적강좌7] 달력 구현강좌 [2강][고급]
권선중 2005/07/15  4850
64
       [끼적강좌7] 달력 구현강좌 [3강][응용]
권선중 2005/07/16  4633
63
   [끼적강좌 6] 선중이 계발한 암호화구현 [7]
권선중 2005/06/29  4860
62
   [끼적 강좌] 기본문법을 알아야 한다...! [10]
권선중 2005/06/27  4922
61
   [끼적강좌 5] 로그인 구현강좌 [1강][초급] [6]
권선중 2005/06/24  5447
60
     [끼적강좌 5] 로그인 구현강좌 [2강][중급] [2]
권선중 2005/06/25  5568
59
       [끼적강좌 5] 로그인 구현강좌 [3강][고급] [3]
권선중 2005/06/26  5352
58
         [re] [끼적강좌 5] 로그인 구현강좌 [4강][다계정 구현] [5]
권선중 2005/06/27  5004
57
   마우스 오른쪽 눌렀을때의 메뉴 뜨게하기(초보용)
이시영 2005/02/02  5144
56
   [쉬운강좌1]환경파일 다루기 [3]
정성우 2005/01/11  5461
55
   영문 윈도우에서의 창조로 만든 프로그램.. [16]
손상진 2005/01/02  5942
54
   [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [2]
ps.이진백 2004/12/31  6308
53
     [re] [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [1]
지상현 2005/01/01  5623
52
   창조의 한계를 뛰어 넘어서 #1: '문자' 포인터 써먹기 [4]
지상현 2004/11/23  6931
51
   [ps.구루 강좌#11] 서비스팩2에서 프로그램 추가/제거 설정
ps.이진백 2004/10/26  5464
50
   대박로또에 적용된 자동업데이트 알고리즘.. [7]
최재일 2004/09/13  7936
49
   [삐까뻔쩍강좌] 오랜만에 글쓰네.. [10]
박재성[날개달기] 2004/09/07  4983
48
   [보충강좌#10-1] *.Res를 위한 *.Rc [1]
ps.이진백 2004/08/12  6154
47
   [강좌#10] DLL에 HTML 쑤셔넣기 [6]
ps.이진백 2004/08/06  6211
46
   방금생각한 암호화 알고리즘 - -;; [2]
박재성[날개달기] 2004/07/29  5667
45
   [끼적강좌 4] 창조 구현 DB강좌 [1강] [5]
권선중 2004/07/25  5825
LIST ALL   Prev [1][2] 3 [4][5] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인