프로그래밍/델파이 80

WebBrowser에서 ContextMenu, 특수키 막은 사이트 풀기.

웹 페이지들 중에서, 특수키(Shift, Ctrl, Alt)나 범위 선택, ContextMenu를 막아 놓은 사이트들이 심심찮게 있습니다. 이런 사이트들의 원리는 각 HTML 요소의 이벤트 핸들러를 통해서 막게 됩니다. document나 body에 이벤트 핸들러를 설정하여 막게 됩니다. 예를 들어 ContextMenu를 막을 때는 다음과 같이 HTML 코드를 작성합니다. 위와 같이 작성을 하면 내용 부분에서 ContextMenu가 나타나지 않게 됩니다. 이를 풀기 위해서 다음과 같은 코드로 ContextMenu를 다시 나타나게 할 수 있습니다. use SHDocVw_TLB, MSHTML_TLB; // ... AHTMLDocument2 := AWebbrowser2.Document as IHTMLDocume..

MS-SQL의 저장 프로시저 호출을 위하여 TADOStoredProc를 이용할 때의 주의점.

MS-SQL의 저장 프로시저 호출을 위하여 TADOStoredProc를 이용할 때는 파라미터의 순서를 반드시 일치 시켜야함을 주의해야만 합니다. MS-SQL에 다음과 같은 저장 프로시저가 있다고 가정한다면, test_proc @param1 INT, @param2 VAHRCHAR(20), @param3 DATETIME TADOStoredProc를 이용할 때는 다음과 같이 동적으로 파라미터를 순서에 맞게 생성해 주거나, IDE의 Object Inspector에서 TADOStoredProc 컴포넌트의 Parameters 속성에 직접 파라미터들을 생성해 주어야 합니다. procedure TForm1.Button1Click(Sender: TObject); var AADOStoredProc : TADOStoredP..

StrToDateTime, StrToDateTimeDef, TFormatSettings 관계 둘러보기

문자열을 날짜로 변환하는 경우에 사용하는 함수가 StrToDateTime, StrToDateTimeDef 입니다. 이 함수는 다음과 같이 선언되어 있습니다. function StrToDateTime(const S: string): TDateTime; overload; function StrToDateTime(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload; function StrToDateTimeDef(const S: string; const Default: TDateTime): TDateTime; overload; function StrToDateTimeDef(const S: string; const Default..

SQL의 DATETIME과 델파이 쿼리 결과와의 관계 정리

SQL의 DATETIME과 델파이 쿼리 실행 결과와의 관계를 정리해 보았습니다. 다음과 같은 테스트 테이블을 생성한 이후에 테스트를 진행하였습니다. CREATE TABLE DATE_TEST ( seq INT IDENTITY(1, 1) NOT NULL, date1 SMALLDATETIME NULL, ) INSERT INTO DATE_TEST -- 첫 번째 데이터 입력 VALUES ( NULL ) 위와 같은 테이블의 결과를 얻는 부분을 다음과 같이 작성하였습니다. SELECT * FROM DATE_TEST procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery.Open; try if (ADOQuery.Fields[1].IsNull) then Memo1..

창 닫기(Alt + F4) 막기

폼에서 창 닫기를 강제로 막으려면, WM_SYSCOMMAND 메시지를 처리하면 됩니다. 다음과 같은 코드들을 추가합니다. TForm1 = class(TForm) private procedure WMSysCommand(var Msg:TMessage); message WM_SYSCOMMAND; // 생략 end; implementation // 생략 {** 창이 단축키로 닫히지 않도록 함 *} procedure TForm1.WMSysCommand(var Msg: TMessage); begin if (Msg.WParam=SC_CLOSE) then Msg.Result:=-1; end; 위와 같이 코드를 추가해 주면, 시스템 메뉴의 닫기나, X버튼 및 Alt+4로 창을 닫을 수 없게 됩니다.

비트맵 이미지를 회전하는 메소드

비트맵 이미지를 회전하는 메소드 입니다. {** 이미지를 회전시킨다. @param SourceBitmap 원본 비트맵 @param DestBitmap 회전된 이미지 비트맵 @param dAngle 회전 방향은 반시계 방향. 0~360 사이의 각도 @param clBackground 배경색 *} procedure RotateBitmap(SourceBitmap, DestBitmap: TBitmap; dAngle: Double; clBackground: TColor); const MaxPixelCount = 32768; type PRGBTripleArray = ^TRGBTripleArray; TRGBTripleArray = array[0..MaxPixelCount] of TRGBTriple; var A: Ex..

728x90