설정내용을 외부에 저장하기

프로그램의 설정을 다음 번에도 사용하기 위해서는 프로그램 외부에 설정내용을 저장해야 한다. VB2005부터는 My.Settings라는 클래스를 통해서 설정내용을 저장할 수 있다.
프로젝트 디자이너에서 응용 프로그램 설정을 추가하려면
1. 솔루션 탐색기에서 프로젝트를 선택하고 프로젝트 메뉴에서 속성을 클릭합니다.
2. 설정 창을 선택합니다.
3. 설정 표의 빈 행을 클릭합니다.
4. 이름 열에 설정 이름을 입력합니다. 이름에는 공백을 사용할 수 없습니다.
5. 형식 드롭다운 목록에서 설정의 데이터 형식을 선택합니다.
6. 범위 드롭다운 목록에서 설정 범위를 선택합니다. 설정 범위는 응용 프로그램 또는 사용자가 될 수 있습니다.
7. 값 열에 설정의 기본값을 입력합니다. 값은 선택한 데이터 형식에 적합해야 합니다.

문자열 비교를 효과적으로 하기

문자열이 NULL인 경우를 판단해야 할 때가 많다. 특히 파일명을 입력받는 과정에서 아무값도 넘겨주지 않는 경우도 고려해야 한다.
일반적으로 문자열비교는 그 내용을 가지고 하지만, NULL인지 여부를 판단하는 경우에는 문자열의 길이로 판단하는 것이 훨씬 빠르다.

An Object Is a Bundle of Capabilities

Allen Holub says,

An object is defined by what it can do, not by how it does it.

Never ask an object for information that you need to do something; rather, ask the object that has the information to do the work for you.

[solarview’s comment]
객체에게 물어야 하는 것은 어떤 정보를 가졌느냐가 아니라, 오히려 뭘 해달라고 하는 것이다.
객체가 정보도 갖고, 행위도 갖고 있으나, 행위에 관심을 가지라는 뜻이다.
이것은 어쩌면 과거의 동일한 기능을 가진 함수들을 모아서 모듈화를 꿈꾸었던 것과 별반 다르지 않는듯 보이게 한다. (2/9/08)

폼에서 마우스 포인터 모양 바꾸기

오랜 시간이 걸리는 작업을 컴퓨터에게 시킬 경우, 대부분의 프로그램에서는 커서의 모양을 모래시계로 바꾸어 놓는다. 작업이 끝나면 원래의 커서 모양으로 환원시키는 것이 일반적이다.
그럼, 비베닷넷에서 어떻게 커서의 모양을 바꿀까?

폼내의 코드에 아래와 같은 코드를 넣으면 된다.

Twip 과 Pixel

Twip
– 화면 독립적인 단위(screen-independent unit). 모든 화면출력장치에서 화면 요소의 비율을 동일하게 한다.
– 1 twip은 1인치(inch)의 1/1440
– 1 twip = 1/20 pixels

Pixel
– 화면 종속적인 단위(screen-dependent unit)
– ‘picture element’의 약자
–  1
pixel은 화면에 표시되는 가장 작은 그래픽 측정 단위임.
– 1 pixel = 1/72 inch
– 1 pixel = 20 twips

Visual Basic 6.0의 기본 측정 단위는 twips
Visual Basic 2005의 기본 측정 단위는 pixels.

– Twip과 Pixel은 관계는 화면에 따라 다르다. 그래서 Screen.TwipsPerPixelX, Screen.TwipsPerPixelY를 이용해서그 값을 구한다.(VB 6.0)

[VBA]PERT/CPM를 위한 엑셀 (Excel Spreadsheet for Critical Path Mathod)

간단한 작업 입력으로 PERT/CPM의 주요 계산을 수행하는 프로그램이다.

공장 또는 작업현장에 있어서의 원자재로부터 최종제품에 이르기까지의 자재,제품조립 및 종합 조립의 흐름을 순서 정연하게 능률적인 방법으로 계획하고 공정을 결정하고 예정을 세워 작업을 할당하고 감독하는 절차가 공정관리이다.

작업 흐름을 순서정연하게 하는 방법 중의 하나가 주공정법(critical path method)으로 본 프로그램은 주공정법을 수행할 수 있도록에 작성되었다.

작업명, 설명, 소요일수, 선행작업 등을 입력하여 공정시간과 여유시간을 계산하여 출력하고, 작업흐름을 한 눈에 볼 수 있도록 간트 도표를 출력한다.

엑셀 프로그램의 특징

1) 작업의 공정시간(EST, EFT, LST, LFT)을 계산한다.
2) 작업의 여유시간(TF, DF, FF)을 계산한다.
3) 작업의 주공정(Critical Path) 여부를 판단한다.
4) 작업의 바 차트를 그려준다.

프로그램의 구성
1) 사용설명서 시트 -> 사용을 위한 주의사항이 있음 (매크로 사용시 필독)
2) 입력 시트 -> 사용자가 직접 입력하는 부분과 계산 부분이 함께 있음
3) 바 차트 시트

프로그램 설명

사용자 삽입 이미지

Download file : CriticalPath.XLS

1) 입력시트에서 작업명, 설명, 소요일수, 선행작업 등을 입력한다.
– 작업명은 알파벳으로 한글자 이상 입력한다
– 설명에는 작업 내용을 기술한다.
– 선행작업이 둘 이상일 때는 쉼표로 구분한다.
2) 입력이 완료되면, 계산실행 단추를 누른다.
3) 공정시간과 여유시간을 계산하여 출력한다. 또한 간트도표를 별도의 시트에 출력한다.

참고한 논문에서는 엑셀의 내장 함수를 이용하여 계산하였으나,
본 엑셀은 내부적으로 비주얼베이직(Visual Basic)을 이용하였다.

If you want to read an english post, please click here.

한글 텍스트 파일 읽기

한글 텍스트 파일을 읽기 위해서는 인코딩을 다음과 같이 지정해 주어야 한다.

Code Library 기능을 하는 DLL 만들기

Visual Basic 6.0에서 DLL만들기를 하려면, 다음과 같은 절차대로 실행한다.

1. VB에서 새 ActiveX DLL 프로젝트를 만든다

2. 프로젝트에서 클래스 모듈을 새로 만든다

3. 클래스 모듈의 Instancing 속성을 GlobalMultiUse로 설정한다. 그러면, 그 프로시저를 원하는 모든 프로젝트에 프로시저가 표시되며, 전역 프로시저처럼 실행된다.

4. 코드에서 필요한 모든 개체 라이브러리에 대해 참조를 설정한다.

5. 코드 라이브러리의 프로시저를 클래스 모듈에 Public Function 프로시저와 Sub 프로시저로 추가한다.

6. “프로젝트”메뉴의 속성을 클릭하고 Project Name속성에 대해 새 값을 입력하여 “프로젝트 이름”을 원하는 코드 라이브러리 이름으로 바꾼다.

7. DLL을 만든다. (compile)

 

DLL 사용하기

DLL에 참조를 설정하려면 “도구”메뉴의 “참조”를 클리하고 “찾아보기” 단추를 이용하여 DLL을 찾는다. 또는 declare문을 사용하여 DLL의 개별 프로시저에 대해 참조를 설정할 수도 있다.