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
[4594] Re:임프님 이것좀 도와주세요~~델파이--->C++Builder
zoro [] 3500 읽음    2000-12-13 00:00
안녕하세요
컴파일 에러는 없어요...

써보시고 잘안되면 연락주셔요..

즐거운 하루 되십시요..

#include <Graphics.hpp>
#include <printers.hpp>

void PrintBmp(TRect ARect, Graphics::TBitmap *ABitmap)
{
  LPBITMAPINFO Info;
  DWORD InfoSize;
  LPVOID Image;
  DWORD ImageSize;
  HBITMAP Bits;
  DWORD DIBWidth, DIBHeight;

  Bits = ABitmap->Handle;
  GetDIBSizes(Bits, InfoSize, ImageSize);
  Info = (LPBITMAPINFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,     InfoSize);
  try
  {
    Image = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ImageSize);
    try
    {
      GetDIB( Bits, ABitmap->Palette, Info, Image);
      DIBWidth = Info->bmiHeader.biWidth;
      DIBHeight = Info->bmiHeader.biHeight;
      StretchDIBits(Printer()->Canvas->Handle,
                   ARect.Left, ARect.Top, ARect.Right, ARect.Bottom,
                        0, 0, DIBWidth, DIBHeight,
                        Image, Info, DIB_RGB_COLORS, SRCCOPY );
    }
    __finally
    {
      HeapFree(GetProcessHeap(), 0, Image);
    }
  }
  __finally
  {
    HeapFree(GetProcessHeap(), 0, Info);
  }
}



해당화 님이 쓰신 글 :
: 제가 이거 못하면 회사 짤립니다. 바로 짤려요~
: 델파이 실력이 워낙 짧아서 못바꾸는 부분이 넘 많습니다.
: 알려 주셨으면 합니다. 감솨합니다.
:
: procedure PrintBmp( ARect: TRect; ABitmap: TBitmap );
: var
:  Info: PBitmapInfo;
:  InfoSize: DWORD;
:  Image: Pointer;
:  ImageSize: DWORD;
:  Bits: HBITMAP;
:  DIBWidth, DIBHeight: Longint;
: begin
:  with Printer, Canvas do
:   begin
:     Bits := ABitmap.Handle;
:     GetDIBSizes( Bits, InfoSize, ImageSize );
:     Info := AllocMem( InfoSize );
:     try
:       Image := AllocMem( ImageSize );
:       try
:         GetDIB( Bits, ABitmap.Palette, Info^, Image^ );
:         with Info^.bmiHeader do
:          begin
:            DIBWidth := biWidth;
:            DIBHeight := biHeight;
:         end;
:         StretchDIBits( Printer.Canvas.Handle,
:                      ARect.Left, ARect.Top, ARect.Right, ARect.Bottom,
:                           0, 0, DIBWidth, DIBHeight,
:                           Image, Info^, DIB_RGB_COLORS, SRCCOPY );
:       finally
:         FreeMem( Image, ImageSize );
:       end;
:     finally
:       FreeMem( Info, InfoSize );
:     end;
:   end;
: end;
:
: u

+ -

관련 글 리스트
4593 임프님 이것좀 도와주세요~~델파이--->C++Builder 해당화 3098 2000/12/13
4594     Re:임프님 이것좀 도와주세요~~델파이--->C++Builder zoro 3500 2000/12/13
4600         크하하하 넘무나 감솨합니다. 고마워요~~ *^^* (내용무) 해당화 3110 2000/12/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.