썸네일 [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] 안드로이드 Documents 폴더 파일 리스트 확인 방법 안녕하세요 로로봉입니다 : ) 델파이에서 안드로이드 내부 저장공간 기본 폴더 경로를 확인하는 방법입니다. IOUtils을 uses에 선언해 줍니다. uses IOUtils; 기본 폴더에 존재하는 파일들을 FileList로 추출할 수 있습니다. procedure GetList(); var FileList : TStringDynArray; DocDir : string; s : string; begin DocDir := TPath.GetDocumentsPath; FileList := TDirectory.GetFiles(DocDir); for s in FileList do ShowMessage(s); end; 좋아요 ♥ + 구독부탁드립니다 : )
썸네일 [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] 델파이 DataSnap 이미지 전송 안녕하세요 로로봉입니다 : ) 델파이 Datasnap에서 이미지 전송으로 많은 실패를 겪다 해결해보았습니다. 우선 TBitmap이나 TMemoryStream과 같은 TStream 자체로 전송을 해보려고 했으나 여러가지 오류와 문제로 인해 전송이 안되는 것으로 확인 됐습니다. 그래서 해결한 방법은 EncodeBase64 함수와 DecodeBase64 함수를 이용해 String으로 변환하여 전송 후 다시 변환하여 저장하는 방법으로 해결하였습니다. 실제 구현된 부분을 알아보도록 하겠습니다. Base64 함수를 사용하기 위해서 uses 절에 아래와 같이 추가해줍니다. uses EncdDecd; 제가 구현한 부분은 FMX 모바일인 안드로이드와 iOS (클라이언트)에서 앨범에서 선택된 이미지 파일을 서버로 전송하는..
썸네일 [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 iOS AppStore 배포하기 안녕하세요 로로봉입니다 : ) 오늘은 델파이로 개발한 iOS 앱을 AppStore에 배포하는 방법을 알아보겠습니다. 앱스토어에 앱을 올리기 위해서는 애플 개발자 등록은 필수입니다. 아래 사이트에서 개발자 등록 후에 로그인을 해줍니다. Apple Developer There’s never been a better time to develop for Apple platforms. developer.apple.com 애플 개발자 사이트에 접속하시면 아래 화면을 볼 수 있습니다. Account 메뉴를 눌러줍니다. 로그인을 완료하시면 아래 화면을 볼 수 있으며 좌측의 Certificates, IDs & Profiles를 선택해 줍니다. 기존에 개발을 위해 앱 아이디는 만들었다는 가정하에 프로파일을 AppStore..
썸네일 [Delphi] 델파이 10.4 Sydney 윈도우 프로그램으로 폰트 설치 안녕하세요 로로봉입니다 : ) 오늘은 델파이에서 윈도우 프로그램을 개발하여 배포하던 중, 무료 폰트를 프로그램 리소스에 추가하고 싶었는데 여러 시도 끝에 성공하여 공유하고자 합니다. 델파이 폰트 설치 등으로 구글링 하면 기본 자료가 나오지만 막상 시도해보면 프로그램 화면에서 반응이 없는 것을 볼 수 있었습니다. 폰트를 접근하기 위해 아래 파일들을 uses에 추가해주어야 합니다. uses WinAPI.Windows, FMX.Platform.Win, Winapi.Messages; 폰트 설치는 윈도우에 아에 설치하는 방법과 프로그램 사용중에만 사용하고 해제되는 경우가 있습니다. // 윈도우 폰트 설치 AddFontResource(PChar('SCDream3.otf')); SendMessage(WindowHan..
반응형