썸네일 [Delphi] gitHub ZXing 소스 파일 LF, CRLF 오류 시 처리 방법 안녕하세요 로로봉입니다. : ) 델파이 개발 중 오류가 발생하여 해결방법을 알아보겠습니다. gitHub를 통해서 다운받은 ZXing 라이브러리 소스 파일이 빌드할 때 아래와 같이 오류가 발생하였습니다. 라인 인코딩이 LF로 되어 있다는 것 같은데 이게 왜 오류가 발생하는지 의문이긴 합니다. 그래도 우선 해결을 해야하기 때문에 저는 Notepad++ 프로그램으로 오류가 발생한 ZXing 라이브러리 파일들을 열어주었습니다. 열린 파일의 하단을 보니 Unix (LF)가 보입니다. 우측 마우스를 눌러 Windows (CR LF)로 변경해 주었습니다. 변경 후 파일을 저장하고 다시 델파이 빌드를 해보니 해당 오류가 해결되었습니다. 좋아요 ♥ + 구독 부탁드립니다 : )
썸네일 [Delphi] 안드로이드 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 업로드 오류 해결 안녕하세요 로로봉입니다. 프로젝트 진행하는 일이 바빠서 너무 오랫만에 블로그를 쓰게 되었네요. 블로그 활동도 잠시 못할정도로 바빴는데 이제 조금 시간이 생겼습니다. 오늘은 안드로이드 앱을 배포하면서 exported 속성을 설정하지 않아서 배포가 되지 않던 문제를 해결해보겠습니다. 안드로이드 sdk는 지속적으로 업데이트가 되기 때문에 배포할 때 변하는 것들이 많은 것 같습니다. 물론 ios도 동일하지요. Delphi 에서는 App Bundle로 컴파일 할 수 있도록 지원을 해주고 있습니다. 기존과 같이 항상 하던 식으로 앱번들 파일을 안드로이드 프로덕션 버전을 만들어 업로드를 하였으나 Android 12 버전 이상 부터는 exported 속성 설정이 필요한 것 같습니다. 위와 같이 android:expor..
썸네일 [Delphi] C++, C# DLL 델파이 프로그램 연동 시 타입 구분 안녕하세요 로로봉입니다 : ) 델파이에서 C++ 이나 C# 으로 만든 DLL을 사용할 때 타입 변환을 어떻게 해야할지 난감할 때가 많습니다. 델파이에서 외부 DLL을 정의하는 방법은 아래와 같습니다. Const DLL_Name = 'Test.dll'; function DLLFunctionName(hHandle: THandle): Boolean; stdcall; external DLL_Name; THandle이나 Boolean 등 매개변수와 반환 타입은 아래 표를 참고해서 변환 해주면 됩니다. C/C++ Type ObjectPascal Type unsigned short [int] Word [signed] short [int] SmallInt unsigned [int] Cardinal { 3.25 fix ..
썸네일 [Delphi] 델파이 FTP 서버 이미지 전송 안녕하세요 로로봉입니다 : ) 개발을 하다보면 FTP 서버에 파일을 저장해야하는 경우가 종종 있습니다. 이번에는 델파이를 사용하여 모바일 앱에서 FTP 서버로 이미지 파일을 전송하는 법을 알아보도록 하겠습니다. 1) 통신 데이터 구조 우선 모바일 앱을 서버의 데이터 스넵 서비스와 연결하여 구현하였습니다. 모바일에서 데이터 스넵으로 바로 이미지 파일을 전송하면 좋겠는데, 여러 시도 끝에 좀 어렵다는 결론이 나왔습니다. 방법을 알고 계신 분이 있으시면 댓글 달아주셔도 좋겠네요. : ) 이미지 파일을 데이터스넵 구조로는 Stream 데이터를 넘기기 어려워 TCP/IP 서버를 이용하여 전송해보았습니다. 데이터스넵 서비스 내부에 TCP/IP 서버를 두어 아래와 같이 통신하였습니다. 클라이언트에서 이미지 전송은 아..
썸네일 [Delphi] 델파이 안드로이드 구글스토어 배포 빌드 방법 안녕하세요 로로봉입니다 : ) 오늘은 델파이에서 안드로이드 구글스토어에 배포할 때 필요한 2가지에 대해 알아보도록 하겠습니다. 1) 어플리케이션 앱 서명 Key파일 생성 2) App Bundle 패키지로 빌드 후 업로드(.aab) 1) 어플리케이션 앱 서명 Key파일 생성 안드로이드 구글스토어에 앱을 배포하기 위해서는 앱을 서명해 주어야 합니다. 앱 서명을 하기 위해서 개인 키를 포함하는 암호화된 서명 파일이 있는 KeyStore가 필요합니다. 이제 KeyStore를 이용해 앱에 서명 파일을 포함시켜보도록 하겠습니다. 가장 먼저 Project - Options... (Ctrl + Shift + F11) 메뉴에 들어가 줍니다. 좌측 Deployment - Provisioning을 선택해 줍니다. Build..
썸네일 [Delphi] 델파이 현재 프로세스 스레드 수 얻기 안녕하세요 로로봉입니다 : ) 스레드를 사용하다보면 현재 개발중인 프로그램에 스레드가 몇개나 실행되고 있는지 궁금하거나 관리가 필요할 때가 종종 있습니다. 오늘은 델파이 프로그램에서 스레드 수를 얻는 방법을 알아보도록 하겠습니다. 우선 uses절에 TlHelp32를 추가해줍니다. uses TlHelp32; 간단히 아래 함수를 추가하여 현재 프로세스의 스레드 수를 얻을 수 있습니다. function GetProcessThreadCount: integer; var SnapProcHandle: THandle; ThreadEntry: TThreadEntry32; Next: boolean; begin result := 0; SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_..
썸네일 [Delphi] 델파이 윈도우10 메모리 사용량 관련 함수 안녕하세요 로로봉입니다 : ) 델파이를 이용해 메모리 사용량에 대한 정보를 구해보도록 하겠습니다. 우선 메모리 Usage에 대해 관련 함수를 사용하기 위해 아래와 같이 uses절에 psAPI를 추가해주어야 합니다. uses psAPI; psAPI 파일에서는 현재 프로세스에서 사용중인 메모리 사용량을 조회할 수 있습니다. 또한 전체 메모리 관련 정보도 얻을 수 있습니다. 현재 메모리 사용량은 아래와 같이 구할 수 있습니다. function CurrentMemoryUsage: Cardinal; var PMCnt : TProcessMemoryCounters; begin PMCnt.cb := SizeOf(pmc); if GetProcessMemoryInfo(GetCurrentProcess, @PMCnt, Siz..
썸네일 [Delphi] 델파이 컴포넌트(Component) 설치 방법 안녕하세요 로로봉입니다 : ) Delphi 컴포넌트 설치 방법을 알아보도록 하겠습니다. 1. Component 설치 Delphi 컴포넌트 설치는 3가지로 나뉩니다. 설치하고자 하는 컴포넌트가 패키지의 경우 확장자가 dpk, bpl을 가집니다. bpl 확장자의 경우 Component 메뉴에서 Install Package를 눌러 추가해주면 됩니다. dpk 확장자의 경우 File - Open으로 dpk파일을 열어 프로젝트 명에서 마우스 오른쪽을 눌러 Install 버튼을 눌러 설치합니다. dpk 파일로 설치가 되어도 결과적으로는 bpl파일이 생성되고 설치가 됩니다. 컴포트 통신 컴포넌트 설치를 위해 다음과 같이 dpk 파일을 실행합니다. 실행되면 다음과 같은 화면을 볼 수 있습니다. 해당 프로젝트를 선택하고 ..
썸네일 [Delphi] 델파이 10.4 Sydney 윈도우 프로그램으로 폰트 설치 안녕하세요 로로봉입니다 : ) 오늘은 델파이에서 윈도우 프로그램을 개발하여 배포하던 중, 무료 폰트를 프로그램 리소스에 추가하고 싶었는데 여러 시도 끝에 성공하여 공유하고자 합니다. 델파이 폰트 설치 등으로 구글링 하면 기본 자료가 나오지만 막상 시도해보면 프로그램 화면에서 반응이 없는 것을 볼 수 있었습니다. 폰트를 접근하기 위해 아래 파일들을 uses에 추가해주어야 합니다. uses WinAPI.Windows, FMX.Platform.Win, Winapi.Messages; 폰트 설치는 윈도우에 아에 설치하는 방법과 프로그램 사용중에만 사용하고 해제되는 경우가 있습니다. // 윈도우 폰트 설치 AddFontResource(PChar('SCDream3.otf')); SendMessage(WindowHan..
썸네일 [Delphi] 델파이 JSON 사용하기 안녕하세요 로로봉입니다 : ) 오늘은 델파이에서 실제 JSON 텍스트를 활용하는 방법을 알아보겠습니다. JSON이란? JavaScript Object Notation의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식입니다. JavaScript에서 객체를 만들 때 사용하는 표현식을 의미합니다. JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송에 많이 사용되고 있습니다. JSON은 데이터 형식의 종류일 뿐이며 데이터를 표시하는 표현 방법이라고 보면 됩니다. JSON의 형식 JSON의 형식은 key / value 로 하나의 쌍을 이루며 쌍따옴표를 이용하여 표기해야 합니다. 사용할 수 있는 형식은 null, nu..
썸네일 [Delphi] 델파이 모바일 앱 카메라 바코드 인식 안녕하세요 로로봉입니다 : ) 오늘은 델파이 모바일 앱 개발 중 카메라를 이용해 바코드를 인식하는 법을 포스팅하겠습니다. 카메라에서 바코드를 제어하기 위해선 ZXing 라이브러리를 사용해야 합니다. ZXing 라이브러리는 아래 사이트에서 다운받을 수 있습니다. Spelt/ZXing.Delphi ZXing Barcode Scanning object Pascal Library for Delphi VCL and Delphi Firemonkey - Spelt/ZXing.Delphi github.com 라이브러리는 설치하는 것이 아닌 Pas만 이용하면 되기 때문에 Tools – Options – Language – Delphi – Library 메뉴에 Library path만 등록해주면 됩니다. ZXing 라이브..
썸네일 [Delphi] 델파이 Datasnap 서버 클라이언트 통신 방법 안녕하세요 로로봉입니다 : ) 이번에는 델파이 Datasnap 통신방법에 대해 알아보도록 하겠습니다. 데이터 스냅 서버의 접속 방법은 간단합니다. TFDConnection 컴포넌트의 DriverID를 ‘DS’로 설정해주면 됩니다. IP 주소는 Server에 입력하고 사용 포트는 Port 파라미터로 입력하면 됩니다. 테스트로 192.168.0.100 서버가 있다고 가정하고 아래와 같이 접속합니다. Con.Params.Clear; Con.Params.DriverID := 'DS'; Con.Params.Append('Server=192.168.0.100'); Con.Params.Append('Port=9091'); Con.Params.Append('LoginTimeout=2000'); Con.Connected..
반응형