Bug! Help!




신고
Posted by ParkPill 박필



혹시 써먹을 일 있나.. 싶어서 뚝딱 만들었음 ㅎㅎ

뿌리는 김에 내 어플 광고도 ㅎㅎ

다운 받으실 분들은 받으시고~

공부하실 분들은.. 뭐 너무 간단하지만 보시고 ㅋㅋ


아래 코드요~

더보기






 





또 다른 인기 어플! 겁나 그럭저럭 어려운 퍼즐!

Gem Master! The most difficult puzzle!


다운로드 :  http://itunes.apple.com/us/app/gem-master!-lite/id499444540?mt=8
신고
Posted by ParkPill 박필



RotateFlipType을 Property Grid View에서 열어보면 같은 Item이 두 개씩 보이는 걸 알 수 있다.

그 이유는 RotateFlipType.cs 파일을 열어보면 알 수 있다. 

다음의 내용이 바로 그 이유!

public enum RotateFlipType
  {
    Rotate180FlipNone = 2,
    Rotate180FlipX = 6,
    Rotate180FlipXY = 0,
    Rotate180FlipY = 4,
    Rotate270FlipNone = 3,
    Rotate270FlipX = 7,
    Rotate270FlipXY = 1,
    Rotate270FlipY = 5,
    Rotate90FlipNone = 1,
    Rotate90FlipX = 5,
    Rotate90FlipXY = 3,
    Rotate90FlipY = 7,
    RotateNoneFlipNone = 0,
    RotateNoneFlipX = 4,
    RotateNoneFlipXY = 2,
    RotateNoneFlipY = 6
  }

 Enumeration Item에 같은 값들이 들어가 있는 경우가 있다.

이는 두 가지의 경우가 같은 결과물을 만들어내기 때문이다.

RotateNoneFlipX 는 Rotate180FlipY와 같은 모양을 나타낸다는 것을 자~알 생각해보면 알 수 있을 것이다.

그리하여~ Property Grid에서는 같은 값이 나타난다.

물론 그냥 보여주면 참 좋겠지만;;

웃기지마 MS! 난 다 보여줄꺼야~ 하시는 분들은 System.Drawing.Design.UITypeEditor 를 사용하여 새로운 Editor Form을 만들어 사용하시면 됩니다 ㅎㅎ 





또 다른 인기 어플! 겁나 그럭저럭 어려운 퍼즐!

Gem Master! The most difficult puzzle!


다운로드 :  http://itunes.apple.com/us/app/gem-master!-lite/id499444540?mt=8  
신고
Posted by ParkPill 박필

 음.. 안된다. 하지 말길 바란다. ㅡ.ㅡ;

엑셀을 깔아야 .Net에서 쓸 수 가 있다.

그냥 우리 .csv 쓰자.

혹시 설마 이게 뭔지 모르는 사람을 위해 간단히 설명하자면

이름,나이,잘생김정도,키
박필,29,Very Good,174
랑케,29,Good,178
풍생,29,Good,182

이렇게  FileStream으로 걍 쓰면 된다.




엑셀이 깔린 PC인데 되지 않는 경우는 아래의 링크를 참조 바람.

은하의 신나는 개발이야기




혹시나 또 설마 FileStream 공부하기 귀찮은 분들을 위해 이것마저 링크 걸어드립니다.

GhostSheep's Blog 
신고
Posted by ParkPill 박필

Here it is!

tbCurrentData.Select(tbCurrentData.Text.Length, 0);

in fact,   it is all in MSDN :p

Have a good day~ 
신고
Posted by ParkPill 박필

DataGridView의 Row Header의 왼쪽에 까만 삼각형이 있다. 짱나게.. -_-;

없애는 법! 있긴 있다 ㅎㅎ

RowHeaderDefaultCellStyle 에서 Padding 에 한 100 쯤 넣어서 타이틀을 다 Header 밖으로 다 보내버리고
(만약 RowHeader에 넣을 Text가 없다면 위의 방법으로 이미 해결이 되었을 터이다)

RowPostPaint이벤트를 사용하여 따로 그리면 된다. 아래처럼 ㅎㅎ

object o = dgvTable.Rows[e.RowIndex].HeaderCell.Value;

            if(o != null && !string.IsNullOrEmpty(o.ToString()))
            {
                e.Graphics.DrawString(o.ToString(), dgvTable.Font, 
                                      Brushes.Black, 
                                      new PointF((float)e.RowBounds.Left + 2, 
                                      (float)e.RowBounds.Top + 4));
            }

 아;; 참 별로다.

위의 방법으로는 긴 TEXT는 Cell 의 영역까지 침범해버린다.

결국 RowHeader의 크기를 알아낸다음 같은 크기의 Bitmap을 만들고 그 안에 잘 정렬해서 String을 그린 후

이미지를 RowHeader의 (0, 0)에 그리는 수 밖에 없다.

다시 한 번 말하지만 참.. 별로다;;

 
신고
Posted by ParkPill 박필

 아.. 귀찮다. ㅡㅡ;

필요한 클래스는 세가지.

MarshalByRefObject를 상속하는 Class. 이 놈이 Server에서도 쓰이고 Client에서도 쓰인다.
RemoteObject : MarshalByRefObject

Server클래스에서는 아래 두 줄만 추가해주면 된다.

ChannelServices.RegisterChannel(new TcpChan());
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject), "TESTUri", WellKnownObjectMode.Singleton);

Client측에서는 아래 두 줄만 추가해주면 된다.

ChannelServices.RegisterChannel(new TcpChannel());
RemoteObject _rmtObject = (RemoteObject)Activator.GetObject(typeof(RemoteObject), "tcp://127.0.0.1:9999/TESTUri");


더 이상의 설명은 귀찮다. ㅡㅡ;
필요하면 아래 코드 다운받아 쓰시도록ㅎㅎ

물론 위의 방법은
Single Call, Singleton, Client Activated Object 중 Singleton이며

Code와 Configuration 방법 중 Code에 해당한다.

더 궁금한 사항이 있다면 아래의 글을 참조바란다. 아주 쥑이게 정리 잘 해놨다.

http://hoons.kr/Board.aspx?Name=cshaptip&Mode=2&BoardIdx=469&Key=&Value=

더보기



신고
Posted by ParkPill 박필





오토마타.

얼마전 string pad 한글 지원을 위해 찾아본 오토마타.

알고리즘과 같은 어떤 개념 같았는데 영 공부하기가 귀찮아서
 
아래 유니코드 한글 코드표를 보고 알고리즘을 만들어 버렸다.


LibHangul 이라는 오픈 소스도 찾았으나 사용법을 배우기 귀찮아서

역시 그냥 만들어 버렸다.


혹, 만들기가 더 귀찮거나 남이 만든거 공부해서 사용하는게 편한 사람은

받아가셔요~


그리고 역시 내가 나중에 쓸 수도 있기에 백업삼아 올려놓는다 ㅋㅋ

수고요~



- 유니코드 자모값의 코드표 : http://www.unicode.org/charts/PDF/U1100.pdf
- 유니코드 완성형 한글 코드표 : http://www.unicode.org/charts/PDF/UAC00.pdf


 

신고
Posted by ParkPill 박필

짧고 굵게 설명 들어간다.

 - const -
 const는 선언시 값이 할당되어야 한다.
 한 번 할당하면 바꿀 수 없는 '상수'인 것이다.
 private const int HEIGHT_OF_TOOL = 72;



 - readonly -
 readonly는 생성자에서 한 번 더 할당할 수 있다.
생성자가 오버로드 되면 값을 때에 따라 값을 달리 할 수 있는 것이다.
그래서인지 선언시 값을 할당하지 않아도 된다.
 private readonly int HEIGHT_OF_TOOL;

public ToolManager()
{
HEIGHT_OF_TOOL = 10;
}

public ToolManager(int height)
{
HEIGHT_OF_TOOL = height;
}

 
마지막으로 한 가지 덧붙이자면,

const는 static이다.

readonly는 아니다. 하지만 앞에 static 써주면 그만이다. ㅡㅡ;

그래서! readonly가 좋다.


아직도 이유가 애매한가?

readonly는 const가 할 수 있는 모든 일을 하면서

확장성을 가지고 있다는 말이다. C#에까지 와서 굳이 const를 쓸 일이 무어란 말인가.


더보기

신고
Posted by ParkPill 박필


MSChart가 편하다는 소리를 듣고 받아서 실험해봤다~!

MSChart는 VisualStudio 사용자에게 무료배포 되는 것이니 우선 깔아설치하시고~
(홈피 가면 있겠~죵?)

별거 없슴당!

2D 와 3D 기능은 자체 구현되어 있어서 3D Enabled에 true 넣어주시면 3D로 변신하구요.

아래 프로젝트에서는 Thread로 돌려 랜덤값을 집어넣었습니다.

실시간으로 업데이트 되는 그래프는 조금 코딩이 필요해서 아래의 프로젝트에 구현해놓았으니

필요하신 분은 따운! 받으시길 바랍니다 ㅎㅎ

그리고 마지막 강점으로 Serializer라는 놈이 있어서

꽤나 쉽게 파일로 출력하거나 입력받을 수 있습니다.

뭐, XmlSerializer을 Chart Control이 담고 있다고 보시면 되겠네요.

그럼 수고요~


3D 화면



2D 화면

Serialize 화면




신고
Posted by ParkPill 박필


티스토리 툴바