자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 초보적인 문의 드립니다.
2021.02.04 23:34
구글링 해도 비슷한 답이 나오지 않네요.
type
TKind = packed record
a: string;
b: integer;
end;
위 처럼 record type 선언을 하고 java 의 extends 처럼 하나의 record 로 만들고자 합니다.
type
TKindAll = packed reocrd
TKind;
c:integer;
d: string;
end;
이렇게 추가하는 방법이 있을까요?
사용시
KindAll.TKind.a 가 아닌 KindAll.a 와 같이 사용될 수 있으면 합니다.
댓글 4
-
김원경
2021.02.05 09:10
-
BD
2021.02.05 11:21
답변 감사합니다.
그럼
type
base_test = record
a: string;
b: string;
end;
위 base_test 가 하나이고 여러개의 다른 구조에서 연결해서 사용할려고 하면 위 설명처럼 sub 구조는 어렵다는 얘기인가요?
type
model1_test = record
base_test;
c: string;
type
model1_sub_test = record
a1: string;
b1: string;
end;
end;
type
model2_test = record
base_test;
d: string;
type
model2_sub_test = record
a2: string;
b2: string;
end;
end;
위 처럼 base_test 를 하나만 만들어서 model1_test.a , model2_test.a 이렇게 반복사용했으면 해서요.
-
김원경
2021.02.05 14:07
TEST = RECORD
A:STRING;
B:STRING;
END;
TEST1 = RECORD
T:TEST;
C:STRING;
D:STRING;
END;
TEST2 =RECORD
T2:TEST;
E:STRING;
END;
VAR
T:TEST2;
BEGIN
T.T2.A := 'AAA';
이렇게도 사용 가능합니다. 구조체에 구조체 포합됩니다.
-
BD
2021.02.05 14:49
제가 원한 답은 아닌듯해요.
말씀하신 구조에서 제가 원한건 T.A 되는 구조를 원한건데 위 내용으로 하면 무조건 TEST 가 다른 구조체에 포함되려면 T.TEST.A 이렇게 되어야 한다는 설명이신것 같아 보이네요.
Delphi 초보적인 문의 드립니다.
2021.02.04 23:34
구글링 해도 비슷한 답이 나오지 않네요.
type
TKind = packed record
a: string;
b: integer;
end;
위 처럼 record type 선언을 하고 java 의 extends 처럼 하나의 record 로 만들고자 합니다.
type
TKindAll = packed reocrd
TKind;
c:integer;
d: string;
end;
이렇게 추가하는 방법이 있을까요?
사용시
KindAll.TKind.a 가 아닌 KindAll.a 와 같이 사용될 수 있으면 합니다.
댓글 4
-
김원경
2021.02.05 09:10
-
BD
2021.02.05 11:21
답변 감사합니다.
그럼
type
base_test = record
a: string;
b: string;
end;
위 base_test 가 하나이고 여러개의 다른 구조에서 연결해서 사용할려고 하면 위 설명처럼 sub 구조는 어렵다는 얘기인가요?
type
model1_test = record
base_test;
c: string;
type
model1_sub_test = record
a1: string;
b1: string;
end;
end;
type
model2_test = record
base_test;
d: string;
type
model2_sub_test = record
a2: string;
b2: string;
end;
end;
위 처럼 base_test 를 하나만 만들어서 model1_test.a , model2_test.a 이렇게 반복사용했으면 해서요.
-
김원경
2021.02.05 14:07
TEST = RECORD
A:STRING;
B:STRING;
END;
TEST1 = RECORD
T:TEST;
C:STRING;
D:STRING;
END;
TEST2 =RECORD
T2:TEST;
E:STRING;
END;
VAR
T:TEST2;
BEGIN
T.T2.A := 'AAA';
이렇게도 사용 가능합니다. 구조체에 구조체 포합됩니다.
-
BD
2021.02.05 14:49
제가 원한 답은 아닌듯해요.
말씀하신 구조에서 제가 원한건 T.A 되는 구조를 원한건데 위 내용으로 하면 무조건 TEST 가 다른 구조체에 포함되려면 T.TEST.A 이렇게 되어야 한다는 설명이신것 같아 보이네요.
다음과 같이 구조체 안에 또 다른 구조체를 선언해서 사용하 실 수 있습니다. 단 버전의 제약을 받습니다. (델파이 2006 버전부터 가능) 메소드도 포항 할 수 있습니다.
예) type
test = record
a:string;
b:string;
type
test_sub = record
c:string;
d:string;
end;
end;
var
t:Test;
...
t.test_sub.c : = 'testc';