Search results for 'Delphi/C++Builder'

  1. 2014.11.03 -- 더 쉬운코드, 더 유연한 코드를 작성할 수 있는 현대식 문법
  2. 2014.11.03 -- 데브기어에서 제공하는 델파이 문법으로 문법을 다시 익혀보세요.
  3. 2014.10.29 -- VCL 스타일 커스터마이징 하는 방법
  4. 2014.09.04 -- RAD Studio 데모코드 최신버전 다운로드(SVN 이용)
  5. 2014.08.27 -- 가끔 사용해 헛갈리는 DisplayFormat(FormatFloat)
  6. 2014.08.18 -- System.Zip.TZipFile - 기본 압축라이브러리
  7. 2014.08.14 -- 델파이 실행 시 EditorLineEnds.ttr 파일을 만들 수 없다는 오류 메시지 원인과 해결책 (4)
  8. 2014.07.30 -- RAD Studio XE6 TChart 패치
  9. 2014.07.30 -- 델파이(그리고 C++빌더) IDE에서 Github 사용하기 (2)
  10. 2014.07.22 -- OXml(XML 라이브러리) 소개
  11. 2014.07.22 -- 델파이를 이용해 구글크롬캐스트와 연결
  12. 2014.07.14 -- TFileStream 기반 파일진행 상황을 보여주기
  13. 2014.07.10 -- 인터베이스 서버(InterBase Server)에 접속이 되지 않는 경우 대처사항
  14. 2014.07.10 -- RAD Studio IDE(통합개발환경) 사용법
  15. 2014.07.08 -- Delphi, C++Builder 64bit 실행 시 "Unable to ..." 오류 대응방법
  16. 2014.07.08 -- FastReport 4 VCL(Embarcadero Edition) 설치 오류 우회방법
  17. 2014.06.16 -- JSON to Object 한줄이면 됩니다.
  18. 2014.06.05 -- 델파이 IDE 상에서 Github 소스 바로사용하기
  19. 2014.05.13 -- RAD Studio IDE의 소스코드 창과 폼 디자이너창 분리하기
  20. 2014.05.07 -- RAD Studio 64bit 디버깅 시 "unable to create process" 오류 메시지가 나오는 경우 대처방안

더 쉬운코드, 더 유연한 코드를 작성할 수 있는 현대식 문법

2014.11.03 14:42

현대식 문법

현대식 문법으로 여러분의 코드를 더 짧게, 더 쉽게, 더 유연하게 작성할 수 있습니다.

아래 간단한 문법소개와 샘플을 통해 어떤 기능을 하는지 소개합니다. 하지만, 여러분의 코드에 적용하기 위해서는 더 깊은 이해가 필요합니다. 엠바카데로 기술문서와 현대식 문법을 더 자세히 익힐 수 있는 도서를 소개해 드리니 참고하셔서 더 다양한 문법으로 더 강력한 코드를 작성해보시기 바랍니다.


11월 13일(서울), 11월 20일(대구)에 열리는 "VCL 애플리케이션을 더욱 멋지게 'Developer Direct LIVE!'" 세미나에서도 해당 내용을 직접 들어볼 수 있으니 신청하셔서 직접 들어보시다면 더 도움이 될것입니다.


❑ 타입헬퍼(Type Helper)

타입헬퍼는 클래스, 레코드, 열거형, 타입의 기능을 확장할 수 있는 문법입니다.


아래 예제와 같이 열거형의 기능을 확장하고 기존 TPicture 클래스의 기능을 확장하는 방식으로 활용할 수 있습니다.

type
  TGeoDirection = (North, East, South, West);
  // 열거형을 만자열로 변환하는 기능 추가
  TGeoDirectionHelper = record helper for TGeoDirection
    function ToString: string; inline;
  end;

  // URL 이미지를 로드하는 기능 추가
  TPictureHelper = class helper for TPicture
  public
    procedure LoadFromUrl(AUrl: string);
    procedure LoadFromUrlWithThread(AUrl: string);
  end;

function TGeoDirection.ToString: string;
begin
  case Self of
      TGeoDirection.North:  Result := '북쪽 (N)';
      TGeoDirection.East:   Result := '동쪽 (E)';
      TGeoDirection.South:  Result := '남쪽 (S)';
      TGeoDirection.West:   Result := '서쪽 (W)';
    else
      raise Exception.Create('Unknown "TGeoDirection" value');
  end;
end;

var
  Direction: TGeoDirection;
begin
  Direction := South;
  ShowMessage(Direction.ToString);

  Image1.Picture.LoadFromUrl('http://abc.com/Image.jpg');
end;

더 알아보기

❑ 제너릭(Generic)

클래스와 메소드에서 사용하는 데이터 타입을 사전에 정하지 않고 유연하게 사용할 수 있는 문법입니다.

구현 시 데이터 타입을 지정해 사용할 수 있어 하나의 클래스(메소드)를 다양한 데이터 타입으로 사용할 수 있습니다.


아래의 예제에서는 전통적인 클래스(TClassicSIPaire) 형식은 타입을 지정해 클래스를 만들고,

제너릭 클래스의 경우 TKey, TValue 두개의 타입인자를 통해 사전에 데이터 타입을 정하지 않아, 재선언(TSIPaire) 해 사용하거나 구현 시 데이터 타입 지정(KeyValue3: TPair<string, Integer>)하는 등 유연하게 사용할 수 있습니다.

type
  TClassicSIPair = class
   private
     FKey: String;
     FValue: Integer;
   public
     function GetKey: String;
     procedure SetKey(Key: String);
     function GetValue: Integer;
     procedure SetValue(Value: Integer);
     property Key: string read GetKey write SetKey;
     property Value: Integer read GetValue write SetValue;
   end;

   TPair<TKey,TValue> = class
   private
     FKey: TKey;
     FValue: TValue;
   public
     function GetKey: TKey;
     procedure SetKey(Key: TKey);
     function GetValue: TValue;
     procedure SetValue(Value: TValue);
     property Key: TKey read GetKey write SetKey;
     property Value: TValue read GetValue write SetValue;
   end;

  TSIPair = TPair<string, Intege>;
  TSSPair = TPair<string, string>;

procedure TForm1.Button1Click(Sender: TObject);
var
  KeyValue1: TClassicSIPair;
  KeyValue2: TSIPair;
  KeyValue3: TPair<string, Intege>;

  I: Integer;
  ListUser1: TObjectList;
  ListUser2: TObjectList<TUserData>;
begin
  KeyValue1 := TClassicSIPair.Create;         // 전통적인 클래스
  KeyValue2 := TSIPair.Create;                // 닫힌 생성자형식 제너릭
  KeyValue3 := TPair<string, Intege>.Create; // 열린 생성자형식 제너릭

  KeyValue1.Key := '사원번호';
  KeyValue1.Value := 123456;
  KeyValue2.Key := '사원번호';
  KeyValue3.Key := '사원번호';
  // 만약? Value 가 Integer에서 string으로 변경된다면? TClassicSSPaire 클래스를 새로 생성해야 함

  KeyValue1.Free;
  KeyValue2.Free;
  KeyValue3.Free;

  // 중략
  for I := 0 to ListUser1.Count - 1 do
  begin
    Obj := ListUser1[I];
    User := TUserData(Obj);

    Log(User.ToString);
  end;

  for User in ListUser2 do
    Log(User.ToString);
//    ListUser2.Items[0].ToString
end;

더 알아보기


❑ 익명 메소드(Anonymous Method)

메소드(procedure, function)를 변수와 파라메터 형태로 사용할 수 있는 문법입니다.


아래 예제는 3초 후에 메시지를 표시하는 기능을 익명 메소드를 통해 구현했습니다. 익명 메소드를 사용하면 원하는 로직을 변수에 저장 후 원하는 시점에 호출하는 방식등으로 사용할 수 있습니다.

// 지정된 시간 이후에 파라메터의 메소드를 실행
procedure DelayProc(ADelay: Integer; AProc: TProc);
begin
  Sleep(ADelay);
  AProc;
end;

var
  Noti: TProc;
  StrToIntFunc: TFunc<string, Integer>;
begin
  DelayProc(3000, procedure
    begin
      ShowMessage('Delay Message');
    end);

  Noti := procedure
      begin
        ShowMessage('Anonymous Method');
      end;
  Noti;

  StrToIntFunc := function(AStr: string): Integer
    begin
      Result := StrToIntDef(AStr, 0);
    end;
  ShowMessage(StrToIntFunc('100').ToString);
end;

더 알아보기


문법을 익힐 수 있는 도서

❑ 온라인 문서

엠바카데로 개발툴 온라인 도움말


❑ 도서

관련글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Delphi/C++Builder

데브기어에서 제공하는 델파이 문법으로 문법을 다시 익혀보세요.

2014.11.03 14:02

10가지 기능을 아는 것보다 문법을 잘 아는 것이 더 효과적일 수 있습니다.

❑ 델파이 문법


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Delphi/C++Builder

VCL 스타일 커스터마이징 하는 방법

2014.10.29 13:29

VCL 스타일을 이용하면 VCL 어플리케이션 외관을 멋진 UI로 일관되게 탈바꿈 할 수 있습니다.


VCL 스타일은 프로젝트 옵션(Project > Options > Application > Appearance)을 이용해 사용할 수 있습니다.

기본으로 제공되는 약 50여개의 VCL 스타일을 활용하면 멋진 VCL 애플리케이션의 외관을 만들 수 있습니다.


만약, 여러분만의 VCL 스타일이 필요하거나 부분적으로 스타일을 변경하고 싶은 경우 아래의 글을 참고해 여러분만의 VCL 스타일을 만들거나, VCL 스타일을 커스터마이징해서 사용하시기 바랍니다.



관련글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Delphi/C++Builder

RAD Studio 데모코드 최신버전 다운로드(SVN 이용)

2014.09.04 14:03

RAD Studio의 데모 소스코드는 RAD Studio 설치 시 함께 제공됩니다.

(XE7 기준: C:\Users\Public\Documents\Studio\15.0\Samples.)


RAD Studio 데모 소스코드가 소스포지를 통해서도 제공되고 있는 것을 모르시는 분들도 많습니다.

소스포지의 경우 추가되거나 수정된 최신버전이라는 장점이 있습니다.

RAD Studio 데모소스

아래 링크에서 소스코드 다운로드 링크를 얻을 수 있습니다.

    사용방법

     RAD Studio의 메인메뉴 중 File > Open From Version Control 메뉴를 통해 다운로드 받을 수 있습니다.


    XE7 이후의 버전에서는 subversion으로 선택합니다.

    (XE7에서는 최근 유행하는 버전관리 시스템인 Git이 추가되었습니다.)

    • 소스포지에서 제공하는 SVN 주소 중 "svn://" 부터 다음 공백 전 까지("/trunk") 복사해 URL Repository에 입력합니다.
    • 저장할 경로를 Destination에 선택하고 OK 버튼을 누릅니다.
    • 다운로드 과정이 표시되고, 다양한 프로젝트 파일이 표시되면 프로젝트를 선택 해 데모소스를 확인합니다.

    이전버전 데모 소스코드 다운로드(XE 이후)

    버전 관리 툴 이어서 소스코드는 가지치기(branch) 되어있습니다. 아래 경로에서 원하는 버전으로 이동 후 위의 과정을 반복합니다.


    저작자 표시 비영리 동일 조건 변경 허락
    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    험프리.김현수 험프리.김현수 Delphi/C++Builder Rad Studio, 데모 소스코드, 데모소스

    가끔 사용해 헛갈리는 DisplayFormat(FormatFloat)

    2014.08.27 17:15

    숫자에 콤마를 포함하는 등으로 문자열 변환을 많이하는데요. 

    포맷이 어떤건지 매번 헛갈립니다. 이번 기회에 확실히 익혀 두시기 바랍니다.


      ShowMessage('##### : '+FormatFloat('#####', float));
      ShowMessage('00000 : '+FormatFloat('00000', float));
      ShowMessage('0     : '+FormatFloat('0'    , float));
      ShowMessage('#,##0 : '+FormatFloat('#,##0', float));
      ShowMessage(',0    : '+FormatFloat(',0'   , float));




    저작자 표시 비영리 동일 조건 변경 허락
    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    험프리.김현수 험프리.김현수 Delphi/C++Builder

    System.Zip.TZipFile - 기본 압축라이브러리

    2014.08.18 15:12

    델파이와 C++빌더에서 기본으로 압축 라이브러리가 제공됩니다.(XE2 버전부터 제공)

    저도 언뜻 들어봤는데 오늘 문의가 있어 정식으로 확인해봤습니다.



    프로퍼티를 보면 아주 간소합니다.

    가장 기본적인 압축 및 해제가 필요한 경우 가볍게 사용하면 좋겠습니다.


  • System.Zip.TZipFile.Open
  • System.Zip.TZipFile.Close
  • System.Zip.TZipFile.Read
  • System.Zip.TZipFile.Add
  • System.Zip.TZipFile.Extract
  • System.Zip.TZipFile.ExtractAll
  • System.Zip.TZipFile.FileName
  • System.Zip.TZipFile.FileInfo
  • System.Zip.TZipFile.FileComment
  • System.Zip.TZipFile.ExtractZipFile
  • System.Zip.EZipException

  • 물론 막강한 기능이 필요하신 경우 아래의 서드파티 컴포넌트를 이용할 수도 있습니다.
    (목록은 추천 순이 아닙니다. 몇가지 압축관련 서드파티 컴포넌트 사이트 나열한 것입니다. 직접 검토해 보고 결정하시기 바랍니다.)


    양영필님이 작성한 내용도 첨부합니다.(샘플 소스 포함)


    저작자 표시 비영리 동일 조건 변경 허락
    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    험프리.김현수 험프리.김현수 Delphi/C++Builder

    델파이 실행 시 EditorLineEnds.ttr 파일을 만들 수 없다는 오류 메시지 원인과 해결책

    2014.08.14 18:02

    오늘 몇분의 델파이 개발자분들에게 윈도우 보안 업데이트 이후 

    델파이와 C++ 빌더 실행 시 아래와 같은 메시지가 나오고 실행되지 않는 현상이 발생했습니다.

    (델파이 2006, C++빌더 2009 버전을 사용 중인 개발자 분들입니다.)


    오늘 인터넷 뉴스를 확인하니 이번 보안 업데이트에서 일부 PC에서 부팅이 되지 않는 등의 문제가 발생되었습니다.

    MS 측에서도 문제가된 PC에 보안업데이트 삭제를 권고했으나, 공개적으로 알리지는 않고 있습니다.


    현상

    • 델파이, C++빌더 실행을 2회 이상 한 경우 아래 메시지 발생


    원인


    EditorLineEnds.ttr(True Type Font: 폰트파일)을 일부 버전의 델파이(C++ 빌더) 구동 시 내부적으로 사용


    2014년 8월 12일 발생 윈도우 보안업데이트(MS14-045)에 다음 내용이 포함

    • 윈도우 기본 폰트경로 이외에 설치된 폰트파일 수정 제한


    결론


    이번 업데이트의 경우 윈도우 보안정책이 변경되며 발생한 이슈로 지원기간이 지났지만 엠바카데로가 패치를 제공해 주길 바래봅니다.^^

    해당 이슈 발생확인 버전은 다음과 같습니다.

    • Delph 2006
    • Delphi 2007
    • C++빌더 2009
    • C++빌더 2010


    보안 업데이트 시 참고하시기 바랍니다.


    PS - 다행인 것은 IDE 최초 실행시에는 오류가 발생하지 않습니다.(보안 업데이트 하신 분들은 주의하시기 바랍니다.)


      추가

      김성동님께서 IDE Fix Pack 설치 후 증상이 발생하지 않는다는 정보를 주셨습니다.

      장성호님께서 사무실 직원들의 경우 해당 보안 업데이트 삭제 시 문제가 해결되었다는 의견 주셨습니다.(단, 본인은 해결되지 않은 것으로 보아 완벽한 해결책은 아닌 것 같습니다.)


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder

      1. Blog Icon
        아직도 delphi 쓰는 사람

        임시변통
        %temp%\EditorLineEnds.ttr 파일의 이를을 바꿔주면 일단은 IDE가 돌아 감.
        1. 다음 번 컴퓨터 부팅 후 이름을 바꾸었던 %temp%의 파일들을 삭제하시면 됩니다.
        아래 사이트에 그렇게 해주는 배치파일 스크립트 있네요.
        http://www.danielmagin.de/blog/index.php/2014/08/windows-update-disable-delphi-2007-2010/
        2. IDEFixPack 써보기
        저는 아직 써보지 않았지만...
        http://andy.jgknet.de/blog/2014/08/editorlineends-ttr-idefixpack-users-are-not-affected/

      2. 소중한 정보 감사합니다^^

      3. Blog Icon
        미스터몽키

        윈도우7 32비트 델파이2007사용중 며칠전 간만에 윈도우업데이트 했더니 위의 문제발생하여 업데이트 내역보니 보안업데이트(KB2982791) 이 없는데 발생했습니다. 그래서 확인해 보니
        http://stackoverflow.com/questions/25295980/delphi-2006-2010-error-cannot-create-file-c-users-admin-appdata-local-temp-ed
        보안업데이트( KB2993651) 로 바뀌었다는 내용이 댓글에 있네요
        그래서 KB2993651 을 삭제했지만 그래도 해결되지 않았습니다.
        결국 http://andy.jgknet.de/blog/ide-tools/ide-fix-pack/ 의
        IDE Fix Pack 2007 4.4 (Win8 is not supported) 설치로 해결했습니다.

      4. 그래도 IDE Fix pack 설치해서 해결되셨다니 다행입니다^^

      RAD Studio XE6 TChart 패치

      2014.07.30 18:05

      RAD Studio XE6에서 포함된 TChart에서 Series를 추가하거나 선택 시 Property를 찾지 못하는 문제가 있어 패치가 필요합니다.



      다음 링크를 통해 패치파일 다운로드 후 설치하시기 바랍니다.

      • http://www.teechart.net/files/vcl/public/TeeChartLite/TeeChartLite2014RADXE6.EXE


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder Rad Studio, TChart

      델파이(그리고 C++빌더) IDE에서 Github 사용하기

      2014.07.30 17:30

      최근 버전 관리 시스템으로 Git을 사용하는 프로젝트가 상당히 많아졌습니다.


      델파이 오픈소스 프로젝트 역시 Github에 많이 올라오는데요. 델파이에서 가장 쉽게 Github의 소스코드를 사용하는 방법을 공유합니다.(소스코드 많이 오픈해 주세요.)

      델파이에서 Github 소스코드 사용

      델파이 IDE에는 서브버전(SVN) 클라이언트가 기본적으로 포함되어 있습니다.

      그리고 Github에서도 서브버전 인터페이스를 제공하고 있습니다. 

      이 2가지를 SVN 인터페이스르 연결하면 델파이 IDE 상에서 Github의 소스코드를 읽고 쓸 수 있습니다.

      ❑ Subversion Checkout URL 복사

      먼저 Github에서 참고할 프로젝트 페이지로 이동합니다.(저는 코드아카데미 데모 프로젝트 페이지에서 안내해 드립니다.)


      위 화면의 오른쪽 하단을 보시면 푸른색 강조와 붉은색 강조한 영역이 있습니다.


      먼저 푸른색 강조한 부분은 Zip파일로 프로젝트 소스코드를 다운로드 하는 방법입니다. 제일 확실하지만 다운로드가 전부입니다. 단순한 소스코드만 참고하실 때 이방법을 사용합니다.


      붉은색 강조한 부분을 보시면 아래에 Subversion 링크가 있고 해당 링크를 누르면 Subversion checkout URL이 표시됩니다.

      이 URL을 복사(우측 클립보드 버튼 클릭)합니다. 복사한 링크는 다음과 같습니다.

      ❑ Github(SVN) 프로젝트 열기

      델파이를 실행하고 File > Open From Version Control 메뉴를 선택합니다.


      다음과 같은 Checkout 창이 표시되고 아래 정보를 입력하고 OK 버튼을 누릅니다.

      • URL of Repository:
        • Github에서 복사한 Subversion Check URL을 입력합니다.
      • Destination: 
        • 프로젝트 파일이 저장될 경로를 입력(선택) 합니다.


      OK 버튼을 누르면 뒤의 그림과 같이 소스코드를 다운로드 받는 목록이 나오고 다운로드가 완료되면 앞의 화면과 같이 다운로드 받은 파일 중 오픈할 프로젝트(또는 프로젝트 그룹) 목록이 표시됩니다.(코드아카데미에는 현재 1개의 프로젝트만 있어 목록이 하나만 나옵니다.)

      선택 후 OK 버튼을 누르면 프로젝트가 오픈됩니다. 이후 과정은 다운로드 받은 소스코드로 로컬에서 진행됩니다.


      ❑ Github(SVN)에 수정내용 적용하기

      (이 내용은 본인이 수정권한이 있는 프로젝트에 한해 가능합니다. 여러분들이 앞의 과정을 통해 다운로드 받은 프로젝트에서는 아래 과정을 따라할 수 없으니 여러분께서 Github 게정을 직접 만들고 프로젝트 생성 하셔야 수정내용을 적용할 수 있습니다.)


      수정내용을 Github에 적용하는 기능도 서브버전의 기능을 이용합니다.

      저는 내려받은 소스코드에 Github URL을 안내하는 주석을 추가(변경)하고 Github에 적용(Commit)합니다.

      Commit 기능은 다음 방법을 통해 이용할 수 있습니다.

      • 프로젝트 매니저에서 우측 마우스 팝업 메뉴의 Subversion > Commit
      • 코드 에디터에서 우측 마우스를 누르고 Version Control > Subversion > Commit


      Commit 메뉴를 선택하면 아래와 같이 Commit 윈도우가 표시되고, 변경된(Modified) 파일 목록이 표시됩니다.

      • 저장소에 적용할 항목을 선택하고 
      • 수정한 내용을 Comment 입력란에 입력하고
      • Commit 버튼을 눌러 적용합니다.
      • 계정 입력을 위한 창이 뜨면 다음을 입력합니다.(세션이 유지되기 때문에 처음만 인증하면 매번 입력하지 않아도 됩니다.)
        • Username : Github 계정(이메일 주소)
        • Password : Github 비밀번호


      앞에서 적용한 수정내요이 Github에 적용되는 것을 확인할 수 있습니다.


      이상 간단한 Github 사용팁이었습니다.



      참조


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder github, Subversion, svn, 델파이

      1. 오, 저에게 상당히 유용한 정보입니다. 이 방법대로 한 번 테스트해 보도록 하겠습니다.
        그리고, 늘 좋은 정보 공유 감사드립니다. ^^

      2. 네^^ 간단하지만 유용한 내용입니다. 도움이 되셨다니 저도 기분이 좋습니다.

      OXml(XML 라이브러리) 소개

      2014.07.22 17:05

      파스칼에서 사용할 수 있는 XML 라이브러리를 하나 소개합니다.

      OXml -XML 라이브러리

      OXml은 델파이와 C++빌더, 라자루스, FPC에서 사용할 수 있는 XML 구문분석 외부 라이브러리입니다.
      제품 소개에는 다음과 같은 타이틀이 눈에 띄네요. 자신감이 넘칩니다.
      OXml - The next generation XML library for Pascal
      OXml - 파스칼의 차세대 XML 라이브러리

      아주 간단한 기능만 소개하면
      • Win32, Win64, OSX, iOS, Android를 모두 지원
      • Delphi 4 ~ XE6 버전 지원(C++빌더도 동일한 버전이나 테스트는 하지 않음)
      • 프레임워크(VCL, FMX, LCL)에 종속적이지 않은 방식으로 구현
      • Delphi 2007 이전의 버전에서도 유니코드를 지원
      제품 웹사이트에 보면 자세한 소개와 샘플코드, 다운로드 안내등 다양한 정보가 있습니다.
      • http://www.kluug.net/oxml.php
      그리고 제일 중요한 라이선스는 CPAL(Common Public Attribution License) 라이선스입니다.(C팔이라고 읽으면 안됩니다. 알파벳으로 읽으세요^^) 즉, 사용 시 저작자 정보를 표시해야 하는 라이선스 입니다.

      마지막으로 
      제작사에서 제공한 성능표는 대단하네요.
      (저는 개인적으로 테스트하지 않았습니다.)

      먼저 일기에 대한 성능입니다.


      다음 쓰기에 대한 성능입니다.


      XML 데이터 처리 시 검토해 보시면 좋겠습니다.


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder Delphi, OXml, xml

      델파이를 이용해 구글크롬캐스트와 연결

      2014.07.22 11:43

      델파이를 이용해 구글 크롬캐스트에 연결해 유투브의 비디오를 TV에서 비디오를 재생하는 예제와 방법을 소개하는 아주 재미있는 글이 있어 포스팅합니다.


      최근 구글 크롬캐스트가 스마트폰 미러링 기능을 지원하며 다시한번 화재가 되고 있습니다.


      델파이에서는 구글에서 공개한 Google Cast API를 통해 일부 인디(Indy) 컴포넌트와  RESTClient 컴포넌트를 통해 연결합니다.


      델파이와 크롬캐스트를 연결하는 구성은 간단합니다.

      1. 구글 크롬캐스트 발견(IdUDPClient와 IdHttp 컴포넌트가 사용됩니다.)
      2. 유투브앱을 실행하고 비디오 시작(RESTClient와 IdHttp 콤퍼넌트가 사용됩니다.)




      구글 크롬캐스트와 델파이를 연결하는 자세한 내용과 소스코드는 해당 블로그(http://fixedbycode.blogspot.dk/)에 방문하셔서 확인하시기 바랍니다.


      구글 크롬캐스트란?

      크롬캐스트(Chromecast)는 구글에서 만든 멀티미디어 스트리밍 어댑터이다. 이 장치는 2 인치(5.1 cm) 동글이며 HDTV의 HDMI 포트에 꽂아 오디오나 비디오를 와이파이를 통해 수신해 TV에서 스트리밍 재생한다. 크롬캐스트는 HDMI 1.4+ 포트와 USB 포트, 전원 어뎁터로부터 전원을 공급받으며 구글 크롬 OS의 심플 버전을 탑재하고 있다.

      위키백과 참조




      참고글


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder 구글 크롬캐스트, 구글캐스트, 델파이

      TFileStream 기반 파일진행 상황을 보여주기

      2014.07.14 09:27

      오랫만에 박지훈.임프님의 기술 글을 올리셨네요^^ 페이스북으로 확인하고 포스팅합니다.


      이번글에서는 델파이, C++빌더 개발자들에게 아주 친숙한 TStream 중 TFileStream에 진행률 이벤트를 추가하고 사용하는 방법을 안내합니다.



      직접 방문하셔서 확인해 보세요.

      원글


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder C++빌더, Delphi, TFileStream

      인터베이스 서버(InterBase Server)에 접속이 되지 않는 경우 대처사항

      2014.07.10 12:52

      RAD Studio 설치 시 함께 설치되는 인터베이스 서버와 연결 할 때 간혼 다음과 같은 오류가 발생하는 경우가 있습니다.

      그에 따른 대처사항입니다.



      Unavailable database.


      Unable to complete network request to host "localhost:3050". Failed to establish a connection.

      대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다.



      1, 인텁베이스 서버 구동여부 확인 및 구동

       인터베이스 매니저(시작 > Embarcadero Interbase XE3 > InterBase Servr Manager)로 시작


       


      2, 데이터베이스 연결 시 IP / Port로 연결

      여러버전의 델파이를 설치한 경우 매번 Interbase를 설치하게되면 기본 포트번호로 접속이 되지 않는 경우가 있습니다.

      해당경우에는 다음과 같이 TCP/IP로 접속할 수 있습니다.



      • 기본으로 설정된 값은 Protocol이 Local Server는 공백으로 되어 있습니다.

      • Protocol을 TCPIP로 설정하면 localhost/gds_db 형태로 IP(localhost)/포트(gds_db)로 슬래쉬로 구분해 지정할 수 있습니다.

      • gds_db는 인터베이스 매니저의 타이틀에 표시된 내용을 참고하시면 됩니다.(간혹 ibxe3로 구동되기도 합니다.)


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder appmethod, C++Builder, Delphi, IBLite, Interbase, Rad Studio

      RAD Studio IDE(통합개발환경) 사용법

      2014.07.10 09:13

      데브기어 테크사이트(tech.devgear.co.kr)에 RAD Studio 통합개발환경을 설명하는 아주 좋은 문서가 추가되었습니다.

      한번 훓어보시고 평소 사용하지 않았던 기능도 숙지하시면 개발이 더 편하고 재미있어 질것입니다.


      참고



      그리고, 이내용은 데이비드아이(David I)가 쓴 "윈도우와 맥개발을 위한 파이어몽키 코스북"의 일부입니다.

      책의 전문을 PDF로 받으시려면 다음 링크를 통해 다운로드하세요.


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder IDE, Rad Studio

      Delphi, C++Builder 64bit 실행 시 "Unable to ..." 오류 대응방법

      2014.07.08 22:10

      최근 64bit용 어플리케이션 개발이 잦아지고 있습니다.


      델파이와 C++빌더에서 64비트 개발 시 "Unable to create process." 오류가 발생해 정보를 찾다가 좋은 정보가 있어 공유합니다.



      원글 - http://jsf3rd.blog.me/202981750

      [색즉시공 공즉사색] 딸기(jsf3rd)님 블로그입니다. 좋은 정보가 아주 많습니다.



      1번 오류 - Unable to scan program's header.

       

      2번 오류 - Unable to create process.

       

      ------------------------------------------------------ 

       

      델파이 버전은 XE5 Update2 입니다.

       

      위 두 오류는 델파이 버전에 관계없이 종종 나오는듯 하더군요....

       

      하여튼, 델파이에서 32bit 컴파일 및 디버깅은 잘 되는데...

       

      Target Platform을 64bit로 변경하고 디버깅 또는 실행을 했을때 1번 또는 2번 오류가 발생할 경우 해결책입니다.

       

       

       

      1번 오류는 매우 간단합니다.

       

      exe가 생성되는 경로에 한글과 같은 유니코드가 없어야 합니다. 쉽게 말해서 프로젝트 경로에 한글을 사용하지 마십시오.

       

       

       

      문제는 2번 오류 입니다. 

       

      좀 복잡하구요. 구글검색을 해보면 여러 의견이있는데,

       

      정리해보면...

       

      - 델파이를 관리자 권한으로 실행

      - 윈도우 방화벽 종료

      - 백신 프로그램 종료

      - 인터넷 보안 프로그램 종료

      - Option - Application - runtime theme 설정 해제

       

      등등 입니다.

       

      이것저것 다 해봤는데.... 저의 경우에는 인터넷 보안 프로그램 때문이었습니다. 

       

      그 놈의 이름은 Image Safer 입니다.

      (MarkAny라는 회사의 화면보안 솔루션 - http://www.markany.com/wp/?page_id=116 )

       

      작업 관리자에...

       

      ImageSAFERStart_X64.exe

      ImageSAFERStart_X86.exe

      ImageSAFERSvc.exe

       

      이런 놈들이 떠있다면 ImageSafer가 설치 된것입니다. 일단 깔리면 서비스로 동작합니다. ㅡㅡ^

       

      이런경우 2번 오류로 인해 델파이에서 64bit로 디버깅 및 실행이 불가 합니다.

       

      삭제 방법은 관리 - 서비스에서 [Image Protect Service] 를 찾아 종료 하시고 

       

      아래 링크를 참고 하십시오.

      -----------------------------------------------------------------------------

      http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=101622

       

      커맨드 창에서 실행

      %windir%\imagesafersvc.exe -remove

       

      바로 리부팅 후 관리자 권한으로 커맨드 창 실행

      del %windir%\system32\imagesafer*

      -----------------------------------------------------------------------------

       

      결국 2번 오류는 델파이 자체 설정 보다는 보안관련 외부 프로그램의 영향을 받는것 같습니다.


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder

      FastReport 4 VCL(Embarcadero Edition) 설치 오류 우회방법

      2014.07.08 22:00

      RAD Studio XE6 구매시 함께 제공되는 FastReport 4 VCL 버전이 한국어 운영체제에서 설치할 경우 중간에 글자가 깨지는 오류 메시지가 나오며 설치가 되지 않는 이슈가 발생했습니다.


      패스트 레포트사에 요청해 다음버전에서 패치를 약속 받았지만, 그 이전에 사용해야 하시는 분들을 위해 파이어몽키 네이버 까페에 올라온 글을 안내해 드립니다.



      이하 카페의 글입니다. 방명록에 방문하셔서 직접 알려주신 가시님께 감사인사 드립니다.



      FastReport VCL 4 버젼 설치시 Fontpack 하면서 에러나는 설치 에러가 있는데

      이전 버젼에서는 설치가 잘 되었으나 최근에 수정되면서 설치가 안되는 현상입니다.

       

      이것관련으로 데브기어 기술지원 게시판에도 이 오류 관련 질문이 올라왔으나

      답변이 없고 해서 우회하는 방법 알려드립니다. 

      에러는 아래와 같은 화면이 뜨면서 프로그램이 설치가 안됩니다.

       



       

      우회방법은 아래와 같습니다.

      1) 윈도우즈 7 기준으로 설명하며 제어판 - 국가 및 언어 - 관리자 옵션 탭을 선택합니다.

      2) "유니코드를 지원하지 않는 프로그램용 언어"를 선택하여 "한국어(대한민국"

          "영어(미국)"으로 변경하고 윈도우즈를 다시 재시작합니다. 반드시 윈도우즈를

          재시작해야합니다



       

      3) 다시 FastReport VCL를 설치하면 에러가 발생하지 않고 정상 설치가 됩니다.

      4) Fastreport  설치 완료하면 다시 제어판 - 국가 및 언어 - 관리자 옵션 탭에서

         "유니코드를 지원하지 않는 프로그램용 언어"의 "영어(미국)"을 "한국어(대한민국)"으로

         원상 복귀하고 윈도우즈를 다시 재시작하면 끝나요.

       

      FastReport에서 시스템로켈의 한국어를 제대로 인식하지 못하는거 같네요.

      일본어하고 중국어는 정상적으로 설치해주는데요 ^^

      이상... Fastreport Vcl 4 설치 오류와 관련으로 우회방법이었습니다.

      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder FastReport VCL

      JSON to Object 한줄이면 됩니다.

      2014.06.16 09:26

      신입때 잘몰라 헤메고 있으면, 연구소장님이 한마디 하셨어요. 이렇게 저렇게 한줄이면 되겠네~

      그때는 참 야속했습니다. -_-);


      근데 JSON을 Object(객체)로 바꾸는 작업은 정말 한줄이면 되네요.

      (파싱하는 반복작업을 많이 줄이고, 자동화하는데 참고하면 좋을 것 같습니다.)

      uses REST.JSON; // Also new System.JSON
      
      procedure TForm1.Button1Click(Sender: TObject);
      var
        Foo: TFoo;
      begin
        Foo := TFoo.Create;
        try
          Foo.Foo := 'Hello World';
          Foo.Fee := 42;
          Memo1.Lines.Text := TJson.ObjectToJsonString(Foo);
        finally
          Foo.Free;
        end;
        Foo := TJson.JsonToObject(Memo1.Lines.Text);
        try
          Foo.Fee := 100;
          Memo1.Lines.Add(TJson.ObjectToJsonString(Foo));
        finally
          Foo.Free;
        end;
      end;
      
      


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder JSON to Object

      델파이 IDE 상에서 Github 소스 바로사용하기

      2014.06.05 09:41

      최근 소스관리 시스템으로 Github가 많이 사용되고 있습니다. 델파이 오픈소스도 Github를 많이 이용하는데요.

      git client 소프트웨어를 이용하는 방식과 ZIP 파일 다운로드 방식(우측하단 Download ZIP 버튼클릭)으로 많이 사용하셨을 겁니다.


      Jim McKeeth가 델파이 IDE 상에서 Github 소스코드를 사용할 수 있는 유용한 팀을 공개하여 소개해드립니다.

      Github에서 다양한 인터페이스를 제공하는데 그중 Subversion 인터페이스를 이용해 IDE에서 사용하는 방식입니다.




      간단히 설명해 드리면

      1. Checkout URL을 Subversion으로 변경

      2. Subversion URL로 델파이 IDE에서 서브버전으로 사용


      RAD Studio IDE 상에서 서브버전 사용하는 방법은 아래의 문서를 참고하세요.


      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder C++빌더, Delphi, github, IIDE, Subversion, svn

      RAD Studio IDE의 소스코드 창과 폼 디자이너창 분리하기

      2014.05.13 15:36

      Delphi 7등과 같이 소스창과 폼디자이너창을 분리하는 방법입니다.


      1, Classic Undocked로 Docking 분리


      2, Tools > Options > Envrionment > VCL Designer 선택 후 Embedded designer 선택해제

      (만약, 해당 메뉴가 없을 경우 레지스트리 변경 : 최신버전에서 사라짐)

      • 레지스트리 이용하여 설정
        • HKEY_CURRENT_USER\Software\Embarcadero\BDS\14.0\Form Design - 14.0은 RAD Studio 버전
        • Embedded Designer - False로 변경
      3, IDE 재구동 




      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder embedded designer, Rad Studio

      RAD Studio 64bit 디버깅 시 "unable to create process" 오류 메시지가 나오는 경우 대처방안

      2014.05.07 14:55


      RAD Studio(Delphi, C++Builder)에서 64bit로 Target platform을 잡고 디버깅(F9) 시 일부 사용자에게 위와 같은 메시지가 표시되면 디버깅모드로 진입이 되지 않는 경우가 발생합니다.(Run without debugging은 정상 동작)


      위의 오류가 발생하는 경우 대처방안입니다.


      1. 32 bit OS가 설치된 윈도우로 64bit 타겟 실행 시
      2. 관리자 권한으로 RAD Studio 실행
        • 일부 권한이 없는 디렉토리에 실행파일을 생성하지 못할 수 있습니다.
      3. Embarcadero Debugger Kernel을 윈도우 방화벽에 예외등록
        • Debugger kernel 프로그램명 dbkw64_nn_0.exe(nn 버전)
        • RAD Studio 실행파일 경로(e.g. c:\Program files(x86)\Embarcadero\studio\14.0\bin\)에서 dbkw64로 시작되는 파일을 방화벽에 추가 후 시도 바랍니다.(64의 경우 기존의 컴파일러와 다른 LLVM 기반으로 컴파일됩니다.)



      혹시 이슈가 발생한다면 위의 내용으로 조치해보시고 결과 답변 주시면 감사하겠습니다.^^



      저작자 표시 비영리 동일 조건 변경 허락
      신고
      크리에이티브 커먼즈 라이선스
      Creative Commons License

      험프리.김현수 험프리.김현수 Delphi/C++Builder dbkw64, Debugger kernel, Rad Studio