아래의 함수는 DLL내에 포함되어 있는 함수입니다.
이 DLL에 폼도 하나 있고, 그 폼 위에는 image component도 하나 있습니다.
폼에다가 그림을 그리려고 하는데요..
폼 위의 canvas에 직접 그려도 봤고,
아니면 bitmap을 이용해서 image component에도 그려봤는데요..
두 경우 모두, 폼에 그림 그려진 게 보여지지 않습니다.. ㅠ.ㅠ
메인 프로그램에서는 단순히 test1을 호출하기만 하였거든요...
어디서 잘못되었는지 도저히 모르겠네요.. ㅠ.ㅠ
function test1() : integer;
var
Form : TDLLForm;
tbmp : TBitmap;
begin
Form := TDLLForm.Create(application);
Form.Canvas.Pen.Color := clRed;
Form.Canvas.Pen.Style := psDash;
Form.Canvas.MoveTo(20,20);
Form.Canvas.LineTo(120,120);
{
tbmp := TBitmap.Create;
tbmp.Canvas.Pen.Color := clRed;
tbmp.Canvas.Pen.Style := psDash;
tbmp.Canvas.MoveTo(120,120);
tbmp.Canvas.LineTo(220,220);
Form.Image1.Visible := True;
Form.Image1.Picture.Bitmap.FreeImage;
Form.Image1.Picture.Bitmap.Assign(tbmp);
tbmp.Free;
}
Form.Showmodal;
result:=1;
end;
폼에다 직접 그리실려면 폼의 OnPaint이벤트에서 그려주는 루틴을 작성하셔야 하지 폼이 갱신될때 그림이 보이구요...
이미지 컴포넌트 쓸때는 생성된 비트맵의 크기를 정해주지 않았네요...
tbmp := TBitmap.Create;
tbmp.Width := 300;
tbmp.Height := 300;
tbmp.Canvas.Pen.Color := clRed;
tbmp.Canvas.Pen.Style := psDash;
tbmp.Canvas.MoveTo(120,120);
tbmp.Canvas.LineTo(220,220);
Image1.Visible := True;
Image1.Picture.Assign(tbmp);
tbmp.Free;
^^ 항상 즐코하세요...