본문 바로가기

전체 글

저장 다이얼로그 박스 파일명 자동 입력하기 PDF문서로 저장시 기본 저장 파일명을 사용자 임의로 자동 변환해서 저장하고자 할 경우에 특정 상태에서 콤보박스의 EDIT 부분에 Sendmessage(WM_SETTEXT...)로 파일명을 입력 하였을 경우 입력된 파일명이 인식 되는 경우가 있고 안되는 경우도 있습니다. 이때 100% 인식 시키기 위해서는 다음과 같이 문자 단위로 입력 하도록 하면 잘 인식 됩니다. 더보기
TStringList를 이용한 문자열 중복 제거 처리 TStringList 객체를 이용한 간단한 문자열 중복 제거 처리 프로그램중 문자열을 많이 다루게 되는데 문자열 목록을 중복을 배제하고 관리해야 할 경우가 있다. 예를 들어 검색을 위한 색인어 추출시 중복이 배제 되어야 하며, 키워드 목록 등이다. 이때 TStringList 객체를 이용하여 쉽게 문자열 중복을 배제 시킬 수 있다. 처리 함수 제작 procedure RemoveDuplicates(const stringList : TStringList) ; var buffer: TStringList; cnt: Integer; begin stringList.Sort; buffer := TStringList.Create; try buffer.Sorted := True; buffer.Duplicates := du.. 더보기
AnimateWindow API를 이용한 델파이 콘트롤 애니메이션 효과 델파이의 콘트롤들은 모두 TWinControl을 상속 받는데 이 콘트롤들은 윈도우의 애니메이션 API인 "AnimateWindow"를 이용하여 여러가지 애니메이션 효과를 줄 수 있다. 예를 들어 판넬(Panel)에 대해서 Hide, Slide, Fade 등의 효과를 줄 수 있다 AnimateWindow API 정의 function AnimateWindow(hwnd : HWND; dwTime : DWORD; dwFlags : DWORD); - hwnd : 애니메이션을 주고 싶은 콘트롤의 핸들- dwTime : 애니메이션 효과를 주는 시간으로 밀리세컨드 단위로 준다 일반적으로 200 millisecond가 적당- dwFlag : 애니메이션 효과 구분으로 다음과 같이 정의됨 ValueMeaningAW_ACTI.. 더보기
EurekaLog와 다른 리소스 누수 탐지 모듈 델파이에서 리소스(메모리/GDI) 누수에 대해 Denomo 모듈을 사용해 보자 친절하게도 델파이용을 별도 제공한다. 다운로드 URL : http://www.kbasm.com/denomo.html 1. 설치 방법 - 다운받은 파일을 프로젝트 경로 또는 공통 라이브러리 경로에 압축을 풀어 놓는다. - FastMM처럼 프로젝트 메인 소스의 Uses 절에 "Denomo.pas" 유닛을 추가한다. 2. 프로젝트 옵션 설정하기 - 델파이 프로젝트 옵션(Compiler) 에서 "Optimization"을 비활성화 시킨다 - "Stack frames", "Debug information", "Reference info", "Definitions only", "Assertions", and "Use Debug DCUs".. 더보기
[Delphi] XP에서 TSaveDialog의 확장자 필터타입 바꿨을때 파일명 확장자가 자동으로 변경되지 않는 문제 1. TSaveDialog TSaveDialo를 이용하여 저장하고자 하는 파일 타입들을 등록하고 선택적으로 파일 타입을 선택하여 저장할 수 있다. 이때 파일타입 변경시 Windows7에서는 기본 지정된 파일명의 확장자가 자동으로 변경된 파일 타입의 확장자로 변경되는데 WindowsVISTA에서는 자동 변경되지 않음 또한 XP에서도 자동으로 변경되지 않는 문제가 발생함 2. 해결방법 VISTA에서는 TSaveDialog.OnTypeChange 이벤트에서 필터 인덱스에 따라서 확장자를 강제 지정하여 Dioalog.FileName에 강제 지정해 주면 변경 되는데 XP에서는 이마저도 되지 않는다. 구글링을 통해 여러 문서를 찾아 보았으나 원천적인 버그로 기록 되어 있고 별다른 해법이 존재하지 않아서 다음과 같이.. 더보기
런타임(Runtime) 한영 전환 [출처 : http://blog.daum.net/ryang000/66] public에 밑에 함수 추가 const English = 0; Korean = 1; uses InputUnit, ViewUnit, Imm; {$R *.DFM} //////////// 한/영상태 검사 루틴/////////////// function TMainForm.IsHanState(paForm: TForm): boolean; var fFlag, imeMode: DWORD; hIMC: THandle; begin hIMC:= ImmGetContext(paForm.Handle); ImmGetConversionStatus(hIMC, fFlag, imeMode); ImmReleaseContext(paForm.Handle, hIMC); Re.. 더보기
[팁] ActiveX XP에서 한영 전환 안되는 문제 해결책. [원본]http://www.delphi.co.kr/?mid=lecture&page=24&document_srl=156160 델파이 activeX를 다른 os(win98, win 2k)에서 개발 하면 imeName이 제대로 설정되지 않아서 한영 전환이 안됩니다. 문제는 Screen의 ImeName이 thread기동시에 제대로 설정되지 않아서 이며, 일반적인 프로그램의 경우에는 바르게 작동하는 것으로 보입니다. 이것을 델파이의 문제라 할지 win xp의 문제라 할지 의문입니다. 양쪽다 조금씩 문제점이 존재 한다고 생각됩니다. 가장 쉬운 해결책은 ImeName 속성을 모두다 공백으로 설정하는 것입니다만 이전에 개발한 프로그램의 속성을 모두다 바꾸는 것이 귀찮기도하죠. 다음은 해결 방법입니다. forms.pas.. 더보기
[MSSQL] 풀텍스트인덱스(FullText Indexing) 사용하기 샘플 -- 풀텍스트 인덱스 카타로그가 있는지 확인 select * from sys.fulltext_catalogs -- 풀텍스트 인덱스 서비스 활성화 sp_fulltext_database enable -- 풀텍스트 인덱스 카탈로그 생성 - 생성경로 또는 폴더 개념 exec sp_fulltext_catalog 'FTS_ARTICLE','create','G:\Fulltext' -- 풀텍스트 인덱스를 위한 테이블 및 기본키 인덱스 지정 exec sp_fulltext_table 'article', 'create', 'FTS_ARTICLE', 'PK__Article__1920BF5C' -- 풀텍스트 인덱스에 테이블의 인덱싱 필드 추가 exec sp_fulltext_column 'article', 'title1', 'a.. 더보기