반응형

Programming 211

jQuery tablesorter 플러그인을 사용하여 table sort

Intro안녕하세요~ 삽질하는 프로그래머 통통만두입니다.제 평생에 웹은 개발을 하지 않을 줄 알았더니 웹 개발을 하고 있습니다. ^^; 웹쪽 프로젝트를 진행하는 것이 처음이라 여러모로 헤메기도 하고 이름에 걸맞게 삽질을 하고 있는데요, 이번에는 table column sort 를 다루어 볼까 합니다. 사실 제가 나중에 참고하고자 포스팅을 하는 목적이 더 크네요. jQuery의 tablesorter 플러그인을 사용하게 된 과정이 있는데 각설하고 본론으로 들어가겠습니다. jQuery Plugin Download먼저 해당 플러그인을 사용하려면 플러그인을 설치하고 웹서버에 js파일을 업로드한 다음 사용해야 합니다. http://tablesorter.com/docs/ 해당 사이트에서 개요와 함께 다운로드, 예제를..

Programming/JSP 2016.06.01

[Android] INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 에러 발생시

Delphi 10 Seattle Tool 을 이용하여 Android 개발을 하고 있습니다. 헌데 갑자기 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 에러가 발생을 해서 한 참 헤메었습니다.SDK 재설치, 환경설정 재구성 등 많은 방법을 동원해봤는데 해결이 되지 않더라구요. 원인을 봤더니 안드로이드폰에 Project1.exe 파일이 이미 존재해서 그렇습니다. 무슨 말인고 하면..하이브리드앱 공부를 하다가 새로운 프로젝트를 만들어서 블루투스(Bluetooth) 공부를 하던 중인데 이 두 개의 프로젝트 이름이 Project1 입니다. 그렇습니다. 전혀 다른 두 개의 프로젝트이지만 실행파일명이 똑같기 때문에 발생하는 에러였습니다. 알고보면 간단한 문제였지만 해결방법을 몰랐..

델파이 스킨 적용

Delphi XE 버전 이후(?) 부터는 스킨을 적용해주는 기능이 포함되어 있습니다. 기본적인 스킨도 30여개정도 있으며 자신이 만든 스킨 또는 다른 사람이 만든 스킨을 추가하여 적용할 수 있습니다.이전에는 프로그램을 만들면 이쁘고 깔끔하게 보이기 위해서 스킨 컴포넌트를 사용한다던가 했었는데 이제는 그럴 필요가 없어졌습니다. 뭐 물론 기본적으로 제공해주는 스킨만 사용해도 충분하지만 2% 부족할 때가 있지요~ Delphi Custom Style File Path// 제 컴퓨터의 경로 C:\Users\Public\Documents\Embarcadero\Studio\17.0\Styles 참고http://docwiki.embarcadero.com/RADStudio/Seattle/en/Application_App..

Programming/Delphi 2016.03.03

Delphi Remove PageControl Border 델파이 페이지컨트롤 테두리 없애기

델파이에서 PageControl을 사용하다가 보면 Tab의 Visible 속성을 False로 해놓을 경우에 테두리가 존재해서 신경이 많이 쓰였습니다. 그렇다고 PageControl이나 TabSheet의 속성에 Border을 None로 처리하는 Propery 같은 것이 없었고, 따로 처리할려니 영 찝찝하고.. (결국에는 따로 처리하긴 했습니다. ㅠ_ㅠ) 이렇게 말씀드려도 비개발자분이시거나 저 테두리를 지금 처음(?)보셨다는 개발자분들은.. 이게 뭐 대수냐고 하실지 모르겠지만 은근히 거슬립니다. Client 내부의 Width, Height 도 8 픽셀정도씩 차이가 나기 때문에 이미지 등이나 Width, Height 가 고정된 프로그램에서는 확실히 영향이 있습니다. 위의 화면에 PageControl의 테두리 ..

Programming/Delphi 2016.01.20

<펌> Hook 에 대한 또 다는 설명

후킹에 대해서 괜찮은 설명글이 있어서 퍼왔습니다. 참고되시길 바랍니다. Hooking?Hooking는 처리될 윈도우 메시지를 도중에 가로채는 것을 의미한다. 윈도우 메시지는 처리과정에서 어떤 식으로든 시스템의 도움을 받아야 한다. 윈도우 시스템에서 메시지를 전달하기 전에 가로채 재처리를 할 수 있는 기회가 있는데 이것이 Hooking이다. 사실 Hooking은 가로챈 메시지를 처리하기 위한 Hook Procedure를 설치함으로써 간단하게 사용할 수 있지만 시스템이나 프로세스에 많은 부하를 줄 뿐만 아니라 시스템에 심대한 영향을 줄 수도 있는 위험한 기능이다. 그래서 윈도우에 대해 전반적인 이해가 필요하다. Hooking의 종류 Hooking은 Hooking할 대상의 범위와 메시지의 종류에 따라 나눠 볼..

Programming/Delphi 2015.12.02

[Delphi] WMI(Windows Management Instrumentation) 사용하기에 앞서

예전에 WMI(Windows Management Instrumentation)를 사용해서 실무프로젝트를 진행했던 일이 있습니다. 대략 2~3년전에 했던 것으로 기억을 하는데 당시만해도 WMI를 다루는데는 문제가 없을거라 느껴졌다가 근래에 와서 다시 WMI를 사용할 일이 있어서 보는데 예전에 했던것이 아무것도 기억이 안나네요. 대략적으로라도 정리만 해놨더라면 다시 처음부터 알아보는 일이 없었을텐데.. 프로그래머에게 있어서 자신이 했던 기술에 대해서는 꼭 문서로 남겨서 나중에 필요할 때 꺼내서 볼 수 있는 메모의 스킬은 꼭 필요한 것 같습니다. WMI(Windows Management Instrumentation) 개요WMI(Windows Management Instrumentation)는 엔터프라이즈 네트..

Programming/Delphi 2015.01.28

바이럴마케팅 프로그램은 불법이다.

안녕하세요. 삽질하는 프로그래머 통통만두입니다. "바이럴마케팅", "바이럴마케팅 프로그램", "카페자동등록기", "블로그자동등록기" 단어 혹은 이와 유사한 단어를 들어보셨나요? 결과부터 말씀드리면 자동으로 글을 등록하는 프로그램을 사용하여 광고를 한다는 것 자체는 가능하나, 이는 법을 위반하는 것입니다. 더 들어가서 광고를 하기 위해서 포털(흔히 N사, D사 라고하죠)에서 사용되는 아이디를 거래하고 이를 이용하여 광고글을 게시하는게 보통입니다. "입소문 내줄게"… 수백만건 가짜후기 올린 일당 덜미" 바이럴마케팅(자동등록, 댓글등록 등등) 프로그램을 개발, 유포 하는 것은엄연한 불법입니다. 하지만 이런 프로그램을 개발하는 것에 대해서 위법성을 인식하지 못하고 개발하는 개발자들이 대부분일 것으로 예상됩니다...

Programming/Etc 2014.07.29

버튼 이벤트 연결하기

- 안드로이드 3.0이상에서부터 XML안에서 android:onClick 속성을 설정할 수 있다.- 아래의 내용은 onClick 이벤트에만 적용이 된다. 우선 xml에서 아래와 같이 정의한다. 그런 후에 해당하는 Activity.java에 아래의 함수를 추가한다.public void onButtonClick(View v) { switch(v.getId()) { case R.id.btn_test01 : Toast.makeText(getApplicationContext(), "역시 통통만두는 천재인가봐", 2).show(); break; case R.id.btn_test02 : Toast.makeText(getApplicationContext(), "형님 제발 이클립스좀 까세요", 2).show(); bre..

Programming/Android 2014.06.26

[다이나믹스킨] 자식폼을 최소화할 때 태스크바로 내리기

Version 11.60 자식폼을 최소화 했을 경우에 태스크바로 내려가지 않고 좌측 하단으로 내려간다 -_-; 외국에서는 저렇게 사용하는지, 아니면 MDI 환경을 고려한 것인지는 몰라도.. 나는 여간 신경쓰이고 못마땅하다 ㅋㅋㅋㅋㅋ 소스 붙잡고 엎어치기 몇 번 한 결과.. TspDynamicSkinForm 컴포넌트의 MinimizeDefault 를 True로 바꿔주면 된다. 기본적으로 컴포넌트가 생성이 될 때 False 로 셋팅을 하기 때문에 좌측 하단으로 내려가게 된다. 자.. 이제 Form의 Create의 부분에서 TspDynamicSkinForm 컴포넌트의 MinimizeDefault 속성을 True로 바꿔보자. 아차! TspDynamicSkinForm 컴포넌트를 사용해서 창을 띄웠을 경우 자식폼은..

Programming/Delphi 2011.07.06

[다이나믹스킨] 메인창이 뒤로 갔을 경우 잔상이 남을 때

Version 11.60 TspDynamicSkinForm 컴포넌트를 사용해서 다중폼을 만들었을 경우에, 메인폼이 프로그램에서 생성한 다른 폼 뒤로 갈 경우 아래와 같은 잔상(?)이 생긴다. 아.. 정말 짜증난다. 워낙 영어랑 친하지도 않아서 제작사에 메일을 보내서 알아볼 수도 없고... 어떻게 어떻게 소스타고 들어가서 확인해 본 결과.. 프로젝트 소스에서 Application.MainFormOnTaskbar 를 False 로 바꿔주거나 주석처리(기본값이 False) 해주면 된다. program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initial..

Programming/Delphi 2011.07.06

폼이 없는 unit 에서 초기화방법

프로그래밍을 하다보면 자주 사용하는 함수나 폼이 없는 unit를 생성해서 초기화를 해야 할 경우가 있다. unit에 프로시저나 함수를 한 개 만들어서 초기화 하는 경우도 있겠지만.. 나 같은 경우 아래와 같이 사용한다. unit Unit1; interface uses Classes; var TestStringList : TStringList; implementation initialization TestStringList := TStringList.Create; finalization FreeAndNil(TestStringList); end. 맨 아래 initialization 에서 초기화를 하고, finalization 에서 메모리를 반납한다. 참 쉽죠잉~?

Programming/Delphi 2011.07.05

현재 사용중인 익스플로러 버전 확인하기

현재 사용중인 익스플로러 버전을 확인하는 함수이다. 레지스트리를 사용하기 때문에 비스타 혹은 윈도우7에서 사용할 경우에는 UAC 권한을 상승시켜서 봐야한다. 또 소스를 보면 알겠지만 Major 버전만 가져오는것이지만, 필요에 따라 바꿔서 쓰자. function ExplorerVerCheck : Integer; var Reg : TRegistry; Buffer : String; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Internet Explorer', False); Buffer := Copy(Reg.ReadString('Version'), 1, 1); Result ..

Programming/Delphi 2011.07.05

유효한 파일명인지 체크

파일명에는 들어가서는 안 될 문자가 몇 개 있다. 1. \ 2. / 3. : 4. * 5. ? 6. " 7. 9. | 물론 탐색기같은 곳에서 저런 문자를 쓰면 친절하게 알려주지면, 소스내에서 코딩을 할 때 무심코 저런 문자를 쓰거나, 날짜 형식(14:32) 같은 것을 파일명에 포함해버리면 에러가 난다. 예외처리를 잘 해두면 원인을 파악하는데 빠르지만, 그렇지 않을 경우에는 헤메는 경우가 있.. (나만 그랬나? -_-;) 아래와 같은 함수로 파일명을 체크한 후에 안전하게 저장을 하면 끗~ function FileNameValidCheck(const FileName: String) : Boolean; var i : Integer; begin Result := True; i := GetFileAt..

Programming/Delphi 2011.07.05
반응형