반응형

Programming 211

TWebBrowser 페이지 로딩완료시까지 대기하기

procedure WaitForWebLoding(Web: TWebBrowser); begin while Web.ReadyState READYSTATE_COMPLETE do Application.ProcessMessages; end; TWebBrowser 에도 페이지가 로딩이 다 되면 떨어지는 이벤트가 있다. 하지만 이 것은 정상적으로 로딩이 다 되지 않아도 호출되거나, 2번 호출되는 등의 문제가 있다. 하지만 소개한데로 하면 완벽히(?) 로딩될때까지 대기한다. 단, Refresh로 페이지 새로고침을 했을경우에는 먹히지 않는다는점~

Programming/Delphi 2011.01.21

[Local DB] NexusDB

원래 SQLite 를 사용하려고 검색하다가 우연히 NexusDB를 알게 되었다. 파이어버드니 SQLite니 배포시에는 반드시 dll을 같이 배포해야 하는데 이 NexusDB는 배포할 때 다른 것이 필요가 없다. 델파이로 만들어 졌다고 하는데 델파이에서 사용하기에는 딱인거 같다. 도움말도 잘 되어있고, 자체적으로 엔터프라이즈 관리자까지 제공해주기 때문에 뭐하나 흠잡힐데가 없다. 단점은 더 사용하면서 봐야겠지만, 매우 만족임 ㅎㅎㅎ 거기다가 라이센스는 개발자용은 공짜다. dcu만 제공되고 source는 제공되지 않는다. 단, 구매를 할 경우에는 source가 제공된다. 이건 뭐... 좋은거임 ㅋㅋ http://www.nexusdb.com/support/ 자세한 사용법 찾으려고 고생하지 마시길.... 도움말 ..

Programming/Delphi 2011.01.12

E2220:Never-build package '%s' requires always-build package '%s'

델파이 컴포넌트를 설치하고 나서 해당 컴포넌트를 사용한 프로젝트를 컴파일했을 때 위와 같은 에러가 날 때가 있다. 구글신에게 물으니 바로 답이 나오더라. 시키는데로 하니 정상적으로 컴파일 잘 됨. 해답은 아래의 링크 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_nobuild_requires_xml.html

Programming/Delphi 2011.01.11

프로그래머 면접시 예상질문

이번에 SK컴즈 면접대비용으로 준비한 것이다. - 임계영역(critical section) 임계 구역(critical section)또는 공유변수 영역은 병렬컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다. 임계 구역은 지정된 시간이 지난 후 종료된다. 때문에 어떤 스레드(태스크 또는 프로세스)가 임계 구역에 들어가고자 한다면 지정된 시간만큼 대기해야 한다. 스레드가 공유자원의 배타적인 사용을 보장받기 위해서 임계 구역에 들어가거나 나올때는 세마포어 같은 동기화 매커니즘이 사용된다. - 뮤텍스(Mutex, Mutual Exclusion object, 상호배제) 스레드들 간에서 공유가 배제되는 객체. 파일과 같은 공유 자원이 수행 중..

Programming/Etc 2010.12.16

RTOS(Real-Time Operating System) 란?

RTOS(Real-Time Operating System) 실시간 운영체제의 약자로서 사전적인 의미는 다음과 같다. "디스크를 이용한 다중 프로그래밍 운영체제, 우선 순위가 높은 전위에서는 실시간 다중 프로그래밍을 하며, 우선 순위가 낮은 후위에서 일괄 처리를 한다. 디스크로부터의 프로그램 입력과 디스크로로의 프로그램 출력은 자동적으로 수행되며 동적인 주 기억 장치 할당 방식을 쓴다. " RTOS나 OS 나 별반 크게 다를 것은 없다. 다만 Real-Time 이라는 개념과 조건이 붙어 있는 것이 차이인 것이다. 즉, 임베디드 시스템의 특성상 Real-Time 조건을 만족하기 위해 만들어진 것이라고 정의하고자 한다. RTOS 가 사용된느 분야는 두 가지 분야가 있다. 멀티프로세서 시스템과 임베디드 시스템이..

Programming/Etc 2010.12.16

데드락 (deadlock)

1. 정의 - 영원히 오지않는 event를 기다리는 것 - 예를 들면 A라는 프로세스는 B가 가진 자원이 있어야만 동작 가능하여 B의 작업이 끝나기를 기다리고 있는데, B도 A가 가진 자원이 필요해 A가 끝나기를 기다리는 상태. 결국 두 작업은 영원히 끝날 수 없게 된다. - starvation은 어떤 한 작업의 차례가 오지 않아 영원히 기다리는 것이어서 무언가 생산적인 활동은 일어나고 있는 반면(다른 프로세스는 동작하고 있기 때문에), deadlock은 작업 자체가 이루어지지 않아 생산적인 활동 자체가 없다. 2. 발생 조건 4가지 조건을 동시에 만족하면 데드락이 일어날 수 있음 - Mutual exclusion ; 한번에 오직 1개의 프로세스만이 자원에 접근가능 - Hold and wait ; 최소한..

Programming/Etc 2010.12.16

프로그램 중복실행 방지

기본적으로 뮤텍스를 사용하여 중복실행 여부를 체크한다. program Project; uses Forms, Windows, Dialogs, unt_Main in 'unt_Main.pas' {frm_Main}; var Mutex : THandle; {$R *.res} begin Mutex := CreateMutex(nil, True, 'BDGG');//'YourMutex'); if (Mutex 0 ) and (GetLastError = 0) then begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(Tfrm_Main, frm_Main); Application.Run; end else begin..

Programming/Delphi 2010.12.16
반응형