본문 바로가기

전체 글

How to detect clicked item and column in TListView How to detect clicked item and column in TListViewTListView에서 마우스가 클릭한 위치의 Item과 Cell Column을 인지하는 방법 Click된 컬럼은 Caption을 포함한 인덱스 값을 유지한다.Item.Caption = column 0Item.subitem[0] = column 1Item.subitem[1] = column 2 TListView의 OnMouseDown 이벤트 핸들러를 이용할 수 있고 제공된 마우스 X,Y 좌표를 이용해 Item을 얻을 수 있고 SubItems의 각 CELL Width를 계산하여 클릭된 컬럼을 인지할 수 있다. 아래 사례는 "How to draw a checkbox to column in a TListView" 에 기술된.. 더보기
How to draw a checkbox to column in a TListView How to draw a checkbox to column in a TListView 델파이(Delphi)에서 TListView의 특정 컬럼에 체크박스 표시하기 TStringGrid 또는 TListView의 특정 컬럼에만 체크박스를 표시하는 방법을 알아보자 use 절에는 다음과 같은 유닛을 포함시켜야 한다 .. uses // ListView_GetEditControl : ListView의 Items의 Text Edit를 위한 핸들을 얻는함수 commctrl, // 테마(Theme) 사용시 테마정보를 얻기 위한 UxTheme, // IfThen 함수 사용을 위한 Math, .. TListView의 OwnerDraw Property = true로 지정후 "OnDrawItem"을 다음과 같이 작성한다. 2번째.. 더보기
델파이(Delphi)에서열거형(Enum Type)을 문자열로 표현하는 방법 델파이에서 다음과 같은 Enum Type이 있는 경우 // Type TMyFavoriteColor = (fclBlack, fclWhite, fclYellow, fclRed, fclBlue); // 배열상수를 선언하여 문자열로 치환하는 방법 // const ArrMyFavoriteColor : Array[TMyFavoriteColor] = ('검정', '흰색', '노랑', '빨강', '파랑'); var myColor : TMyFavoriteColor; begin myColor := fcBlue; ShowMessage(ArrMyFavoriteColor[myColor]); end; // Type Helper를 이용하는 방법 // type TMyFavoriteColorHelper = record helper f.. 더보기
IHTMLElement.getAttribute('onclick') return nullstring(='') elm : IHTMLElement; ... onclickString := elm.getAttribute('onclick'); 위 명령은 IHTMLElement의 속성중 'onclick' 정보를 얻으려고 하는것이지만 실제로 코드 수행후에는 빈문자열('')이 리턴된다 이것은 'onclick'에 한정되어 이런 현상이 나오는데 해결책은 다음과 같이 OleVariant 타입캐스팅으로 Ole객체 함수 호출 방법을 사용하는 것이다. onclick := OleVariant(elm).getAttribute('onlclick'); ... if (Element as IHTMLElement5).hasAttribute('onclick') then onclickstr := OleVariant(Element).getAttribut.. 더보기
IHTMLElement.getAttribute EvariantTypeCastError 오류 피하기 IHTMLElement.getAttribute EvariantTypeCastError 오류 피하기 IHTMLElement의 메소드중 속성값을 얻어오는 getAttribute 사용시 제공된 속성이 없으면 다음과 같은 예외 오류가 발생한다. raised exception class EVariantTypeCastError with Mesage 'Could not convert variant of type (Null) into type (OleStr)." 위 오류는 Element에 제공된 속성이 없어서 NULL값을 반환 할 때 받는 쪽에 할 당할 수 없는 NULL이 할당될 때 발생하는 오류로 다음과 같은 방법으로 해결 할 수 있다. var attrstr : string; begin if OleVariant(el.. 더보기
TWebBrowser 확대/축소, Zoom 웹브라우저(TWebBrowser) 확대 축소하기, Zoom 델파이를 이용하여 다음과 같은 코드를 작성하여 브라우저의 확대 축소를 지정할 수 있다. Zoom의 원본보기 지정은 100 이다. var pvaIn, pvaOut: OleVariant; begin pvaIn := 200; pvaOut := Null; WB.ControlInterface.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, pvaIn, pvaOut); 더보기
[Django] 장고프로젝트를 pythonanywhere.com 에 배포해보기 [Django] pythonanywhere.com에 프로젝트 배포(Deploy) 과정 파이썬 + 장고로 개발된 프로젝트를 배포하기 위해서는 다음 과정을 거친다.프로젝트 구조는 다음과 같다고 가정한다. 1. settings.py 편집○ 개발을 위해 설정한 "DEBUG" 옵션을 False로 지정한다.# SECURITY WARNING: don't run with debug turned on in production!DEBUG = False ○ BASE_DIR : 프로젝트 기본경로를 설정한다# Build paths inside the project like this: BASE_DIR / 'subdir'.BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__.. 더보기
[Django] Form에서 입력받은 ','로 구분된 문자열 파싱 하기 Form에 의해 입력된 값중, 태그 등과 같이 ','로 구분된 문자열을 입력 받아 ','로 파싱해서 얻으려면 다음과 같이 한다. tags = form.cleaned_data['tags'].split(',') 이후 for tag in tags: .... 더보기