NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# C# .NET 매크로 프로그램 만들기. (매크로 개발 속도를 올려주는 편의 도구 디버그 기능 2부)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 매크로 개발 속도를 올려주는 디버깅 기능을 개발하고 있습니다. 1부에서는 변수 값을 실시간으로 확인할 수 있는 기능을 만들었는데요. 2부에서는 실시간으로 가져온 변수 데이타를 사용자가 직접 수정해서 다음 동작으로 넘어가는 기능을 추가 개발 해볼께요.

     

    대부분의 기능은 이미 개발이 완료 되었기 때문에 약간의 코드만 추가하면 변수를 수정해서 루틴을 이동할 수 있습니다. 아래는 시나리오인데요. 기존 1부에서 테스트한것과 동일하지만, 중간에 조건이 하나 추가되어 있습니다. 숫자가 1씩 증가하면서 70번째가 되면 숫자 체크에서 참이 되고, 마지막 액션으로 이동하는겁니다. 그런데, 변수의 값이 0부터 70까지 올라가는데 시간이 오래 걸리잖아요? 그래서, 사용자가 숫자를 69로 변경해서 한번에 건너뛰는거예요. 이렇게하면 복잡하고 시간이 오래 걸리는 매크로를 좀 더 빠르게 테스트 해볼 수 있습니다.

    USkIX4f.png

     

     

    디버그 창의 데이타그리드뷰에서 셀 수정에 대한 이벤트를 하나 연결 해줍니다. 생각 해보면, 간단하게 처리가 가능해요.

    this.dgvVariables.CellValueChanged += DgvVariables_CellValueChanged;

     

    디버그 창에는 변수 목록과 각종 설정들이 표시되는데요. 수정할 수 없는 항목들은 ReadOnly로 만들고, NewValue만 편집 가능하게 해둡니다. 그리고, 해당 셀을 더블 클릭해서 내용을 수정하면 CellValueChanged 이벤트가 발동되고, 그 안에서 변수를 찾아서 처리할 수 있습니다.

     

    이벤트 핸들러의 내용은 아래와 같습니다.

    private void DgvVariables_CellValueChanged(object? sender, DataGridViewCellEventArgs e)
    {
        var row = dgvVariables.Rows[e.RowIndex];
    
        if (row != null)
        {
            string varName = row.Cells["ID"].Value.ToString();
    
            if ((bool)row.Cells["IsGlobal"].Value)
                _player.Manager.Variables[varName] = row.Cells["NewValue"].Value;
            else if ((bool)row.Cells["IsParent"].Value)
                _player.Parent.Variables[varName] = row.Cells["NewValue"].Value;
            else
                _player.Variables[varName] = row.Cells["NewValue"].Value;
        }
    }

     

    변수 타입은 글로벌, 패어런츠, 콘스탄트로 나뉩니다. 여기서 상수는 변경할 수 없는 값이지만, 디버그 모드에서는 변경할 수 있도록 했습니다. 테스트 환경에서는 다양한 방법으로 확인해봐야 하니까요. 그래서, 코드에서는 글로벌과 패어런트만 체크해서 변수를 가져오도록 되어 있습니다. 그리고, 변경된 값을 변수에 업데이트 해줍니다.

     

    이제 완성된 내용으로 테스트를 해볼께요. 여러분들도 아래 동영상처럼 동작할거예요. 우선, 디버깅 관련 기능은 여기까지 작업하고 다시 액션을 만드는 작업을 이어서 해야겠습니다. 앞으로 추가될 여러가지 액션과 기능들 때문에 디버거도 뭔가 변경점이 있을수도 있으니까요.

     

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.