본문 바로가기

운동하는 개발자/Delphi

(16)
델파이 JSON String 파싱 / delphi json parsing 상당히 간단한 기능이고 자료도 제법 있는데 내 델파이 버전 탓인지 사람들이 알려주는 함수가 파라미터가 다르거나 아예 없거나.. 겨우겨우 했다 이 글은 델파이 2010 버전으로 작성되었습니다 uses DBXJSON; //필수 추가 procedure jsonparsing(jsondata : string); var JSonObject:TJSonObject; JSonPair : TJSONPair; JsonString: string; JsonKey, JsonValue : string; begin jsondata := '{"Name":"kim","age":"34"}'; //http통신으로 이와 같은 데이터를 수신했다고 가정하고 jsondata := StringReplace(jsondata, #10 , '', [rf..
델파이 중복 실행 (델파이 다중 실행 IDE 두개 켜기) @echo off cd \ cd %Temp% del *.ttr cd \ cd %Temp% set datum=%date%_%time:~3,2%-%time:~6,2% ren EditorLineEnds.ttr EditorLineEnds%datum%.ttr start "" "D:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi exit 1. 메모장 켜서 위에 내용을 복붙한다 2. 자신의 델파이 설치경로만 수정해준다 (D:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\bds.exe) 3. 적절한이름 .bat파일로 메모장을 저장한다 4. bat파일로 실행한다 (깔끔해 보이려면 아이콘을 델파이 아..
델파이 폼에서 파일 드래그앤드롭 / delphi Drag and Drop 요즘 이메일 보낼때나 구글 드라이브를 사용하여 웹 브라우저에서 파일을 업로드 할 때 파일을 간단히 끌어서 놓기만 하면 첨부가 된다 이와 같은 기능을 델파이 윈도우 폼에서 구현해보자 한다 메인폼 화면에서 파일을 해당 폼에 끌어놓으면 에디터에 경로가 찍히게 만들어보려고 한다 1. 메인 폼에서 OnCreate 이벤트에 DragAcceptFiles(Handle, True); OnClose 이벤트에 DragAcceptFiles(Handle, False); 를 각각 추가하여 드래그 허용을 해준다 (이 허용을 하고 실행시 파일을 끌어서 폼 위에 올리면 마우스포인터에 +모양이 추가로 보인다) procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction)..
delphi, lazarus 동작시간 계산 코드의 특정 부분의 동작 시간(실행시간)을 로그로 남기고 싶을 때 uses dateutils; //datetime 계산을 위한 함수 procedure workfunction; var LStartTime : TDateTime; //시작시간 LWorkTime : Int64; //동작시간 begin LStartTime := Now; // 시작시간 기록 for( 블라블라); LWorkTime := MilliSecondsBetween(Now,LStartTime); end; MilliSecondsBetween() 함수는 ms단위의 값으로 리턴을 주고 각 단위로 계산하는 함수들은 아래와 같다 Function YearsBetween(const ANow, AThen: TDateTime; AExact : Boolean =..
Delphi JEDI Error / Exception in an expert of the JCL / An Exception was raised in an expert of the JCL / EJclExpertException 델파이에서 약간의 소스를 수정한 뒤 프로젝트에서 우클릭하니 다음과 같은 에러가 발생하였다 컴파일은 되는데 영 찝찝하고 프로젝트에서 우클릭했을 때 JCL Debug expert라는 메뉴도 사라졌다 상단바에서 Project -> JCL Debug expert에 마우스를 올리기만 해도 동일 에러가 발생했다 다른 프로젝트에서는 발생하지 않고 이 프로젝트에서만 발생되었고 JCL문제인가 싶어서 JCL , JVCL 모두 재설치를 해봐도 해결이 안 되어 혹시나 싶어 소스를 원복 시켰는데 정상작동하였다 이때부터 한줄한줄 변경할 때마다 해당 기능을 점검해봤는데.. (이 문제의 절대적인 원인과 해결책은 아니겠지만) 나 같은 경우에는 신기하게도 주석이 문제였다 주석을 왜 읽는지;; {} 기호로 묶인 큰 주석 내에서 수정 내용..
델파이 검색(Find In Files) 에러 / There is no associated form for (GExpert) 어느날부터 Ctrl+Shift+F로 전체 검색을 하면 다음과 같은 에러가 발생하였다 그런데 editer에서 입력시에만 뜨고 project manager나 structure를 클릭하여 활성화 하고 입력하면 정상적으로 검색창이 발생했다 어떠한 컴포넌트나 플러그인이 키 이벤트를 뺏아가는거로 보여서 확인해보니 범인은 GExpert 이름만보면 컴포넌트 참조를 찾는거같은데.. 안쓰니 단축키는 해지해 주자 More-> Configuration... 에 들어가서 Find로 검색하여 단축키 제거 후 OK
델파이 시스템종료, 시스템재시작 하는 가장 간단하고 정확한 방법 / delphi reboot or shutdown windows 델파이에서 시스템 종료, 재부팅 하는 가장 간단하고 정확한 방법 uses ShellAPI; ShellExecute(0, 'open', 'shutdown.exe' , '-r -t 00', nil, SW_HIDE); //시스템 재시작 ShellExecute(0, 'open', 'shutdown.exe' , '-s -t 00', nil, SW_HIDE); //시스템 종료 *** 추가로 WINAPI중에 ExitWindowsEx함수를 이용한 방법도 있는데 이것으로 리부팅 했을경우 윈도우10부터 빠른부팅이라는 기능때문에 정상적으로 재부팅되지 않고 로그오프-> 시작만 된다 따라서 시스템파일이 변경되거나 재부팅을 해서 무언가 윈도우를 리셋을 해 주고 싶은 경우엔 WINAPI를 사용 하면 안되고 ShellAPI를 사용해..
델파이 서비스 디버깅 / delphi service deburgging 윈도우10, 델파이 2010기준으로 설명되었습니다 TMI 내 이야기 더보기 회사 프로젝트 중 윈도우 서비스 프로젝트가 있는데 특정 문제가 있어서 확인이 필요한 상황이였다 로그로 찍긴 한계가 있고 디버깅을 꼭 해보고 싶다 하는 경우가 있었다 구글링을 해보니 windowsXP나 이전 버전에서는 서비스가 간단히 디버깅하도록 지원하였는데 현재 윈도우7도 서비스가 종료된 마당에 XP가 웬말인가.. 더 찾아보니 다행히 디버깅방법이 있었다 서비스를 빌드해서 서비스로 등록시킨 뒤 시작 시킵니다 그 프로젝트에서 Run-> Attach to Process를 누릅니다 위 사진과 같이 실행중인 프로세스 목록이 뜨는데 여기서 찾아서 Attach를 할 경우 서비스도 디버깅이 가능하고 브레이크 포인트도 걸립니다 다만! 서비스가 이..