그래픽스. 어디에 그려지는가?
DrawRect( Graphics.FromHwnd( this.pictureBox1.Handle ) , new Pen( Color.Red ,2f), new Rectangle( 1, 1, 10,10));
DrawRect( Graphics.FromHwnd( this.pictureBox2.Handle ) , new Pen( Color.Blue ,2f), new Rectangle(0, 0, 10,10));
private void DrawRect( Graphics ggg, Pen pen, Rectangle rect)
{
ggg.DrawRectangle(pen, rect);
}
Graphics를 테스트 해보면... 해당 컨트롤에서 추출된 Graphics 객체에 그려짐...
2D GDI + 가 궁금할때!!! 테스트해봤던 내용임.
어디에 그려지는가~
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
데이타 테이블 그리기. (2) | 2009.05.08 |
---|---|
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
테트리스 (0) | 2009.05.02 |
아날로그 시계 (0) | 2009.05.02 |
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |
기존의 웹프로젝트 페이지를 그대로 이용하기.
기존에 사용되던 프로젝트 페이지를 수정하지 않고
데이타만 읽어올수 있게 새로운 프로젝트에 포함시키기 위한 트릭?
새프로젝트에서 iframe을 이용해 기존페이지를 보이게 하고 타이머로
기존 페이지의 데이타를 가져옴.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>팝업창</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="ProgId" content="VisualStudio.HTML">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
<script type="text/javascript" src="trace.js"></script>
<script type="text/javascript">
function returnValue()
{
var frm = document.getElementById("iframe1");
var fDoc = frm.contentWindow;
opener.document.all.TextBox1.value = fDoc.document.all.TextBox1.value;
tm = setTimeout("returnValue()", 100);
}
function aa()
{
alert( event.keyCode );
}
</script>
</head>
<body onload="returnValue();" bgColor="#33cccc">
<input id="aa" type="text">
<iframe id="iframe1" src="WebForm2.aspx"></iframe>
<div id="aaaaa" style="background-Color:#abcdef">
asdf
</div>
</body>
</html>
어떤 팝업창에 뜨게되는 페이지에서 특정 값을 타이머를 통해 얻어올수 있음.
'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글
철호야! 공부하자! (0) | 2009.05.08 |
---|---|
리피터 사용!! (0) | 2009.05.08 |
Table Row-> Select, MouseOver, Out관련 (0) | 2009.05.08 |
트리뷰 노드 추가 재귀 함수. (0) | 2009.05.02 |
페이징 컨트롤러 (0) | 2009.05.01 |
인터페이스와델리게이트조합1
다양한 객체간에 공통으로 사용할 메세지을 정의하고, 그 구현을 상속받은 객체에 역할을 미루며
이 메세지는 각각의 객체에 접근시 해당 인터페이스를 이용하게 되면, 객체타입에 관계없이 인터페이스를 이용해 메세지호출이 가능해짐.
델리게이트란?
대리자 또는 위임자로써 메세지 처리를 다른 대상으로 미뤄주면서 처리할 데이타를 전달 할 수
있는 녀석임.
위 둘을 조합하여 할수 있는 일이 있다. 위 그림처럼 메인 폼에서 유저컨트롤들이 이용될시
유저컨트롤에 특정 메세지호출과 함께 이뤄지는 처리를 유저컨트롤에서와 메인폼에서
서로 나눠서 처리할수가 있게 됨.
이게 어떤 일을 할수 있는가?
유저컨트롤이 가지게 되는 데이타들을 폼상에서 데이타를 처리하고자 할경우
이때 유저컨트롤이 다수가 되고 호출 메세지 공통으로 존재하고
이에 대한 데이타처리를 메인폼에서 통일하고자 할 경우
위와 같은 구조로 처리하게 되면 데이타를 처리를 한곳으로 모아줄수 있으며
나중에 유지보수를 한다고 할 경우
인터페이스와 델리게이트를 안다고 할 때, 좀더 손댈곳이 적어짐을 알수 있음.
간다한 예제를 만듬 :
ps : 이 예제는 훈스닷넷 회원분이 질문하던 내용에 대한 해결 방법으로 그 아이디어에 대한
예제를 만들어서 보내드림.
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
정규식] 똑같은 글자가 몇개? (2) | 2009.05.08 |
---|---|
PWD 암호화 객체. (0) | 2009.05.08 |
DB로컬 연결시 문구 (0) | 2009.05.02 |
큐브~ (0) | 2009.05.02 |
XML 컨트롤... (0) | 2009.05.02 |
테트리스
WinApi.co.kr 에 존재하는 C언어에 테트리스를 분석해서 만들어낸 테트리스임. (버그 다수 존재 함)
프로그래밍을 하게 되면 반듯이 작성해야지 했던 게임이었는데
만들고 나니 어찌나 기쁘던지...
자료구조도 알고리즘도 프로그램 로직 자체도 서툴렀던 시절
C언어로 된 테트리스 로직을 분석하고 만들어내었을때 비약적인 발전을 할수 있었음.
GDI+라든가 배열사용이라든가, 게임시 동작을 처리 하는 부분에 대해서라든가.
이것도 역시 바둑판 그리기가 사용된다. 배경을 그리고 블럭을 그리는데 사용됨.
테트리스 소스임
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
---|---|
그래픽스. 어디에 그려지는가? (0) | 2009.05.08 |
아날로그 시계 (0) | 2009.05.02 |
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |
FND를 이용한 디지탈 시계 (0) | 2009.05.02 |
아날로그 시계
초단위로 똑딱 똑딱 흐르니 아날로그라고 하긴 그렇지만 ... 뭐 어쨌거나...
분,초는 360도를 60으로 나눠서 초당 6도씩 이동시키며
시는 360도를 12로 나눠서 30도씩 이동시킴. ㅡ.,ㅡ;;
시계 표시는 행렬 로테이션을 이용해서 표시함
초 각 : Convert.ToSingle(this.secPin.IdentityRadian(DateTime.Now.Second) * 6);
분 각 : Convert.ToSingle( this.minPin.IdentityRadian(DateTime.Now.Minute) * 6);
시 각 : Convert.ToSingle( (this.hourPin.IdentityRadian(DateTime.Now.Hour)%12)* 5 * 6);
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
그래픽스. 어디에 그려지는가? (0) | 2009.05.08 |
---|---|
테트리스 (0) | 2009.05.02 |
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |
FND를 이용한 디지탈 시계 (0) | 2009.05.02 |
FND( SevenSegment ) (0) | 2009.05.02 |
HTML 자동 정렬 프로그램
이때는 정규식도 모를때고 한참 알고리즘 공부할때라서..
HTML파싱을 좀 독특하게 했음. 그래프 알고리즘을 적용해서 만들었음. 참 특이했던 것임.
에피소드 : DB만 하실줄 아시던 부장님이 웹프로그래머가 DB 데이타를 받아서 다시 그걸 테이블태그를 붙여서 플래이스홀더 컨트롤에 바인딩 하는것을 보고 DB에서 다 해줄테니 그냥 붙여넣으라고 했다는... 웹프로그래머는 asp.net 1년차 였음. 나역시 윈폼1년하고 웹폼을 배워보고자 들어가서 보았을때 첨엔 asp.net은 그렇게 작업하는줄 알았음...
ps : 다 구현하고 프로젝트 끝나갈 무렵 vs2005에 보니 정렬기능이 있더라눈... 쿨럭!
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
테트리스 (0) | 2009.05.02 |
---|---|
아날로그 시계 (0) | 2009.05.02 |
FND를 이용한 디지탈 시계 (0) | 2009.05.02 |
FND( SevenSegment ) (0) | 2009.05.02 |
데이타베이스 브라우져 ver2 (0) | 2009.05.02 |
FND를 이용한 디지탈 시계
앞서 설명한 FND를 컨트롤로 만들어두었던것을
이용해서 시계를 만들었음.
다시봐도 나름 잘 만들었넹...
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
아날로그 시계 (0) | 2009.05.02 |
---|---|
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |
FND( SevenSegment ) (0) | 2009.05.02 |
데이타베이스 브라우져 ver2 (0) | 2009.05.02 |
처음 만든 이미지 뷰어 (0) | 2009.05.02 |
FND( SevenSegment )
FND는 LED를 위와같이 배열하여 하나의 디스플레이 소자로써 숫자나 영문 표시를 한다.
실제 부품 핀 번호를 위에 A~ G까지 써놓았고 여기에 Com 단자와 Dot표시 Led가 존재한다.
다만 프로그래밍에서 제외시켰음.
이 프로그래밍은 C#을 막 시작해서 5달째쯤 되어 시간이 좀 되던중에 디지탈 숫자 표시에 관련된
얘기를 듣고 마침 객체지향에 대해 막 궁금해 하던 시절에 이걸 만들었었다. 아 ~ 옛날이여~~
내가 전자과라서 전자 부품은 거의 모두 알고 있었던 시절이었으니 부품에 대해 그리 사전조사가 필요없었고. 당시 객체 지향에 맞는 코드를 만들어보고자 위 FND를 설계후 디지탈 시계를 만들었었음.
/// <summary>
/// fillup: 채우다,
/// BackColor : 바탕색,
/// UserColor : 사용자 정의색
/// </summary>
enum FillUp {BacKColor,UserColor};
enum SegmentArray {a,b,c,d,e,f,g};
//핀 번호와 Led 표시상태를 구분짓는 값이다. Led가 On, Off되면서 숫자가 표시되므로
이 값을 위처럼 구분짓는다.
/// <summary>
/// 모서리 옵셋값
/// </summary>
float angleoffsetvalue = 9f;
public float AngleOffsetValue
{
get { return angleoffsetvalue; }
set { angleoffsetvalue = value;
CVPointSegments.Calculat(this.Size, angleoffsetvalue, thinkness);
}
}
// 이것은 Led 하나의 다각형 그림을 그릴때 그 모서리를 뽀족하게 할것인지 말것인지를 결정하는 값이다.
/// <summary>
/// 세그먼트 두께 값.
/// </summary>
float thinkness = 7f;
public float SegmentThinkness
{
get { return thinkness; }
set { thinkness = value;
CVPointSegments.Calculat(this.Size, angleoffsetvalue, thinkness);
}
}
// 이것은 세그먼트 표시되는 Led표시부의 두께 값이다.
/// <summary>
/// 외곽선 유무 기본값 : true
/// </summary>
Boolean displayouterwall = true;
public Boolean DisplayOuterWall
{
get {return displayouterwall; }
set {displayouterwall = value; }
}
// 이것은 표시될때 Led의 외곽선 표시임.
/// <summary>
/// 디스플레이~~!! 될 번호... 숫자 0~ 9 가운데...
/// </summary>
int displayIndex = 0;
public int DisplayNumber
{
get { return displayIndex; }
set {
displayIndex = value % 10;
}
}
// 표시될 숫자
/// <summary>
/// Segment 컬러.
/// </summary>
Color usercolor = Color.Red;
public Color UserColor{
get {return usercolor;}
set {usercolor = value;}
}
// Led 색상이 되겠다.
string[][] DisplayNumbers = new string[10][]
{
new string[] {"a","b","c","d","e","f"}, // 0
new string[] {"b","c"}, // 1
new string[] {"a","b","g","d","e"}, // 2
new string[] {"a","b","c","d","g"}, // 3
new string[] {"b","c","g","f"}, // 4
new string[] {"a","f","g","c","d"}, // 5
new string[] {"a","f","g","c","d","e"}, // 6
new string[] {"a","b","c"}, // 7
new string[] {"a","b","c","d","e","f","g"}, // 8
new string[] {"a","b","c","d","g","f"} // 9
};
위 표시는 숫자값에 따른 켜질 Led다!
위에만 봐도 FND의 실제 동작을 가늠할 수 있지 아니한가?
위에는 동작관련된것이고.
아래는 세그먼트 표시관련된 것.
// |offset|
// sp2******************sp3
// sp1******************************sp4 <== 세그먼트 1개
// sp6******************sp5
// halfhinkness : 두께의 절반.
//
이것이 기본 컨셉이었다!!
오~~ 그땐 그래도 머리가 잘 돌았나부다. 하하하!!
실제 존재하는 부품 동작 그대로를 프로그래밍 해보았음.
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |
---|---|
FND를 이용한 디지탈 시계 (0) | 2009.05.02 |
데이타베이스 브라우져 ver2 (0) | 2009.05.02 |
처음 만든 이미지 뷰어 (0) | 2009.05.02 |
폼간 데이타 전달 (0) | 2009.05.02 |
DB로컬 연결시 문구
Integrated Security=SSPI;Persist Security Info=False;Initial Catalog={데이타베이스명};Data Source=localhost
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
PWD 암호화 객체. (0) | 2009.05.08 |
---|---|
인터페이스와델리게이트조합1 (2) | 2009.05.08 |
큐브~ (0) | 2009.05.02 |
XML 컨트롤... (0) | 2009.05.02 |
DB Connection Factory (0) | 2009.05.01 |
데이타베이스 브라우져 ver2
앞에 블로깅 한 것에 이전버젼으로 초기에 만들어졌던 브라우져보다 조금 독특한 방식으로 동작됨.
UI는 정말 어쩔수 없는듯 함.
제작의도!
원래는 취업의도로 부족한 경력을 조금이라도 어필해보고자 만들었던 것이고
1년정도 C#을 했던 경험과 공부했던 지식들을 모아서 만들었었음.
이 프로그램은 DB와 상호 작용시 프로시져를 이용하며, 그때 만들어져있던 프로시져생성기와 더블어 사용하게되며 프로시져를 제작 후 해당 프로시져를 프로그램에 등록하게 되면 자동으로 UI를 표출하고 데이타를 가져와서 뿌려주고 추가 수정 삭제 작업역시 동일하게 구현이 됨.
이 기능들을 바탕으로 조금더 나은 UI를 그려내고자 작업하다가 이번에 새로운 브라우져가
만들어졌었다.
UI참... 거시기 하네~~
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
FND를 이용한 디지탈 시계 (0) | 2009.05.02 |
---|---|
FND( SevenSegment ) (0) | 2009.05.02 |
처음 만든 이미지 뷰어 (0) | 2009.05.02 |
폼간 데이타 전달 (0) | 2009.05.02 |
그리드뷰 컨트롤 (0) | 2009.05.02 |