본문 바로가기

Delphi

(23)
[DELPHI] 기본 문법 - 함수형, unit 델파이에서 사용되는 함수 형태는 크게 procedure 와 function 두가지 입니다. 이 둘의 차이는 C 에서 void 형인가 아닌가의 차이겠군요. 즉, 함수 자체가 인자를 받아서 함수 자체가 결과 값을 되돌려 주지 않는가 또는 주는가의 차이라 하곘습니다. 차이는 다음과 같이 알 수 있습니다. procedure testProc(input1 : integer); function testFunc(input1 : integer) : integer; procedure 인 testProc 는 입력인자로 integer 형으로 input1 이란 걸 받고 뭔가를 처리 할 것입니다. 반면 function 인 testFunc 는 입력으로 input1 을 받아서 뭔가를 다시 integer 형태로 결과를 돌려 주게 됩니..
[DELPHI] 기본 문법 - 구조체, 사용자 정의. 델파이는 기본적으로 구조체를 record 로 정의 하고 있습니다. 또한 이름은 관례적으로 T 를 앞에 붙이고 있습니다. type TstructExample = record testInt : integer; testByte : byte; testString : string; end; // of TstructExample; 이렇게 선언된 구조체는 class 내나 변수선언 부 에서 정의 할 수 있습니다. var structExample : TstructExample; 또한 이 구조체를 포인터로만 선언 하고 싶다면 다음과 같이 선언 할 수 있습니다. var pStructExample : ^TstructExample; C 에서 * 을 붙이는 것과 비슷하게 ^을 붙임으로서 포인터로 사용이 가능합니다. 하지만 델파이..
[DELPHI] 기본적인 문법 - 시작과 끝, 함수와 변수. 델파이는 기본적으로 pascal 문법을 사용하며, object pascal 형태로 C++ 과 함께 사용될 수 있습니다. 즉, DLL 을 class 로 만든 경우, 델파이에서도 그에 대응하는 class 를 구성함 으로서 사용이 가능하다는 것 입니다. 하지만 이런 방법 이전에 델파이가 사용하는 pascal 의 문법부터 알아 보는 시간을 가져야 겠습니다. 초창기의 pascal 은 매우 단순한 변수형들만 지원을 했습니다만, 컴파일러가 진화 하면서 점점 다양해 지기 시작 했습니다. 또한 pascal 은 상위언어에 속하는 지라 대소문자를 가리지 않습니다. (단, int64 와 Int64 는 다릅니다.) 기본적으로 수를 다루는 함수 형태는 다음과 같이 존재 합니다. Integer data types : Byte ( ..
[DELPHI] 델파이, 그 이전에 파스칼(PASCAL) 델파이 언어는 Object Pascal 이라는 객체지향 파스칼 언어에 해당합니다. 정확히는 Object Pascal 형의 언어가 되는 격 입니다 (코드기어 즉, 볼랜드 측에서는 델파이 랭귀지 라고 호칭합니다) C 에서도 C 와 C++ 이 존재 하듯이, Pascal 역시 Object Pascal 이 C++ 에 해당하는 구조라 하겠습니다. Pascal 의 경우는 C 와 달리 type casting이 매우 정확 해야 하며, 이로 인해 유연성이 C 에 비해 많이 떨어 지는 편 입니다. 그로 인해 델파이 에서는 그런 문제들을 위해 다양한 포인터를 지원하고 이로 인해 C 나 C++ 로 만든 DLL 과도 완벽한 호환이 가능하고 재사용이 가능합니다. 문법에 있어서는 C 이전에 나온 언어라 C 나 C++ 과 비슷한 면도..
SSangeOn 을 위한 TurboDelphi Explorer 기본강좌 시작합니다. 같이 일하는 우수 병특인재 인 SSangeOn 의 급 Delphi 파워를 맛들이기 시작한지라, 강좌를 시작 해 볼까 합니다. 사내 100명이 넘는 인원중 Delphi 를 아는 사람이 저 포함 아마 2명 정도 될듯 합니다. 사람들은 C 는 어설프게 알더라도 Delphi 는 뭔지 모르거나, 비교 자체가 기분 나쁜 M$ Visual Basic (비베) 과 비교하는 경우가 있습니다. 비베 따위와 비교 당하는 것은 무척이나 기분 나쁜 일이죠. 아무튼. SSangeOn 을 위해서라도, 양병규님의 정신을 전파하기 위해서라도, 제가 아는 얇팍한 윈도우32 어플리케이션 꽁수들을 위해서라도 짬짬히 강좌를 써 보도록 하겠습니다. 기본으로 포함되는 일부 라이브러리 문제점을 수정 할 수 있는 팁과. 향상된 라이브러리 처리 등등..
[DELPHI/GDI+] GDI+ 에서 TGPImage 에서 meta 정보 가져오기. GDI+ 에서는 각 이미지에 들어가는 meta 정보를 포인터 구조체로 가져 올 수 있습니다. 이 meta 정보에는 JPEG 의 EXiF 도 포함되며 꽤 많은 정보를 가져다 쓸 수 있습니다. 이 meta 정보 구조체의 구조는 다음과 같습니다. PropertyItem = record // NOT PACKED !! id : PROPID; // ID of this property length : ULONG; // Length of the property value, in bytes type_ : WORD; // Type of the value, as one of TAG_TYPE_XXX value : Pointer; // property value end; 이 구조체의 포인터를 이용해서 쓸수 있는 것이 바로 Ge..
Delphi 를 위한 GDI plus 마이크로소프트에서 참 늦게도 업데이트한 GDI+ .. 나온지는 오래 되었지만 GDI+ 가 나올때만 해도 사실 GDI 의 기능은 느린 픽셀가져오기 와 단순 사각영역 이미지 복사, 지원 이미지의 부재 등 .. 제한적 이었습니다. 하지만 비디오카드의 가속을 제대로 다 받는 요즘 이런 구시대적인 GDI 함수를 개선하기 위해 나온것이 GDI+ 입니다. gdiplus.dll 이 windows2000 이후에 시스템에 설치 되어 있습니다. 사실 NT 에서만 사용할 수 있도록 나온건데 Windows98se 에서도 복사해서 쓰기만 하면 된다는 말을 들었습니다. 지금 올리는 파일은 델파이 2006 까지 돌도록 제가 수정한 파일 입니다. 혹시 이 DirectX4Delphi 및 JEDI project 를 쓰고 계신 분들이 사용..
Delphi 로 특정 윈도우에 키 이벤트 처리. 예전에 winTV2K 를 컴퓨터를 켜지자 마자 전체화면으로 만들기 위해서 사용했던 코드들 중 일부 입니다. 해당 윈도우를 최상위 상단으로 옮긴 다음 (마우스로 선택 한 것과 같은거죠) 키보드로 CTRL+T 를 누른 것과 같은 효과를 내기 위해서 만든 코드 입니다. 사용한 함수는 기본적으로 윈도우에서 제공하는 함수로서 바로 keybd_event 라는 API 입니다. 자세한 함수 설며을 위해서는 다음 폴딩페이지를 펼쳐서 보시기 바랍니다. keybd_event The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN messag..