본문 바로가기

전체 글

[Tips] 등록된 프레임을 갑자기 사용할 수 없을 때 1. 개요 DelphiXE로 넘어오면서 프로젝트 작성시 만들어서 등록해서 사용하던 프레임(TFrame)들이 어느 순간엔가 사용할 수 없게 되는 경우가 발생한다. 폼 위에 프레임을 올리려고 하면 "No frames are available to insert. New frames may be created ...".라는 당황 스러운 메시지와 함께 잘 사용 했던 프레임을 하나도 쓸 수 없을 뿐만 아니라. 기존에 올려져 있던 프레임들도 수정된 프레임을 사용할 수 없는 단계까지 이르게 된다. 이것은 DelphiXE의 버그로도 보이는데 XE3 ~ XE Seatle 버전까지 그대로 남아 있음을 확인 하였다. 이를 재인식 시키는 방법을 알아보자. 2. ProjectXXX.dproj 파일 직접 편집(일반 에디터 이용) .. 더보기
대용량 UTF8 파일 읽기 1. 개요 일반적인 소용량의 Unicode/UTF8 파일은 TStringList나 TStringStream 등을 이용해서 LoadFromFile로 읽어들인 후 여러가지 엔코딩 함수, 예를 들어 UTF8ToWideString, UTF8ToString 등으로 변환할 수 있다. 그러나 대용량일 경우(100M 이상, ~ 수기가)는 메모리 및 속도의 한계로 인하여 한 번에 메모리에 적재하여 사용하기는 어렵다. 이때 적절하게 UTF8 대용량 파일을 Access하는 방법을 알아보자 2. TextFile 핸들을 이용한 대용량 UTF8 파일 Access 일반적으로 Text파일을 직접 Access하기 위해서는 다음과 같이 사용할 수 있다. var F : TextFile; srcLine : String; begin Assi.. 더보기
페이스북(Facebook) Feed 읽어들이기 1. 개요 페이스북의 계정별 FEED를 별도의 개발자 인증 과정 없이 손쉽게 읽기 위한 방법을 델파이로 구현한다. 2. 알아야 할 것들. - 페이스북 Feed를 읽기 위한 AccessToken 얻기 개인별 페이스북 계정에 로그인 한 후에 다음 URL로 접근한다.https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=feedname%2Ffeed%3Ffields%3Did%2Cname%2Cmessage%2Clink%2Ccaption%2Csource%2Cpermalink_url%26limit%3D100&version=v2.6 * feedname에는 수집하고자 하는 feed명을 넣어 주면 된다.* 예를 들어 삼성전자 페이스북 .. 더보기
[Delphi-Tip]지정된 프로그램이 실행중인지 체크 1. 개요 특정 프로그램이 실행 중인지 여부를 판단하기 위한 두가지 방법 2. 프로그램 실행 파일명을 이용한 실행여부 판단 uses TlHelp32; function processExists(exeFileName: string): Boolean; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FPr.. 더보기
Ext JS 테마변경하기 1. Ext JS 테마 변경 프로젝트 폴더(예 : HelloApp)에 "app.json" 파일이 있으며 "builds"섹션에서 테마를 변경한다. "builds": { "classic": { "toolkit": "classic", "theme": "theme-neptune", "sass": { // "save": "classic/sass/save.scss" } }, "modern": { "toolkit": "modern", "theme": "theme-triton", "sass": { // "save": "modern/sass/save.scss" } } }, 더보기
Ext JS6 Hello App 만들기 1. 프로젝트 유형 - 단독 프로젝트 : 단독으로 서비스 및 빌드에 필요한 모든 라이브러리를 포함하고 있는 프로젝트 - 공동 프로젝트 : 여러 프로젝트가 라이브러리를 공유하는 프로젝트 2. 단독프로젝트 생성 - 프로젝트 생성(HelloApp) CMD창에서 작업경로(WorkSpace)로 지정된 경로로 이동 후에 다음과 같이 입력 > C:\WorkExtJS\sencha -sdk c:\ExtJS6 generate app HelloApp .\HelloApp * C:\WorlExtJS 워크스페이스 경로에 HelloApp프로젝트를 HelloApp 폴더에 생성한다 * 프로젝트를 생성하는데 적지 않은 시간이 걸린다. - 프로젝트 폴더 설명(HelloApp) .sancha : 프로젝트 기본적인 설정관련정보 - 개발자가 .. 더보기
Ext JS6 설치 및 환경설정 1. 환경설정 가) JDK 설치 - 설치파일 다운로드 : www.oracle.com : 최소 JDK 1.7 버전 이상 사용해야 함. 나) JDK 환경설정 - 시스템 > 고급시스템설정 > 환경변수에 다음 변수를 설정해 주어야 함. . 시스템 변수 JAVA_HOME : C:\Program Files\Java\kdk1.8.0_25 JRE_HOME : C:\Program Files\Java\kdk1.8.0_25 . PATH에 시스템 변수 추가 (~~);%JRE_HOME%\;%JAVA_HOME%\bin; . Java버전 확인 및 JAVA실행 확인 DOS Command창에서 다음 명령어 실행 버전 확인 : C:\java -version 실행 확인 : C:\javac 다) 센차 커멘드(Sencha Command) 설.. 더보기
[델파이] 바람직한 주석(Comment)달기 [델파이] 바람직한 주석(Comment)달기 개발 단계에서 구현 목적이나 방법등이 소스코드를 살펴보면 알 수 있지만 다른 개발자가 코딩한 소스를 해석하기에는 여간 쉬운일이 아니다. 현 시점에서는 내가 이 프로그램을 지속적으로 관리할 것 같지만 시간이 지나면 누군가 이 프로그램을 유지보수 하고 있을 확률이 대단히 높다. 이때 후임 개발자가 소스 분석시 전임 개발자의 개발의도를 정확히 파악하기 쉽지 않음에 따라 전임 개발자를 평가 절하시킬 수도 있다.. 1. 주석을 달아야 하는 이유 1) 대부분의 개발자는 문서화 작업을 너무 싫어 한다(?)2) 코딩 후 시간이 지나면 나도 잊어버린다.3) 내가 개발한 소스 코드를 남이 수정해야 할 확율이 대단히 높다.4) 유지보수성을 증대 시킨다.5) 프로그램의 완성도를 높.. 더보기