Archive for July, 2010

Windows 7 Keyboard Shortcuts to Increase Productivity

Windows7 단축키 중에서 내가 필요한 몇 가지

Win + Shift + Left Arrow Jump to left monitor
Win + Shift + Right Arrow Jump to right monitor
Ctrl + Shift + N Create new folder


PPT작업시 파워포인트를 다중창으로 열기

도데체 왜? PPT는 하나만 편집하라는 거냐구!!! Copy&Paste하지 말라는 이야기? 아님 뭐냐구!

PPT작업시 파워포인트를 다중창으로 열기.



FreeBSD 8.1 Release?

기념 빌드 중...

덧) 블드 해봤는데...

[whitekid@10446 ~]$ uname -a
FreeBSD woosum.net 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #0: Tue Jul 20 11:56:57 KST 2010     root@10446.woosum.net:/usr/obj/usr/src/sys/GENERIC  i386
[whitekid@10446 ~]$ 

Firefox 4.0 Beta 1 설치

channy님의 트윗을 보고 생각난김에 Firefox 4.0 Beta 1을 설치했습니다. 뭐 저야 리뷰어는 아니니 그냥 간단하게...

  • 탭이 아주 깔끔하네요.
  • 메뉴바를 숨길 수 있는 기능이 있군요. 메뉴바 솔직히 많이 볼 필요는 없었는데, 좋습니다. 3.6에서 Add-on으로 해결했는데, 이젠 기본 기능, 메뉴바가 안보일 땐 위의 그림처럼 Firefox 버튼이 생깁니다.
  • 역시나 호환안되는 Add-on이 많습니다. 시간이 해결하겠죠.
  • Add-on 페이지가 확 바뀌었군요. 적응하려면 시간이 걸리겠네요.
  • 왠지 속도가 빨라진 것 같습니다(몇몇 add-on이 disable되어서 그럴지도 모르지요).

나머지는 좀 더 써보면서...

  • 글을 쓰는데 오타난 곳에 빨간 물결 모양이 나타나는 군요. 한글은 아무런 영향도 없네요.

추가)

  • 이전엔 탭 위치 이동할때 화살표 가이드가 나온것 같은데, 이제는 안보이네요.
  • 갑자기 특정 며며 키가 안먹는 ㄷㅇ작이 발생합니다. (인ㅉㄱ글은 ㅇ타가 아닙니다. 정학하게 입력하는데, firefox에서 안먹ㅇ요. 줏입력 란엗 안먹는거 ㅂ니 firefox의 문제가 학실합니다.)

Delphi의 새로운 라이센스 정책

델파이의 라이센스 정책에 새로운 라이센스 타입이 추가되었다는군요. 이름 재밌네요 TagCloud 라이센스. 뭐. 대략 읽어본 봐로는 하나의 라이센스를 가지면 Delphi 2007, Delphi 2010을 모두 설치할 수 있다고 합니다. 물론 일반 라이센스보다 25% 비싸답니다.

이거 참 반가운 일입니다.

새로운 버전의 기능을 쓰고싶은데, 라이센스 부담으로 설치못하고, 지금 것도 잘 되잖아라는 것에 반박할 거리 찾아내고.

새로운 버전으로 마이그레이션 하고 싶은데, 트라이얼 버전에 제한된 시간으론 완벽한 테스트가 불가능하고,

이러한 문제점을 일거에 해결할 수 있겠군요. 그런데.. 다른 새로운 버전이 나왔을 경우도 적용되는지에 대해선 언급이 없어 아쉽네요.

덧) 제가 잘못 알고 있었던 것도 있었군요. 자세한 것은 임프님 댓글로 http://www.borlandforum.com/impboard/impboard.dll?action=read&db=free&no=18437


Delphi IDE에서의 정규식…

hi=:param

hi = :param

으로 변경하고 싶습니다. 정규식을 써야겠지요? 그래서 Replace에서 정규식을 적었더니 이상하게 잘 못 찾습니다. 도움말을 봤죠. 그랬더니 약간 제가 알고 있던 정규식과는 이상한 부분이 있데요.

{ } Braces group characters or expressions. Groups can be nested, with a maximum number of 10 groups in a single pattern. For the Replace operation, groups are referred to by a backslash and a number, according to the position in the "Text to find" expression, beginning with 0. For example, given the text to find and replacement strings, Find: {[0-9]}{[a-c]*}, Replace: NUM\1, the string 3abcabc is changed to NUMabcabc.

그냥 괄호"()"를 쓰는게 일반적인 정규식으로 알고 있었는데, 여기선 중괄호"{}"를 사용하네요.

Text to find: {[a-zA-Z]}=\:{[a-zA-Z]}
Replace with : \0 = :\1

ps 1. 그리고 IDE 검색기능에 전체 프로젝트 파일에서 찾는것까진 정말 좋습니다. 그런데 여기서 추가로 찾은 것에 대해서 바꾸기나 프로젝트 전체에서 바꾸기 그런거 있으면 좋겠네요. 또한 dfm 파일에서도 찾을 수 있으면 좋겠네요.

물론 다른 에디터를 실행해서 할 순 있지만, 귀찮을 때가 있어요.



AlphaBlend를 사용할 때 리소스 부족

Dimmer라는게 있습니다. 다이얼로그가 뜨면, 나머지를 흐리게 표시하는, 요즘 웹에서 많이 보이는 것이죠. 이것을 델파이로 구현한 것이 저 링크인데.. 오늘 사용하다보니 이상하게도 가려진 폼의 전체가 아닌 일부분만 조그만하게 표시되는 겁니다. 이상해서 Spy++로 봐도 윈도의 크기는 원하는데로 있는데, 표시만 저렇게 됩니다.

결국 AlphaBlend처리하는 소스를 보니 SetLayeredWindowAttributes를 사용하는데, 에게 실패하는 것 같아서 확인해보니 역시나입니다. 이게 리소스 부족이라는 메시지를 내면서 실패하더군요.

또한 이럴때 현상을 보면 DimmerForm이 작으면 제대로 되가다 일정 크기가 넘어가면 제대로된 동작을 하지 않던가, 아니면 폼에 일그러진 이미지들이 표시됩니다.

결국 SetLayeredWindowAttributes가 실패하면 Dimmer를 표시하지 않도록 변경했습니다.

procedure TDimmerForm.Display;
const
  cUseAlpha: array [Boolean] of Integer = (0, LWA_ALPHA);
  cUseColorKey: array [Boolean] of Integer = (0, LWA_COLORKEY);
begin
  BoundsRect := Application.MainForm.BoundsRect;

  // 여기는 TCustom.SetLayeredAttribs에서 가져옮
  if SetLayeredWindowAttributes(Handle, ColorToRGB(TransparentColorValue), AlphaBlendValue,
    cUseAlpha[AlphaBlend] or cUseColorKey[TransparentColor]) then
    Show;
end;

이젠 리소스가 부족하면 차라리 안보이지.. 엉뚱하게 보이지는 않습니다. 아.. 이 리소스 부족에러.. 어떤놈이 리소스를 많이 잡아먹는지 알 수 있거나, 아님 리소스 누스를 만들어 내는 프로그램들을 어떻게 찾을 수 있는 방법 없을까나...


Object Pascal Style Guide kr 20100112.pdf

Object+Pascal+Style+Guide_kr_20100112.pdf.

  • 그리고 begin 문은  항상 새로운 줄에서 시작합니다.
    if IsTrueValue then
    begin
      DoSomething;
    end
    else
    begin
      DoSomethingElse;
    end;

    이런 경우 end, else 줄이 너무 낭비 같은 느낌이 드는데.. 쩝.. 8.2.3 if 문에선 길게 사용하라는군.. 아님 else를 붙이던지..

  • 메소드는 알파벳 순서에 따라 정렬합니다.
  • If 문은 적어도 두 줄에 표현됩니다.

  • Copyright © 1996-2010 Your wish is my command. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress