Reference : http://www.fmxexpress.com/professional-open-source-computer-vision-library-for-delphi-xe7-firemonkey-on-windows/


우선, OpenCV 소스 코드를 다운 받고, 링크된 페이지의 내용에 맞추어 설치.

First of all, download the source code of OpenCV and run the execute file.


https://github.com/Laex/Delphi-OpenCV


msvcp140.dll 은 2017버전이 깔려있으면 굳이 2015를 설치하려고 애쓰지 않아도 됨. 설치도안됨..

if you have visual c++ 2017 version, you don't need to install 2015 version. even it doesn't install at all anyway.


이 순서대로 설치한뒤 델파이 패키지를 설치하면되는데, 그 과정에서 Can't load package 오류가 날 수도 있는데, Visual C++ 재배포 패키지를 다시 설치하면 해결됨.

윈도우에서 사용자 권한에 의해 윈도우 메시지를 못 받는 경우가있다.

임의로 추가하여 처리해 주어야 함.


Drag and Drop 예제

- 소스내 주석으로는 2004년에 Peter D Johnson라는 사람이 올린 소스를 수정하였음.



중요한 것은 권한 추가!

아래 함수를 추가하면 된다.


procedure SetDragAndDropOnSystemsWIthUAC(Wnd: HWND; IsEnabled: boolean);


procedure TForm1.SetDragAndDropOnSystemsWIthUAC(Wnd : HWND; IsEnabled : boolean);

type

  TChangeWindowMessageFilter = function(Msg : Cardinal; Action : Word) : Bool; stdcall;

const

  Msg_Add = 1;

  WM_COPYGLOBALDATA = $49;

var

  DllHandle : THandle;

  ChangeWindowMessageFilter : TChangeWindowMessageFilter;

begin

  DllHandle := LoadLibrary('user32.dll');

  if DllHandle > 0 then

  begin

    ChangeWindowMessageFilter := GetProcAddress(DllHandle, 'ChangeWindowMessageFilter');

    if Assigned(ChangeWindowMessageFilter) then

    begin

      DragAcceptFiles(Wnd, IsEnabled);

      ChangeWindowMessageFilter(WM_DROPFILES, Msg_Add);

      ChangeWindowMessageFilter(WM_COPYGLOBALDATA, Msg_Add);

    end;

  end;

end;


procedure TForm1.FormCreate(Sender: TObject);

begin

  // Tell windows we accept file drops

  SetDragAndDropOnSystemsWIthUAC(Self.Handle, True);

end;


procedure TForm1.FormDestroy(Sender: TObject);

begin

  // Cancel acceptance of file drops

  SetDragAndDropOnSystemsWIthUAC(Self.Handle, False);

end;


DragAndDropWithUAC.7z



델파이에서 Json 사용하기

Using Json in Delphi 


우선 델파이의 string에서 Json형태로 변경해주는 한줄 함수

At first, the function converting string to JsonString in 1 row.


uses 절에 REST.Json 추가

Add REST.Json @ uses 




TJson.JsonToObject

TJson.ObjectToJsonString 


클래스 함수로 선언된 것이라 반드시 TJson.을 붙여서 사용해야함

This has to write with TJson in front of the function because it is a class function as you can see.


간단한 클래스 생성

Create simple class



사용방법

Usage



요청 전문은 StringStream으로 TJson.ObjectToJsonString함수를 사용하여 객체를 곧바로 Json형태의 스트링으로 변환하여 담아준다. HTTPJson함수내용은 단순하게 주소로 StringStream을 Post방식으로 보내는 역할뿐이다.

The request as a StringStream is made by string of Json using the converting class TJson.ObjectToJsonString. 

HTTPJson function is simple that send StringStream as post method of HTTPPost().


HTTPPost에는 여러가지 overload된 함수가 존재하는데 string으로 요청을 보낼 시에는 이상하게 계속 폴더명이 붙어버린다.

There are lots of overloaded function of HTTPPost. so when trying to send as string, you can see it changes weird string seems like path of directory.

 

 

델파이로 만든 첫 프로그램..

운영데이터를 개발로 내리기 위해 만든 툴...

 

 

AP2DEV-Setup.exe

 

UserManual_DataLoad_V1.0.doc

 

AP2DEV_주제발표자료.pptx

 

AP2DEV.z01

 

AP2DEV.zip

 

+ Recent posts