운영진의 원인 파악 결과를 보니 devpia.com 의 네임서버가 중국 해커에 의해 변경된 걸로 보입니다.
해당 원인이 해결되기 전까지는 hosts 파일 편집으로 로컬에서 Domain 을 해석해 주는 방법으로 가능합니다.

이를 간편하게 해주는 프로그램을 살포시 올립니다.
1번서버, 2번서버 아무거나 하나 선택해서 적용 하시면 됩니다.
여러번 하시면 hosts 파일에 여러번 남으니 그냥 한번만 하세요.

삭제를 누르면 ppomppu.co.kr 과 관련된 hosts 정보를 한꺼번에 제거 해 줍니다.


Linux 나 Mac 의 경우는 /etc/hosts 파일을 직접 편집해야합니다.
해당 플랫폼을 사용하시는 분은 많지 않고 대부분 알아서 할 수 있으리라 보고 Windows 용만 올립니다.
Win98, WinXP, Vista, Win7 에서 테스트 된 파일입니다.



'Talk' 카테고리의 다른 글

무한도전 게릴라 콘서트 - 그래 난 노래 못해 (하하)  (0) 2008.02.12
이산 - 무한도전 찾기  (0) 2008.01.15
새 신발은 발이 아프다?  (0) 2008.01.14
나와의 관계에서 주의사항  (2) 2007.10.29
Know-How  (0) 2007.10.21

폼의 크기를 변경할 때 내부 컨트롤이 폼 크기 안에서 다 보여지지 않을 경우 자동으로 스크롤이 생긴다. (TScrollingWinControl 의 기능)
이때, 6버전 이하의 경우 폼의 스킨이 윈도우에 설정 된 스킨이 아닌 XP 스킨 비슷한 것으로 바뀐다. (Delphi7 에서는 발생하지 않아 6버전 이하라고 추측함)
이에 대한 해결책은 호환 모드를 변경하여 실행시 하위 OS 호환 모드로 실행하는 것으로,
레지스트리에 키를 하나 만들어 주는 것으로 해결된다.
(그래도, 최고의 해결책은 Aero 를 지원하는 상위버전(최신 버전이 가장 좋을 듯)의 개발툴을 사용하는 것이다.) 

아래는 실행 시 자동으로 실행파일을 WinXP SP3 호환 모드로 바꿔주는 코드이다.


리소스 파일에 비트맵을 추가하던 도중 발생하였다.

동일한 디자이너가 준 파일임에도 특정 파일은 리소스 포함 시 오류를 발생하였고, 오류가 발생 된 파일의 공통점은 크기(이미지 크기)가 작다는 것 밖에 찾아낸 것이 없다.

이 문제는 간단한 구글링으로 해결되었으며 뉴스그룹 아카이브에 기록 된 내용이었다.

http://newsgroups.archived.at/borland/public.delphi.graphics/200512/051207901.html

포토샵에서 저장 된 비트맵의 경우 비트맵 파일 헤더의 크기 부분이 정확하지 않아 메모리 관리에서 문제가 발생한다는 것이다.

그래서 간단하게 문제의 이미지를 그림판에서 열어 전체 선택하여 복사 후, 새 이미지에 붙여넣기 하여 저장한 이미지를 리소스 이용에 성공하였다.

bool __fastcall IsWordCompleted(const String &AValue)
{
    for (int i = AValue.Length() + 1; --i > 0; )
        if (AValue[i] == -92)
            return false;
    return true;
}

자음 또는 모음 만 있는 글자는 LeadByte 가 FFFFFFA4(-92) 가 되므로 이를 판단하면 된다.
Console mode application 에서는 main 함수의 인자로 argv, argc 가 넘어오는데 이를 사용할 수 있다. 이에 해당하는 VCL Applicatoin 에서의 변수명은 _argv, _argc 다.

새 프로젝트를 생성하면 프로젝트명.res 파일이 있는데 이를 Image Editor 에서 직접 편집하면 가능된다. 기본 아이콘은 32x32 크기로 이를 16x16 로 축소시켜 TaskBar 등에 나타내게 되는데 16x16 크기의 아이콘을 미리 만들어 놓아도 된다.


TEdit 의 Style 에 ES_NUMBER 를 추가하면 된다.
아래는 코드 상에서 컨트롤을 바꿔서 처리하는 예제다.


class TEdit : public Stdctrls::TEdit
{
    typedef Stdctrls::TEdit inherited;

protected:
    virtual void __fastcall CreateParams(TCreateParams &Params)
    {
        inherited::CreateParams(Params);
        Params.Style |= ES_NUMBER;
    }
}

이렇게 하면 아쉽게도 실수('.' 포함 숫자) 처리가 되지 않는다.
직접 숫자 처리를 해 주거나 TEdit.OnKeyPress 에서 '.' 입력 시 SelText = "." 을 해주면 된다. 하지만 이 방법은 Beep 음이 나서 추천하지 않는다.
같은 방법으로 숫자 이외의 특정 문자를 입력 가능하게 할 수 있지만 Beep 음이 난다.
이 방법은 정수처리에만 적용하길 추천한다.


OnNewWindow2 이벤트에서 ppDisp 을 원하는 브라우저로 바꿔줌으로써 가능하다.

(예제 파일은 C++Builder 6.0 코드만 첨부)






procedure DrawBitmap(ATarget: TCanvas; ASource: TGraphic);
var
  mfPrint: TMetafile;
  mfCanvas: TMetafileCanvas;
begin
  mfPrint := TMetafile.Create;
  try
    mfCanvas := TMetafileCanvas.Create(mfPrint, 0);
    Try
      mfCanvas.Draw(0, 0, ASource);
    finally
      mfCanvas.Free;
    end;
    ATarget.Draw(0, 0, mfPrint);
  finally
    mfPrint.Free;
  end;
end;



+ Recent posts