본문 바로가기

Delphi

[VCL] 용량이 큰 JPEG 파일 다루기 - JPEG 라이브러리 조사 프로젝트 중 큰 용량의 JPEG 파일을 다룰 필요가 있어, 64-bit를 지원하는 JPEG 라이브러리를 조사한 내용 공유합니다. 고객사에서는 카메라에서 제공하는 이미지의 해상도가 높아짐(16384 x 29300)에 따라 64-bit 애플리케이션으로 마이그레이션을 계획했고, 성공적으로 완료했습니다. JPEG 라이브러리 그 과정 중 검토한 JPEG 라이브러리는 다음과 같습니다. TJPEGImage(VCL 내장 JPEG 라이브러리) libJPEG-Turbo Intel IJL / IPP(IJL 64-bit 미지원, IPP 상용) 고객사의 기존 프로젝트에서는 IJL을 이용해 JPEG을 다뤘지만, IJL은 개발이 중단되었고 64-bit를 지원하지 않아 검토 대상에서 제외되었습니다.(IPP로 통합되어 상용으로 판매 .. 더보기
[XE7] XML DOM 벤더(MSXML, ADOM, OmniXML) 설정하기 RAD Studio XE7에서는 새로운 XML DOM(Document Object Model)인 OmniXML이 추가되어 현재 총 3가지의 XML DOM을 사용할 수 있습니다.MSXMLADOMOmniXMLXML DOM은 문자열로된 XML 데이터를 분석해 프로그래밍에서 사용할 수 있도록 구조화하는 역할을 합니다.각 XML DOM을 비교하면 아래와 같습니다.(docwiki.embarcadero.com 참고)구현단위전역 변수 값설명MSXMLXml.Win.msxmldomSMSXMLWindows 전용, RAD Studio의 내장 XML 공급 업체 중 가장 빠름.크로스 플랫폼에서 XML DOM 벤더를 선택하지 않으면 실행 시 런타임오류 발생.OmniXMLXml.omnixmldomsOmniXmlVendor크로스 플랫.. 더보기
[XE7] 안드로이드 브릿지 파일을 생성할 수 있는 Java2OP.exe을 다운로드 하세요. RAD Studio XE7(델파이, C++빌더) 구입 하신 분들은 Java2OP 커맨드라인 유틸리티를 다운로드 할 수 있습니다.http://cc.embarcadero.com/item/30007Java2OP(Java to Object Pascal) 커맨드라인 툴은 델파이 안드로이드 어플리케이션에서 자바 라이브러리를 사용할 수 있도록 자바 클래스 파일을 이용해 오브젝트 파스칼(델파이)용 브릿지 파일을 생성할 수 있는 도구입니다.이 툴을 이용하면 JAR 파일 또는 자바 클래스 파일을 연동할 수 있는 Object Pascal 브릿지 파일을 생성해 델파이에서 이용할 수 있습니다. 자세한 사용법은 다음 글의 동영상으로 익힐 수 있습니다.RAD Studio XE7에서 추가된 안드로이드 기능 익히기(동영상) 참고htt.. 더보기
새로운 버전의 RAD Studio XE7 출시 오늘 새로운 버전의 RAD Studio XE7이 출시되었습니다.트라이얼 다운로드와 도움말이 모두 열렸으니 설치해서 사용해보시고, 어떤 내용이 변경되었는지 확인해 보시기 바랍니다. 다운로드 링크http://www.embarcadero.com/kr/downloads릴리즈 항목 확인http://docwiki.embarcadero.com/RADStudio/XE7/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE7 더보기
[BaaS] 데스크탑(VCL) 어플리케이션에서 특정 유저에게 GCM/APN 전송하기 안녕하세요. 험프리.김현수입니다. 요즘 BaaS 코드아카데미 준비하느라 바쁘면서도 즐겁습니다. 새로운 내용을 공부하고 누군가에게 도움을 줄 수 있다는 것이 보람되네요^^(코드아카데미 참석해 주세요. 좋은 내용이 많습니다. http://tech.devgear.co.kr/404011) 이번에 소개해드릴 내용은 얼마전 어느분께서 데브기어를 통해 질문하신 내용입니다. 질문 내용은 "VCL로 푸시메시지를 브로드캐스트는 되는데 특정 사용자에게 전송 가능하느냐? "라는 질문이었습니다. 이 글을 이해하시기 위해서는 BaaS와 RAD Studio 글을 먼저 읽어보시고, 데스크탑에서 클라우드 메시지 전송 글을 선행해야 이글을 이해하시는데 도움이 많이 됩니다. VCL 어플리케이션으로 특정 사용자에게 푸시메시지 전송 앞에서 .. 더보기
Kinvey(BaaS)에서 Business Logic 디버깅(테스트, 로깅) 하기 클라우드 서비스 중 백엔드 서비스를 이용할 수 있는 BaaS를 델파이에서 이용할 수 있는 것 많이들 아실텐데요. 사실 참고할 만한 내용이 많지 않아 아쉬울 따름입니다.(하지만 전세계적으로 사용량이 급증하고 있어 많은 참고할 글들이 곧 생긱것이라 확신합니다.) 제가 테스트하며 도움이 될만한 정보를 많이 남겨야겠습니다.이상 사설이었구요.Kinvey에서 비지니스 로직 디버깅하기오늘은 BaaS 제공자 중 Kinvey에서 비지니스 로직을 만들 때 도움이 될만한 비지니스 로직을 디버깅 하는 내용에 관한 글입니다.비지니스 로직은 일종의 함수라고 생각하면 됩니다. 사용자 및 파일이 추가되기 전/후(Before, After), 푸시메시지 요청 시 등록된 비지니스 로직이 호출됩니다. 오늘 제가 테스트한 내용은 푸시메시지 .. 더보기
OXml(XML 라이브러리) 소개 파스칼에서 사용할 수 있는 XML 라이브러리를 하나 소개합니다.OXml -XML 라이브러리OXml은 델파이와 C++빌더, 라자루스, FPC에서 사용할 수 있는 XML 구문분석 외부 라이브러리입니다.제품 소개에는 다음과 같은 타이틀이 눈에 띄네요. 자신감이 넘칩니다.OXml - The next generation XML library for PascalOXml - 파스칼의 차세대 XML 라이브러리 아주 간단한 기능만 소개하면Win32, Win64, OSX, iOS, Android를 모두 지원Delphi 4 ~ XE6 버전 지원(C++빌더도 동일한 버전이나 테스트는 하지 않음)프레임워크(VCL, FMX, LCL)에 종속적이지 않은 방식으로 구현Delphi 2007 이전의 버전에서도 유니코드를 지원제품 웹사이.. 더보기
코드아카데미: 앱 개발에 집중하고, 백엔드는 클라우드에게 맡기세요!(2014.7.29 ~ 2014.8.19) 최근들어 다양한 클라우드 서비스가 생기고 다양하게 사용되고 있습니다.이번에는 델파이를 통해 클라우드 서비스 중 BaaS(Backend as a Service)를 이용하는 방법을 설명하는 온라인 강의를 소개합니다. 우선 BaaS를 먼저 소개해 드리면모바일에서 사용되는 서버기능을 매번 개발하게 되면 시간과 비용이 매번 상당히 많이 들어갑니다.매번 서버기능을 개발하지 않고 서버기능(Backend)기능을 클라우드를 통해 이용하는 방법이 BaaS입니다. BaaS에서는 다음의 기능을 제공합니다사용자 관리와 인증서버의 스토리지 이용(이미지, 리소스, 파일 등)원격 푸시알림(GCM, APN)자세한 내용은 코드아카데미에 등록하시고 아래 기간동안 배우실 수 있습니다.(많은 참여 바랍니다. 참고로 이번 코드 아카데미는 제가.. 더보기
TFileStream 기반 파일진행 상황을 보여주기 오랫만에 박지훈.임프님의 기술 글을 올리셨네요^^ 페이스북으로 확인하고 포스팅합니다. 이번글에서는 델파이, C++빌더 개발자들에게 아주 친숙한 TStream 중 TFileStream에 진행률 이벤트를 추가하고 사용하는 방법을 안내합니다. 직접 방문하셔서 확인해 보세요.원글http://blog.devquest.co.kr/imp/846 더보기
인터베이스 서버(InterBase Server)에 접속이 되지 않는 경우 대처사항 RAD Studio 설치 시 함께 설치되는 인터베이스 서버와 연결 할 때 간혼 다음과 같은 오류가 발생하는 경우가 있습니다.그에 따른 대처사항입니다. Unavailable database. Unable to complete network request to host "localhost:3050". Failed to establish a connection.대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다. 1, 인텁베이스 서버 구동여부 확인 및 구동 인터베이스 매니저(시작 > Embarcadero Interbase XE3 > InterBase Servr Manager)로 시작 2, 데이터베이스 연결 시 IP / Port로 연결여러버전의 델파이를 설치한 경우 매번 Interbase를 설치하게되면 기본.. 더보기
BaaS 컴포넌트(TBackendFiles)를 이용해 파일 업로드/다운로드 샘플 델파이(C++빌더) XE6에 추가된 BaaS 클라이언트 컴포넌트 중 TBackendFiles 컴포넌트를 활용해 BaaS에 파일을 업로드 하고 다운로드 하는 샘플입니다.개인적으로 큰 관심을 갖는 BaaS에 샘플이 하나하나 추가되어 기분이 좋네요^^(앞으로 다양한 활용방안과 잠재력을 갖고 있는 서비스라고 생각합니다.) Uploading images to the cloud with BaaS in RAD Studio XE6http://blogs.embarcadero.com/sarinadupont/2014/06/20/uploading-images-to-baas-providers-in-delphi-xe6/ 관련자료Baas(Backend as a Service)와 RAD Studio(GCM, APN, 푸시알림 가능) 더보기
델파이 IDE 상에서 Github 소스 바로사용하기 최근 소스관리 시스템으로 Github가 많이 사용되고 있습니다. 델파이 오픈소스도 Github를 많이 이용하는데요.git client 소프트웨어를 이용하는 방식과 ZIP 파일 다운로드 방식(우측하단 Download ZIP 버튼클릭)으로 많이 사용하셨을 겁니다. Jim McKeeth가 델파이 IDE 상에서 Github 소스코드를 사용할 수 있는 유용한 팀을 공개하여 소개해드립니다.Github에서 다양한 인터페이스를 제공하는데 그중 Subversion 인터페이스를 이용해 IDE에서 사용하는 방식입니다. http://delphi.org/2014/05/clone-from-github-in-delphi/ 간단히 설명해 드리면Checkout URL을 Subversion으로 변경Subversion URL로 델파이 I.. 더보기
Baas(Backend as a Service)와 RAD Studio(GCM, APN, 푸시알림 가능) BaaS(Backend as a Service)BaaS는 Backend as a Service 약자로 모바일에서 필요한 Backend 기능을 추상화하여 표준 API(JSON 등)로 제공하는 클라우드 서비스의 한 종류 입니다. Backend as a service - http://en.wikipedia.org/wiki/BaaS Backend as a service (BaaS), also known as "mobile backend as a service" (MBaaS),[1][2][3] is a model for providing web and mobile app developers with a way to link their applications to backend cloud storage and AP.. 더보기
델파이 물리엔진 Box2d 소개. FMX, VCL 용(오픈소스) Qianyuan Wang은 몇 년전 델파이 VCL용 2D 물리엔진을 오픈소스로 진행하였습니다.델파이 - https://code.google.com/p/box2d-delphi/C++ - https://code.google.com/p/box2d/ (원 프로젝트는 C++ 기반이었던 것 같습니다.) 위의 코드를 멀티플랫폼 용 Firemonkey용 소스코드로 변환되었다는 반가운 소식을 전합니다.(oDesk 엔진니어 참여)제가 간단하게 테스트 해보니 테스트가 벅찰 정도로 다양한 샘플이 준비되어 있구요. 별도의 라이브러리 추가 없이 소스코드만으로 구현이 가능합니다. 여러분의 모바일 앱과 어플리케이션에 물리엔진을 장착해 보세요. 다운로드 : http://www.fmxexpress.com/wp-content/upload.. 더보기
RAD Studio(델파이, C++빌더) 단축키 RAD Studio(Delphi, C++빌더) 단축키 입니다.(엠바카데로 문서 자동 번역 후 일부 보정했습니다.) 컴파일 시 여러건의 오류를 이동하는 단축키를 묻는 분이 있어 찾아보니 Alt + F7, Alt + F8이 있었네요.(저도 모르고 여지껏 마우스로 클릭했네요.^^)다양한 단축키 알아두시면 개발도 빠르게 하고, 디버깅도 빠르게 할 수 있겠네요. 바로 가기작업Alt + [해당 구분 기호를 찾습니다 (앞으로).Alt + ]해당 구분 기호를 찾습니다 (역방향).Alt + ←Alt + ↑ 또는 Ctrl + 클릭 (선언 부로 이동) 작업 이전 위치로 돌아갑니다.Alt + F7Messages View에 표시되기 전에 오류 또는 메시지의 위치로 이동합니다.Alt + F8Messages View에 표시된 다음.. 더보기
사물인터넷(IoT)과 RAD Studio - 다양한 디바이스 연동 얼마전 애플에서 CarPlay를 발표했습니다. CarPlay는 자동차와 아이폰을 연결 후 시리를 통해 아이폰의 일부기능을 자동차에서 사용할 수 있도록 해주는 방식입니다. 이미 유튜브와 SNS등에 페라리, 벤츠, 볼도에 탑제된 동영상이 올라와 많이들 보셨을 것입니다.(http://www.apple.com/kr/ios/carplay/?cid=wwa-kr-kwn-features-com) 그리고, 애플의 CarPlay 발표 다음날 구글에서 Projected Mode를 발표했습니다. Projected Mode는 메르세데스-벤츠에 탑재될 예정으로 보이는 기술로 애플의 CarPlay의 기능을 대체하고 구글의 서비스와 연동해 네비게이션 등의 기능을 사용하실 수 있을 것으로 예상됩니다.(http://www.android.. 더보기
[후기] 부산가톨릭대학교 특강(델파이의 현재와 모바일 RAD) 어느덧 봄이 오니 꽃이 피고 새싹도 나오는 것 처럼, 델파이의 새싹을 피우기 위해 3월 12일 부산가톨릭대학교 학생들을 만나러 부산으로 갔습니다.(부산가톨릭대학교에서 델파이 특강을 진행했습니다. )올해 2번 부산 방문할때 마다 비가오네요. 이사할때 비가오면 잘된는 말처럼 부산에서의 델파이 부흥도 아주 잘될것 같아 기대가 큽니다. 저희 데브기어는 델파이를 더 알리고 델파이 인력을 늘리는데 항상 노력하고 있습니다. 앞으로 더 노력하겠습니다. 아래는 특강에서 발표한 발표자료입니다. 학생들이 재미있게 느낄만한 요소로 구성했습니다.(다음에는 더 박진감 넘치게 해야할 것 같아요.) 델파이의현재와모바일 Rad - 부산가톨릭대학교 특강 from Humphery Kim 학새회과 소극장에 발표를 위해 방문하니 송구스럽게도.. 더보기
MP4 Tag Library(Win32/64, OSX, iOS, Android 사용가능) http://www.3delite.hu/Object%20Pascal%20Developer%20Resources/download.html#mp4taglibrary 더보기
RAD Studio, Delphi 그리고 C++빌더 로드맵 RAD Studio, Delphi 그리고 C++빌더 로드맵이 발표되었습니다. 지난해 멀티플랫폼(파이어몽키)에 너무 치중한다는 일부우려가 있듯이 올해(2014년)에는 VCL과 RTL에도 발전이 있을 것 같아 기대가 되네요^^2014년에 2번의 릴리즈를 통해 제공되는 기술과 기능들안드로이드를위한 완벽한 C + + 툴 체인QPS (품질, 성능, 안정성)안드로이드와 아이폰 OS에 대한 광고 및 지불 구성 요소데이터 스냅 미들웨어 향상 (성능, REST 매핑, 아키텍쳐 개선)새로운 멀티 디바이스 비주얼 디자이너 및 새롭고, 유연한 사용자 인터페이스 구성 요소를 더 강화된 단일 소스 멀티 플랫폼 지원Mobile Backend as a Service(MBaaS) 컴포넌트, Parse, Kinvey(모바일 클라우드 서.. 더보기
안드로이드에서 ComPort에 접근할 수 있는 파이어몽키 컴포넌트 WinSoft에서 안드로이드로 ComPort를 이용할 수 있는 파이어몽키 컴포넌트를 제공합니다.물론 안드로이드 라이브러리를 Import해서 구현할 수도 있지만, 델파이로 만든 컴포넌트가 활용성이 좋을 것 같네요.아래의 코드는 해당 컴포넌트를 사용하는 샘플코드입니다.아래의 링크를 타고 가시면 트라이얼 버전을 다운로드 할 수 있으니, 테스트해보시고 원하시는 앱을 만드셨으면 합니다.procedure TFormMain.MemoKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin AComPort.WriteByte(Ord(KeyChar)); end; procedure TFormMain.TimerTimer(Sender.. 더보기