|
임펠리테리입니다.
일단 문자 그대로 빌더 소스로 바꾸었습니다.
void __fastcall DrawControl(TControl *AControl, TTreeNodeShape AShape)
{
TPoint P;
AControl->Visible = AShape->Visible;
if(AControl->Visible)
{
P = Tree->Canvas->Calculate3DPosition(AShape.X0, AShape.Y0, 0);
AControl->Left = P.x;
AControl->Top = P.y;
}
}
그대로 안될 수도 있습니다.
TTreeNodeShape라는 타입이 있는데, 표준 타입이 아니라서 이게 포인터가 되어야 할지 아닐지를 알수가 없군요.
여기서 TTreeNodeShape를 일반 클래스로 간주하고 * 를 쓰지 않았는데, 만약 일반 클래스가 아니라 TPersistant 를 상속받는 객체라면 포인터로 처리해야 하구요.
그럼 이만..
이대현 님이 쓰신 글 :
: 아래의 델파이 함수를 C함수로 바꾸는 방법좀?
:
: Procedure DrawControl(AControl:TControl; AShape:TTreeNodeShape);
: var P:TPoint;
: begin
: AControl.Visible:=AShape.Visible;
: if AControl.Visible then
: begin
: With AShape do P:=Tree.Canvas.Calculate3DPosition(X0,Y0,0);
: AControl.Left:=P.x;
: AControl.Top:=P.y;
: end;
: end;
|