kkuzil.own@gmail.com

Posted
Filed under Development/Delphi
Ctrl + Alt + . : 주석으로 변경
Ctrl + Alt + , : 주석 해제
Ctrl + Alt + U : uses 로 이동 한번 더 누르면 interface uses로 이동 한번도 누르면 최초 제자리로 이동
Ctrl + Shift + V : 해당 프로시저의 var로 이동 한번 더 누르면 최초 제자리로 이동
Ctrl + Alt + O : 최근 열어본 파일 확인 및 열기
2015/04/21 09:39 2015/04/21 09:39
Posted
Filed under Development/Delphi
델파이 바로가기(.lnk) 속성으로 들어가서 "-np" 파라메터를 추가 해주면 된다.

끝.
2015/04/20 22:52 2015/04/20 22:52
Posted
Filed under Development/Delphi
TScrollBox 에서는 기본적으로 마우스 휠이 적용이 안된다.
그래서 적용하는 방법은...

TScrollBox을 품고 있는 폼의 MouseWheel 이벤트에

  if WheelDelta >= 0 then
    SendMessage(scBox.Handle, WM_VSCROLL, SB_LINELEFT, 0)
  else
    SendMessage(scBox.Handle, WM_VSCROLL, SB_LINERIGHT, 0);
  Handled := True;

을 하면 되는데, 다른 컨트롤에 스크롤이 있는경우 모든 스크롤 이벤트를 가로체서 해당 컨트롤에 까지 닫지 않는다.

WindowFromPoint(p: TPoint) 를 이용해서 마우스 커서에 올려져 있는 컨트롤이 TScrollBox인지 스크롤 다른건지 확인해서 넘겨준다.

procedure TForm1.Form1MouseWheel(Sender: TObject;
  Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
  var Handled: Boolean);
var
  h: HWND;
begin
  h := WindowFromPoint(MousePos);

  if (h <> vtProc.Handle) and (h <> vtList.Handle) then
    h := scBox.Handle;

  if WheelDelta >= 0 then
    SendMessage(h, WM_VSCROLL, SB_LINELEFT, 0)
  else
    SendMessage(h, WM_VSCROLL, SB_LINERIGHT, 0);
  Handled := True;
end;

이런식으로 폼 MouseWheel 이벤트에 추가해주면 장점이 있는데,
스크롤 할 컨트롤을 굳이 클릭해서 포커스를 주지 않아도 마우스 휠만으로 스크롤이 가능하다는 것이다.
 
끝.
2014/11/05 10:23 2014/11/05 10:23
Posted
Filed under Development/etc.
.cmd 파일에 파라미터 값을 넣어서 다르게 처리해줘야 할 일이 있었는데...
이게 잘 동작하지 않았다.

>build.cmd RELESE;TRACE

이렇게 한다고 치면 build.cmd 에서는 RELESE만 인식하고 세미콜론(;) 밑으로는 처리되지 않고,

>build.cmd "RELESE;TRACE"

이렇게 하면 build.cmd에서 "RELESE;TRACE" 이렇게 그대로 받아오긴 하지만...
build.cmd에서 기본값으로 사용하는 값을 파라미터 뒤에 붙히기 힘든상황이었다..
예) TRANS라는 값을 상황에 따라 build.cmd의 "RELESE;TRACE" 파라미터 값에 꼭 붙혀야 할때 "RELESE;TRACE"TRANS 이렇게 밖에 붙혀지지 않았다.

그래서 RELESE;TRACE;... 라는 파라미터를 따옴표(")없이 세미콜론(;)을 포함해서 받아 오려면 방법이 없을까!!
결국 삽질 끝에.. 찾아냈다.

파라미터를 받아오는 build.cmd 안에서

SET DEFIND=%~1

이렇게 물결(~)을 앞에 추가하면 따옴표(")를 제외한 값을 사용할 수 있게 된다.
아.. 삽질 너무 싫어...
2014/07/14 09:09 2014/07/14 09:09
Posted
Filed under Development/Delphi
다른 컴포넌트나 라이브러리의 클래스를 사용 할때 기존 소스코드의 변형없이 편하게 기능을 추가 할때 helper  클래스를 사용해왔는데 기작성된 메쏘드, 속성이 private에 있으면 사용이 안된다...
하지만...! 약간의 삽질 결과 아주 간단하게 해결됨..!! -ㅁ-)/


private 의 메쏘드와 속성을 사용할때 앞에 자신을 가리켜 주면된다.("Self.")

type
...
...
// 원래 클래스 형태

  TCustomEdit = class(TWinControl)
  private
    ..
    FMaxLength: Integer;
    ..
    ..

// helper 작성
  TTCustomEditHelper = class helper for TCustomEdit

  public
    procedure SetDefMaxLen;
    ..




implementation


procedure TTCustomEditHelper.SetDefMaxLen;
begin
  Self.FMaxLength := 100; // 요렇게
end;
2014/06/30 15:08 2014/06/30 15:08