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.유지보수성과 코드 재사용성을 향상시킴

'Delphi > 문법' 카테고리의 다른 글
Interface를 활용한 의존성 주입 구조 만들기 (0) | 2025.04.04 |
---|---|
Format 함수를 활용한 문자열 포맷팅 (0) | 2025.03.25 |
익명 메서드(Anonymous Method) 활용하기 (0) | 2025.03.20 |
상속이란? (0) | 2025.02.10 |
델파이 포인터 사용 팁 (0) | 2024.07.04 |
댓글