퇴근5분전

 

 

닷넷 카페에 질문글이 올라왔는데...

답변을 하려니 ... 전에 만들어 두었던 것들을 찾기 쉽지 않아서...

그냥 새로 간단하게 만들어 올림.

 

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        PointF origin = new PointF(200f, 200f);
        float angle = 45f; // 각도
        float r = 100; // 반지름
        float startOffset = 10;

        Pen linePen = new Pen(Color.Black, 1f);
        Pen ellipsePen = new Pen(Color.Blue, 1f);

        Brush degree_0_dotBrush = new SolidBrush(Color.Red);
        Brush degree_90_dotBrush = new SolidBrush(Color.Yellow);
        Brush degree_180_dotBrush = new SolidBrush(Color.DarkBlue);
        Brush degree_270_dotBrush = new SolidBrush(Color.Green);

        Brush degree_result_dotBrush = new SolidBrush(Color.BlueViolet);

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //외곽선 그리기
            e.Graphics.DrawRectangle(linePen, startOffset, startOffset, origin.X * 2, origin.Y * 2);
            //x축 그리기
            e.Graphics.DrawLine(linePen, new PointF(startOffset, origin.Y + startOffset), new PointF( origin.X * 2 + startOffset, origin.Y + startOffset));
            //y축 그리기
            e.Graphics.DrawLine(linePen, new PointF(origin.X + startOffset, startOffset), new PointF(origin.X + startOffset, origin.Y * 2 + startOffset));

            // 원그리기
            e.Graphics.DrawEllipse(ellipsePen, startOffset + origin.X-r, startOffset + origin.Y-r, 2*r, 2*r);

            // 0도
            float x = r * (float)Math.Cos(ConvertRadian(0d));
            float y = r * (float)Math.Sin(ConvertRadian(0d));
            e.Graphics.FillEllipse(degree_0_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
            // 90도
            x = r * (float)Math.Cos(ConvertRadian(90d));
            y = r * (float)Math.Sin(ConvertRadian(90d));
            e.Graphics.FillEllipse(degree_90_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);

            // 180도
            x = r * (float)Math.Cos(ConvertRadian(180d));
            y = r * (float)Math.Sin(ConvertRadian(180d));
            e.Graphics.FillEllipse(degree_180_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);

            // 270도
            x = r * (float)Math.Cos(ConvertRadian(270d));
            y = r * (float)Math.Sin(ConvertRadian(270d));
            e.Graphics.FillEllipse(degree_270_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);

            // 실제 구하는 좌표 값
            x = (r + 10 ) * (float)Math.Cos(ConvertRadian(90d + 45d));
            y = (r + 10) * (float)Math.Sin(ConvertRadian(90d + 45d));
            e.Graphics.FillEllipse(degree_result_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);

        }

        private double ConvertRadian(double angle)
        {
            return angle * Math.PI / 180d;
        }
    }

 

기존에 Addins 으로 개발해서 사용하던 걸

Vspackage로 개발을 다시 하고 있다. 2014까지는 Addins으로 잘 되지만 2016부터는 안먹어서...

그나저나 2016으로 ssms는 처음 AddIns으로 개발했었는뎅... 이상하네.. 안먹는다.

2017에서도 동일하게 올라오는것을 확인했고, 기존 AddIns 기능으로 모두 옮기는 작업만 하면 된다.

   1. 쿼리 포맷정렬

         : 쿼리를 내가 만들어놓은 포맷 형태로 재정렬한다.

   2. 쿼리에서 컬럼 뽑아내기

         : 정렬된 쿼리에서 컬럼:설명을 뽑아낸다.

   3. 그리드 틀고정

         : 그리드의 컬럼에 대하여 고정시킨다. 

          - 컬럼이 아주 많을때 앞쪽 특정 열을 고정하여 뒤 데이타만 스크롤 되게 만듬 ( 엑셀 틀고정 같은 기능 )

   4. 그리드 컬럼 검색

          : 그리드의 컬럼이 많을때 컬럼을 검색해서 바로 찾아감.

   5. 그리드 컬럼 뽑아내기

          : 2014까지는 데이타가 조회안되면 컬럼목록만 뜨는데 이 컬럼목록을 기본 컨텍스트 메뉴 기능으로 복사하면 에러난다.

          - 그래서 복사하는 기능을 만들었었음. 2017에선 필요없는 기능.

   6. 객체 검색

         : 테이블, 프로시져등... 검색하면 바로 목록으로 보여준다.

           항목을 더블클릭하면 개체 탐색기에서 해당 항목으로 바로이동한다.

 

  -- 변환 완료.

>> 기존에 addins 으로 개발되어 있던거 vspackage로 변경.

>> 2016, 2017 버젼도 완성.

추가된 기능을 일부 찍어봤음.

# 결과 탭 ( 틀고정 : 스크롤 하면 고정된 열 다음부터 스크롤 가능 )

   - 첫번째 그리드 두번재 열 ( 파란색 표시 )

   - 두번재 그리드 세번째 열 ( 파란색 표시 )

# 우측 검색창,

   - DB의 table, procedure, function 를 검색해서 보여줌.

     : 더블클릭시 개체탐색기의 이동하여 해당 개체를 선택해 줌.

 

 

기존에 하나의 프로젝트 만들었던 비주얼스튜디오 확장 프로그램을 쪼개었다.

1. FindMethodList [O] : 소스내에 메서드 목록 탐색.    
 - 특정 메서드명에 포함된 단어에 색을 입혀 눈에 띄게 만듬으로 빨리 찾아가는게 가능.
 >> JSFW.VS.Extensibility{2017}.FindingMethodList
 

2. FunctionSnippet [O] : 스니핏
    - 특정 구문들을 스니핏으로 만들어 사용가능함.
 >> JSFW.VS.Extensibility{2017}.FunctionSnippet


3. FunctionTodoList [0] : 화면디자이너에서 등록한 기능 목록 보기
    - NPT.화면디자이너에서 등록한 기능목록을 보거나 추가, 삭제가능.
 >> JSFW.VS.Extensibility{2017}.FunctionTodoList


4. ScheduleWrite [0] : NPT.작업이력관리 내역 등록
 - NPT.작업이력관리 목록에 내역을 등록하는 기능
 >> JSFW.VS.Extensibility{2017}.ScheduleWrite


5. SourceTip [O] : 소스팁 관리 기능
 - 소스상에서 알아야 할 구문들이나 내용을 관리하는 기능. - 언제든 소스에서 확인가능!
 >> JSFW.VS.Extensibility{2017}.SourceTip 


6. VariableUsingView [O] : 변수사용뷰
 - 소스( .cs파일내 )에서 체크한 변수의 사용처를 한 눈에 볼 수 있도록 뷰를 제공.
 >> JSFW.VS.Extensibility{2017}.VariableUsingView


7. HelpPropertyDescript [△] : 프로퍼티에 대한 사용 방법 검색 ( 등록 )
 - 소스의 프로퍼티명으로 검색 > 해당 타입까지 알아냄 > 사용방법의 소스를 기록후 차후에 뒤져볼 수 있음.
 - Nuget 설치 필요.
 >> JSFW.VS.Extensibility{2017}.HelpPropertyDescript

       

 

 

 

 음.. 새해가 되었네.

SQL 포맷터는 재정비를 마쳤다.

내일은 이력서 오픈 해야지.

잘 구해져야 할텐데....

 

올해도 열심히 일하자... 

 

아두이노 가지고 놀아볼까?

올해는 기사 자격증이라도 따놔야겠네.

'--- 취미 > 생각하기' 카테고리의 다른 글

마이크로 녹음된 내 목소리  (0) 2018.03.03
재 계약 실패...  (0) 2018.02.02
3개월 쉬면서...  (0) 2017.12.27
무엇을 할까???  (0) 2017.10.23
데브피아에 올라온 글 중에서...  (0) 2017.07.21