Q&A

  • 화면출력에 대해 궁금합니다..
휴가는 모두 갔다 오셨는지요...
날씨가 또다시 좋아졌네요 비도 안오고...

질문 드리겠습니다.
1. 폼위에 그림파일을 가지고 와서 그것을 버턴을 눌러 바로 인쇄하고 싶구요..
2. 폼위에있는 그림을 인쇄할때 다른 그림파일을 가지고와서(좌표설정을 해주고)같이 인쇄하고싶습니다.
두번째도 가능한가요?
퀵리포트를 잘 몰라서 이렇게 할려고 합니다.
감사합니다.
1  COMMENTS
  • Profile
    홍성락 2002.08.10 03:09
    hsr/////////////////////////////////////////////////////
    원하시는건지는?  첨부파일을 참조해보세요.
    아래 6개 기능을 해보세요

    1.파일열기를 열어서 그림파일 읽어오기

    2.마우스로 원하는 위치와 크기만큼 드래그하기

    3.마우스 업에서 이미지 생성하기
    procedure TForm1.CreateMapImage;
    var
       TopX, TopY : integer;
       Hdc : THandle;
       BmpObj : TBitmap;
       Ox, Oy, Ow : Double;
    begin
       if Origin.x = LastDot.x then exit
       else if Origin.x < LastDot.x then TopX := Origin.x
       else TopX := LastDot.x;

       if Origin.y = LastDot.y then exit
       else if Origin.y < LastDot.y then TopY := Origin.y
       else TopY := LastDot.y;

       //이미지콤포 생성후 지도붙이기
       Img_MAP := TImage.Create(self);
       Img_MAP.Parent := Form1;
       Img_MAP.Top  := TopY;
       Img_MAP.Left := TopX;
       Img_MAP.Width  := ABS(Origin.x-LastDot.x);
       Img_MAP.Height := ABS(Origin.y-LastDot.y);
       Img_MAP.Stretch := True;
       Img_MAP.BringToFront;
       Img_MAP.Picture.LoadFromFile(file_Name);
       Img_MAP.OnMouseDown := OBJMouseDown;
       Img_MAP.PopupMenu := PopupMenu1;

    end;

    4. 위를 반복해서 여러개를 겹치게한후 팝업메뉴에서 프레임 순서를 바꾸던지 삭제
    //삭제
    procedure TForm1.N_DELClick(Sender: TObject);
    begin
        PopupMenu1.PopupComponent.Destroy;
        if (CurControl <> nil) then begin
          CurControl.Free;
          CurControl:= TControlSizer.CreateParented(handle);
        end;
    end;
    //맨 앞으로
    procedure TForm1.N_BringToFrontClick(Sender: TObject);
    begin
        TControl(PopupMenu1.PopupComponent).BringToFront;
    end;
    // 맨뒤로
    procedure TForm1.N_SendToBackClick(Sender: TObject);
    begin
        TControl(PopupMenu1.PopupComponent).SendToBack;
        Image_MAP.SendToBack;
    end;

    5.이미지하나씩 클릭해서 이동하거나 크기 재조정하기

    6.인쇄시 레포트사용하기
    procedure TForm1.Btn_PrintClick(Sender: TObject);
    var
       I: Integer;
       ChildControl: TControl;
       QR_Image : TQRImage;
    begin
        //쪽 설정
        //Application.CreateForm(TFReport, FReport);
        if not(assigned(FMapPrintReport)) then
           FMapPrintReport := TFMapPrintReport.Create(nil);

        FMapPrintReport.Page.Orientation := poLandscape;

        for I:= 0 to Form1.ControlCount -1 do begin
            ChildControl := Form1.Controls[I];
            if ChildControl is TImage then begin
               QR_Image := TQRImage.Create(self);
               //QR_Image.ParentReport := MapPrintReport;
               QR_Image.Parent := FMapPrintReport;
               QR_Image.Top := ChildControl.Top;
               QR_Image.Left := ChildControl.Left;
               QR_Image.Width := ChildControl.Width;
               QR_Image.Height := ChildControl.Height;
               QR_Image.Stretch := True;
               QR_Image.Picture := TImage(ChildControl).Picture;
            end;
        end;
        FMapPrintReport.PreviewModal;
        //FReport.Print;
        FMapPrintReport.CleanupInstance;
        FMapPrintReport.Free;
        FMapPrintReport := nil;
    end;