본문 바로가기
Delphi/문법

Record Helper를 사용한 레코드 기능 확장

by MonoSoft 2025. 3. 26.
728x90
반응형

Record Helper를 사용한 레코드 기능 확장

 

 

Delphi의 Record Helper 기능을 활용하면 
기존 레코드 타입에 메서드나 프로퍼티를 추가할 수 있어, 
객체지향 방식의 코드처럼 레코드를 활용할 수 있습니다. 
특히 수학, 날짜, 좌표 등 간단한 구조체 데이터에 
기능을 부여할 때 유용합니다.

type
  TPoint = record
    X, Y: Integer;
  end;

  TPointHelper = record helper for TPoint
    function ToString: string;
    function DistanceTo(const AOther: TPoint): Double;
  end;

{ TPointHelper }

function TPointHelper.ToString: string;
begin
  Result := Format('X: %d, Y: %d', [X, Y]);
end;

function TPointHelper.DistanceTo(const AOther: TPoint): Double;
begin
  Result := Sqrt(Sqr(X - AOther.X) + Sqr(Y - AOther.Y));
end;

procedure TestPointHelper;
var
  P1, P2: TPoint;
begin
  P1.X := 3;
  P1.Y := 4;
  P2.X := 0;
  P2.Y := 0;

  ShowMessage(P1.ToString);  // "X: 3, Y: 4"
  ShowMessage(Format('거리: %.2f', [P1.DistanceTo(P2)]));  // "거리: 5.00"
end;

1.record helper for ... 구문을 사용하여 기존 레코드에 메서드 추가 가능
2.구조체에 기능을 부여함으로써 객체처럼 다룰 수 있음
3.유지보수성과 코드 재사용성을 향상시킴

 

728x90
반응형

댓글