C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[10232] Re:델파이 소스인데 빌더로 변환 부탁드려요.....
RedVirus [i13048] 886 읽음    2001-08-23 16:19
허접한 실력이지만 변환을 한번 해보았습니다.
프로젝트 파일을 같이 첨부합니다.


//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TMemo *Memo1;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
private:    // User declarations

        TWndMethod MemoOrgWndProc;
        Graphics::TBitmap *FBitmap;
        TCanvas *Canvas1;

public:        // User declarations

        __fastcall TForm1(TComponent* Owner);
        void __fastcall MemoNewWndProc(TMessage &msg);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif



//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Canvas1 = new Graphics::TCanvas;

   FBitmap = new Graphics::TBitmap;
   FBitmap->LoadFromFile("a.bmp");
   FBitmap->Dormant();

   MemoOrgWndProc = Memo1->WindowProc;
   Memo1->WindowProc = &MemoNewWndProc;

}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormDestroy(TObject *Sender)
{
   delete Canvas1;

   if ( FBitmap != NULL )
   {
     delete FBitmap;
     FBitmap = NULL;
   }

}
//---------------------------------------------------------------------------


void __fastcall TForm1::MemoNewWndProc(TMessage &msg)
{
    //TODO: Add your source code here
    bool PalFlag;
    HPALETTE OldPal;
    int Col, Row, X, Y;

    msg.Result = 0;
    switch(msg.Msg)
    {
      case WM_ERASEBKGND:
           if ( FBitmap != NULL )
           {
             PalFlag = (GetDeviceCaps((void *)msg.WParam, BITSPIXEL) <= 8) && (FBitmap->Palette != 0);
             Canvas1->Lock();

               Canvas1->Handle = (void *)msg.WParam;
                 OldPal = 0;
                 if ( PalFlag )
                 {
                   OldPal = SelectPalette( Canvas1->Handle, FBitmap->Palette, false );
                   RealizePalette( Canvas1->Handle );
                 }

                 Col = Memo1->ClientWidth / FBitmap->Width;
                 Row = Memo1->ClientHeight / FBitmap->Height;
                 for ( Y=0; Y<Row; Y++ )
                 {
                   for ( X=0; X<Col; X++ )
                   {
                     Canvas1->Draw( X * FBitmap->Width, Y * FBitmap->Height, FBitmap );
                     if ( PalFlag ) SelectPalette( Canvas1->Handle, OldPal, false );
                   }
                 }
               Canvas1->Handle = 0;
             Canvas1->Unlock();
           }
           break;

      case CN_CTLCOLOREDIT:
           MemoOrgWndProc( msg );
           SetBkMode( (void *)msg.WParam, TRANSPARENT );
           break;

      default:
           MemoOrgWndProc( msg );
           break;
    }

}
//---------------------------------------------------------------------------


+ -

관련 글 리스트
10223 델파이 소스인데 빌더로 변환 부탁드려요..... 홍조호 966 2001/08/23
10234     Re:델파이 소스인데 빌더로 변환 부탁드려요..... 경호 1007 2001/08/23
10232     Re:델파이 소스인데 빌더로 변환 부탁드려요..... RedVirus 886 2001/08/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.