본문 바로가기

Delphi

(23)
64bit OS 를 위한 Free Pascal Compiler - Lazarus windows64 를 위한 C compiler 는 minGW 가 있었습니다만. pascal 을 위한 compiler 는 뭐가 있을까 하여 찾아 보다가 발견 했습니다. MinGW 와 마찬가지로 GPL 을 따르는 컴파일러 입니다만 , 여기에 편리한 GUI 를 지원해 주는 Lazarus 라는 프로젝트가 있음을 알았습니다. Borland(Code Gear) 사의 Delphi 처럼 간단히 비주얼적인 부분을 응용하여 win64 어플리케이션을 만들수 있으며, win32 용 빌더를 따로 제공하고 있습니다. 다만, 일반적으로 컴파일 할 경우 실행 파일의 크기가 너무크게 나오므로(보통 15MB ... ㄷㄷㄷ ...) 약간의 옵션수정을 해서 Publishing 해야 하는 노가다는 있습니다만, 64비트용 어플리케이션 개발을 ..
UltraEdit 에 Delphi(Pascal) 문법 syntax highlight 추가하기. 울트라에디터에 Delphi(pascal) 문법의 Syntax highlight 적용하기 보통 Delphi 는 기본 제공 IDE 로만 쓰는게 많습니다만 .. 가끔 UltraEditor 로 다른 소스를 참조할 떄가 있습니다. 그런데 UltraEdit 는 기본적으로 Delphi(pascal) 문법을 지원하질 않습니다. 그래서 수동으로 추가 해야 하는데요 .. 여기에 간단한 방법을 통해서 추가 해 보도록 하겠습니다. 먼저 UltraEdit 의 다음 메뉴를 엽니다 (저는 11.10 버젼을 사용중 입니다) Configuration 을 선택하면 다음 다이얼로그가 뜨게 됩니다. 화살표로 된 부분에 있는 Open 을 클릭하여 Syntax highlight 가 지정되어 있는 파일을 열고 창을 닫습니다. 이제 아래의 박스 ..
VISTA 에서 DELPHI로 제작된 프로그램이 ALT 키로 생기는 버그 해결법. 얼마전에 소규모 개인 프로젝트를 만드는 노트북을 새로 사고 VISTA 로 OS 를 설치 한 후 .. 새로 라이센스를 받은 DELPHI로 기존 프로젝트를 재빌드 하고 테스트 하던중 .. 놀라운 사실을 발견 하였습니다. 그저 .. ALT 키를 눌렀을 뿐인데 .... 컨트롤들이 폼에서 사라져 버리는 것 이었습니다 ! 아놔 !!! 그래서 바로 코드기어에 가 보니 .. 이런 문제가 이미 다른 사용자들로 부터 포스팅 되어 있어서 해결책이 나와 있었습니다. 여러가지 방법이 있을수 있지만 대략 문제의 원인은 윈도우의 common control 6.0 에서 새로 추가된 메시지가 있는데 이걸 델파이에서 쓰는 컨트롤 유닛들이 처리를 못하는 문제였습니다. ALT 키 하나로 끔찍한 일이 발생 하는 것 이었죠. 해결방법은 간단합..
[Delphi] 비트맵으로 윈도우 폼 깍기. 이 팁은 빵집3 로 유명하신 양병규님이 예전에 알려주신 방법 입니다. 매우 간단히 Win32 API 2개로 그냥 끝을 내 버리는 군요 -_-; function BitmapToRegionEx(Bitmap: TBitmap; TransColor: TColor): HRGN; var X, Y: Integer; Temp : HRGN; begin Result := 0; with Bitmap do for Y := 0 to Height - 1 do begin for X := 0 to Width -1 do begin if Canvas.Pixels[X, Y] TransColor then begin if Result = 0 then Result := CreateRectRgn(X, Y, X+1, Y + 1) else begin..
[Delphi] 마우스 커서에 위치한 윈도우의 핸들및 클래스이름 알아 오기. 마우스 커서에 위치한 윈도우의 핸들값과 클래스내임 등을 알아 낼수 있는 간단한 소스코드 입니다. SendMessage() 로 특별한 할 일을 할 수 있는 절호의 초간단 코드 입니다. var hWnd : THandle; clsName, Text : Array[0..511] of char; begin hWnd := WindowFromPoint(crPos); // 윈도우 핸들 입니다. GetClassName(hWnd, clsName, 512); // 클래스네임을 알아 옵니다. SendMessage(hWnd, WM_GETText, Sizeof(Text), Integer(@Text)); // 윈도우 타이틀을 알아 옵니다. end;원격 지원 프로그램을 만들수도 있는 좋은 방법 중 하나로 생각 됩니다 ^^
[DELPHI] Starship : software 3D rendering example 이 소스크도는 이전 델파이로 3D 를 구현하기 위해 참조했던 소스 코드 입니다. 원작자가 누구이신지를 알수 없으나, 소스가 일목정렬 보기 좋게 되어 있으므로 쉽게 C 로도 변경이 가능합니다. 다운로드는 다음 링크로 가능합니다.
[Delphi Tip] 한글 초성만 얻어 내기 예전에 Delphi 로 한글 초성을 알아 내는 방법으로 사용한 델파이 소스 코드 입니다. 간단히 말하자면 , 대한민국 은 초성이 ㄷ,ㅎ,ㅁ,ㄱ 이 됩니다. 원본 소스는 다른분이 만드신 것을 가져 온 것인데 .. 지금 이전 홈페이지가 문을 닫은 상태 이라 소스코드만 기재 합니다. ChoSungTbl1 : PChar = 'ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ'; JungSungTbl1: PChar = 'ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ'; JongSungTbl1: PChar = ' ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ'; function HanDiv(const Han: PChar; Han3: PChar): Boolean; var UniCode: Word; ChoSung, JungSung, J..