이인재 6월 16일, 2022에 포스트됨 공유하기 6월 16일, 2022에 포스트됨 Window VCL 프로그램에서 TImage 를 아래처럼 사용할때는 컴파일에러가 없는데 MULTI-Device 프로그램 에서 만들어 실행시키면 에러가 나오네요. 문제가 무었일까요? 그리고 해결방법은 무었일까요? 알려주시면 감사하겠습니다. procedure TForm1.FormCreate(Sender: TObject); begin with image1 do begin Canvas.Pen.Color := clRed; Canvas.Pen.Style := psDashDot; Canvas.MoveTo(0,0); Canvas.LineTo(400, 400); Canvas.MoveTo(400,0); Canvas.LineTo(0, 400); end; end; 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
1 c2design 6월 17일, 2022에 포스트됨 공유하기 6월 17일, 2022에 포스트됨 VCL에서 사용하는 컴포넌트는 FMX 에서 사용하는 컴포넌트와 이름이 같아도 메소드와 사용방법이 많이 다릅니다. VCL에서 많이 사용하였던 Canvas 방식의 드로잉은 제한적으로만 사용 되는데 그 이유는 FMX 에서는 모든 컴포넌트들이 부모-자식 형태의 구조로 레이어를 쌓아서 사용 할 수 있어 굳이 Canvas 방식의 드로잉이 필요가 없어졌습니다. 파워포인트나 포토샵 처럼 객체들을 레이어로 쌓아서 그리는 방식과 동일 합니다. 올려주신 소스 처럼 Image 위에 라인을 그리는 것이 목적이면 아래와 같이 TLine 을 Image 위에 올리면 되고 정해진 이미지라면 TLIne 사용 대신 다른 Image를 png 이미지(투명배경사용가능)로 기존 이미지위에 Child 객체로 올려도 됩니다. procedure TForm3.Button1Click(Sender: TObject); var myLine : TLine; begin myLine := TLine.Create( Image1 ); myLine.Parent := Image1; myLine.LineType := TLineType.Diagonal; myLine.Position.X := 0; myLine.Position.Y := 0; myLine.Size.Width := 400; myLine.Size.Height := 400; myLine.Stroke.Color := $FFFF0000; myLine.Stroke.Dash := TStrokeDash.DashDot; end; 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 이인재 6월 17일, 2022에 포스트됨 Author 공유하기 6월 17일, 2022에 포스트됨 FMX와 기존 VCL방식에서 변화때문에 이해가 안되었는데 알려주셔서 감사합니다. 델파이를 이해하는데 많은 도움이 되었습니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
질문
이인재
Window VCL 프로그램에서 TImage 를 아래처럼 사용할때는 컴파일에러가 없는데
MULTI-Device 프로그램 에서 만들어 실행시키면 에러가 나오네요. 문제가 무었일까요? 그리고 해결방법은 무었일까요?
알려주시면 감사하겠습니다.
procedure TForm1.FormCreate(Sender: TObject);
begin
with image1 do
begin
Canvas.Pen.Color := clRed;
Canvas.Pen.Style := psDashDot;
Canvas.MoveTo(0,0);
Canvas.LineTo(400, 400);
Canvas.MoveTo(400,0);
Canvas.LineTo(0, 400);
end;
end;
이 댓글 링크
다른 사이트에 공유하기
2 answers to this question
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.