Q&A

  • TResourceStream 사용방법..?
TResourceStream사용방법좀 알려주세요...



리소스 파일 만드는 방법과 만들어진 리소스를

TResourceStream를 이용해 가져와서 프로그램에 반영하고 싶거든요....



특히, 메뉴, 비트맵, 아이콘등....



다국어 지원이나, 스킨 처리시 많이 사용되는것으로 알고 있습니다.



꼭 답 부탁 드립니다.

1  COMMENTS
  • Profile
    최용일 2001.02.07 18:44
    안녕하세요. 최용일입니다.



    흠~ TResourceStream을 사용할 필요는 없는거 같군요...



    이 클래스는 리소스를 메모리버퍼(바이트배열)로 제어할때 쓰이는 클래스로 일반적인



    프로그램을 제작할땐 쓸일이 없습니다.



    리소스 파일을 만들려면 먼저 리소스스크립트파일을 만들어야 합니다. 이건 델파이의



    pas소스와 같은거죠... 이 스크립트파일을 컴파일하면 리소스파일이 나옵니다.



    델파이시디에 보시면 리소스웍크샵이란파일이 있습니다. 16비트용 리소스파일을 만들어



    주긴하지만 여기에서 스크립트파일을 작성하시면 편할겁니다. 도움말에 보시면 스크립



    트 파일을 만드는법이 자세히 나와있습니다. 상수선언같은거는 C문법과 거의 같습니다.



    굉장히 문법이 쉬우므로 직접 읽어보시구요.



    여기에서 스크립트파일(*.rc)을 작성하시구요. 델파이의 Bin폴더에 보시면 brcc32.exe란



    리소스컴파일러가 있는데 이걸로 스크립트 파일을 컴파일 하시면 됩니다.



    brcc32.exe c:mypathmyrcfile.rc 이런식으로...



    그럼 myrcfile.res란 리소스파일이 나옵니다.



    그럼 델파이 프로젝트에 $R 지시자를 써서 링크해주면 됩니다.



    {$R myrcfile.res }<= 이렇게... 델파이 폼리소스도 이렇게 링크하죠... {R *.dfm}



    이젠 리소스를 지원하는 클래스나 Windows API를 이용해서 이 리소스를 사용하시면 됩니다.



    리소스를 지원하는 클래스(예 - TBitmap)를 보시면 LoadFromResource~ 라는 메소드가



    있습니다. 이 메소드를 이용하시면 쉽게 리소스를 로드 하실수 있구요...



    Windows API에 보시면 Load~로 시작하는 API함수(예 - LoadBitmap, LoadCursor)들이



    있습니다. 이걸 이용하셔도 됩니다....



    스트링리소스는 리소스파일없이 resourcestring절아래에다가 스트링을 써주셔두 되구요.



    다국어지원은 Resource DLL Wizard를 이용하시면 편하구요...



    메뉴, 비트맵, 아이콘, ... 외에 리소스형이 정해지지 않은 데이터들(레코드, 배열등)은



    리소스스크립트파일에 RCDATA절을 이용하셔서 작성하세요. LoadResource란 API함수를



    이용해서 불러오시구요...



    {$R MyResource.res}



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    // 리소스아이디가 1인 비트맵리소스를 불러온다...

    Image1.Picture.Bitmap.LoadFromResourceID(HInstance, 1);

    // 리소스이름이 'MyBitmap'인 비트맵리소스를 불러온다.

    Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'MyBitmap');



    // 리소스이름보다는 아이디를 이용하는게 훨씬 빠릅니다...

    end;



    ^^ 항상 즐코하세요...



    이흥주 wrote:

    > TResourceStream사용방법좀 알려주세요...

    >

    > 리소스 파일 만드는 방법과 만들어진 리소스를

    > TResourceStream를 이용해 가져와서 프로그램에 반영하고 싶거든요....

    >

    > 특히, 메뉴, 비트맵, 아이콘등....

    >

    > 다국어 지원이나, 스킨 처리시 많이 사용되는것으로 알고 있습니다.

    >

    > 꼭 답 부탁 드립니다.