프로그래밍
[Blend4] WPF SketchFlow
[Blend4] WPF SketchFlow
2013.10.04스케치플로우는 프로젝트를 수행하기 전에 기획하는 단계의 스케치를 좀 더 쉽고, 소통이 가능하도록 프로토타입을 만드는 것을 도와주는 프로그램이다. 프로그램이나 디자인을 제작하기 전, 어떤 단계로 프로세스를 진행할 것인지, 화면 구성은 어떻게 할 것인지를 이 프로그램을 통해 쉽게 접근할 수 있다. * 프로젝트 생성하기 Sliverlight가 아닌 WPF으로 프로잭트를 생성하는 이유는 내가 WPF 프로그래머라고 그렇다. 메뉴에서 새 프로젝트를 선택을 하면 총 4개의 프로잭트를 생성 할 수 있다. SketchFlow는 맨 마지막 프로젝트이다. 1. ArtBoard : 블렌드에서 직접 보면서 작업하는 영역, 드로잉 툴로 그릴 수 있는 영역을 제공.(디자이너 입장) 하나의 윈도우 창 (개발자 입장)2. Sketch..
[WPF] KeyDown Event
[WPF] KeyDown Event
2013.08.30XMAL Type some text into the TextBox and press the Enter key. C#private void OnKeyDownHandler(object sender, KeyEventArgs e) { if (e.Key == Key.Return) { textBlock1.Text = "You Entered: " + textBox1.Text; } }XAML에서 KeyDown 이벤트를 설정 해 주고 코드로 와서 key.값을 입력 해준다
[자료구조] Find_if
[자료구조] Find_if
2013.08.09class StuFun { int num; public: void set(int _num) { num = _num; } bool operator()(Stu *stu) { return num= stu->GetNum(); } } //1 void main() { Stu *s = new Stu(6,"홍길동"); StuFun sf; sf.GetNum(6); if(sf(s)) } //2 typedef vector::Iterator SIter void main() { vector *mv = new vector; mv->push_back(3,"홍길동"); mv->push_back(5,"황태주"); mv->push_back(6,"정기성"); StuFun sf; sf.set(5); SIter seek = find_if(m..
[자료구조] Vactor - Reserve()함수
[자료구조] Vactor - Reserve()함수
2013.08.09reserve()함수를 이용하여 메모리 공간(capacity)만 미리 확보하는 것입니다. 메모리 공간(capacity)은 미리 확보했으므로 push_back()함수를 호출해도 메모리 재할당이 발생하지 않습니다.
[자료구조] Vector의 정의
[자료구조] Vector의 정의
2013.08.09vector의 중요한 특징 중 하나가 연속 메모리 기반 컨테이너이므로 요소가 추가될 때 메모리가 자라난다는 것입니다. 추가될 때마다 메모리가 자라난다는 것은 메모리를 재할당해야(메모리의 크기를 늘려야 하므로) 한다는 것을 말합니다. 그래서 너무 비효율적으로 메모리 재할당되는 것을 막기 위해 요소가 추가될 때마다 메모리를 늘리지 않고 미리 여유 메모리 공간을 확보합니다.(여유 메모리의 크기를 늘리는 정책은 컴파일러마다 조금씩 다릅니다. 우리는 VS2008을 사용합니다.) 출처 : http://blog.daum.net/coolprogramming/77
변수 표기법(헝가리안, 파스칼, 낙타, 언더바)
변수 표기법(헝가리안, 파스칼, 낙타, 언더바)
2013.08.09헝가리안 - 역사 헝가리에서 이민을 한 프로그래머가 사용해서 생긴 표기법. - 선언 방법 변수를 선언할 때 형을 구분할 접두사를 이용 하여 복합어를 만듬. ex) 변수선언 int iNumber (변수의 자료형 - 알기 쉬움) b BOOL c char - 헝그리안 단점 1. 변수가 선언이 안되었는데도 변수의 타입과 종류를 알 수가 있다,. 2. 가독성이 떨어진다. 3. 개발 도구의 발전으로 타입의 확인이 쉬어졌다. 4. 해당 변수의 타입이 바뀌 변수의 이름까지 바꾸어야 한다. - 장점 1. 변수 이름만으로 그 변수나 무슨일을 하는지 알수 있다?! 2. 함수이름에 대하여 함수 이름또한 변수 이름과 거의 같습니다. 파스칼 - 클래스, 열거형, 이벤트, 메소드 이름표기 - 변수명이 대문자로 시작함 - 복합어일 ..
[WPF] Binding Property
[WPF] Binding Property
2013.08.02RelativeSource바인딩 대상의 위치에 상대적인 위치를 지정하여 바인딩 소스를 설정- Self : 자기 자신- FindAncestor : 부모- TemplatedParent : Tamplate를 적용한 element (TemplateBinding과 동일 기능)- PreviousData : 테이터 리스트에서 이전 데이터 SourceBinding은 기본적으로 DataContext에 바인딩되므로 명시적으로 Binding 소스를 지정 ElementName가져올 소스를 Element로 지정Source, RelativeSource와는 같이 사용될 수 없다. Converter테이터 변환 BindsDirectlyToSource ( True or False(default))직접 바인딩 경로를 지정 Converte..
[WPF] Binding(바인딩)
[WPF] Binding(바인딩)
2013.08.01Binding 이란 data, 혹은 property 를 서로 연결하여 서로 동적으로 변환 및 참조할 수 있도록 한다. 즉, 한 엘리먼트의 프로퍼티를 다른 엘리먼트의 프로퍼티, 혹은 데이터와 연결하는 과정이다. 바인딩을 통해 쉽게 서로 값들을 참조하여 동적으로 변경시킬 수 있고, 긴 처리 없이 간단하게 리스트에 DataTable 을 표시하는 등 장점이 많기 때문에 WPF로 작업할 때 바인딩은 필수적으로 사용한다. 바인딩 모드는 OneTime, OneWay, OneWayToSource, TwoWay 의 4가지가 존재한다.OneTime : 최초 한번만 값을 전달OneWay : A를 B에 바인딩했다면, B의 값이 변경되면 A의 값도 변경. 하지만 A의 값이 변경되었을 시 B의 값은 변경되지 않음OneWayToS..
[C#] System.Security.SecurityException Window Serveice 등록시 Install Error
[C#] System.Security.SecurityException Window Serveice 등록시 Install Error
2013.07.23어쩌다 한번씩 윈도우 서비스를 만들어 처리해야할 경우가 있습니다.이럴때마다 서비스 등록시 아래와 같은 에러를 만나게 됩니다.워낙 드문 드문 하다보니 매번 잊어버리고 시간을 허비하게 하는 에러중 하나입니다. Service1 서비스를 설치하고 있습니다... EventLog 소스 Service1을(를) 로그 Application에 만들고 있습니다... 어셈블리 'C:\CrmService\CrmService\bin\Debug\CrmService.exe'을(를) 롤백하고 있습니다. 영향을 받는 매개 변수: logtoconsole = assemblypath = C:\CrmService\CrmService\bin\Debug\CrmService.exe i = logfile = C:\CrmService\CrmServic..
[C#] Serial Port, DiscardInBuffer
[C#] Serial Port, DiscardInBuffer
2013.07.18SerialPort serial;serial.DiscardInBuffer(); DiscardInBuffer() DiscardInBuffer는 수신 버퍼의 데이터를 모두 삭제할 때 쓰는데, 다량의 데이터를 수신 했을 시 소스에서 미쳐 처리하지 못하면 계속버퍼에 데이터가 쌓이고 데이터를 갱신, 출력 못하는 버퍼에 있는 데이터를 우선 출력해줍니다. 만약 최신 데이터를 유지해야하는 경우 예를 들면, 온도 데이터를 수신하는 중이라고 할 때 온도와 같이 수시로 변하는 데이터는 최신 값이 유지 출력 되어야 된다. 이럴 때 꼼수로 버퍼 데이터를 삭제 해주면 최신의 값을 유지 할 수 있다.
[C#] Console.Write & WriteLine 차이점
[C#] Console.Write & WriteLine 차이점
2013.05.31C# Console 프로그램을 하면 문자들을 출력하는 2개의 함수를 볼 수 있습니다. C# 콘솔에서 가장 많이 쓰이는 함수들이죠. Write 와 WriteLine 함수의 차이점을 간단히 이야기를 하면 Write와 WriteLine 함수는 괄호 안에 있는 문자열을 화면에 출력을 해 줍니다. 하지만 WriteLine은 문자열 뒤에 뉴라인(NewLine)문자를 추가합니다. Test Exampleusing System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Console.Write("..
[WPF] Dynamic Resource & Static Resource
[WPF] Dynamic Resource & Static Resource
2013.05.21Dynamic(동적), Static(정적) 리소스 이다. 간단히 이야기 하면 정적 리소스는 처음 참조가 한번 이루어지고 리소스의 변경을 관리 하지 않는다. 즉 값이 아무리 바뀌어도 변경이 되지 않는다는 소리다. 하지만 동적 리소스는 값이 사용 될 때 마다 변경 여부가 확인이 이루어진다. 즉, 실시간 계산이 보류 되었다가 계산이 된다. 두 가지의 리소스를 쓰는 방법은 상황에 따라 다르다. 데이터 바인딩과 변경이 동시에 이루어지는 시나리오에서는 동적 리소스를 하지만 변경이 거의 일어나지 않는 시나리오에서는 정적 리소스를 참조를 하는 것이 맞다. 정적인 리소스 처음으로 참조한 리소스의 값을 변경할 의도가 없는 경우페이지나 응용프로그램에 리소스를 모아 주로 사용 할 경우DependencyObject 또는 Fre..