FMX

delphi FMX Component 만들기

지병철 2023. 6. 29. 14:30

Radstduio Version: Radstudio 11.3 Alexandria

 

델파이에서 FMX 환경의 Component 를 만드는 방법을 정리해 보았다.

1. TLayout  을 이용하여 새로운 Component 만들기

2. Test 할 Project 만들기

3. TestProject 의 Form 위에 TMyLayout 을 올려 보자

4. TMyLayout 에 글자를 표시할 수 있도록 TLabel 을 추가해 보자

5. FLabel.Stored := False 를 하여  TLabel 중복 생성을 방지하자.

6. 디자인 타임에 FLabel 의 Text 값을 변경할 수 있도록 해 보자.

 

1. TLayout 을 이용하여 새로운 Component 만들기

 

메뉴에서 New Component 선택
'FireMonkey for Delphi' 선택
TLayout 입력 및 선택
Class name, Palette page, Unit name 을 입력한다. 저장할 폴더는 수동으로 지정한다.
Class name, Palette page, Unit name 을 입력한다. 저장할 폴더는 수동으로 지정한다.
Install to New Package' 를 선택하여 새로운 Package를 만든다. 기존의 Package에 새로이 만드는 component 를 추가하려면, 기존 Package를 연 후 위의 절차대로 진행한 후 'Install to Existing Package'를 선택하면 된다
Package name 을 입력한다

 

MyLayout.pas 파일을 저장한다
이런 메시지가 나오면 'Yes'를 선택한다
Component 가 만들어지고, 설치되었다는 메시지가 보인다.
Component 가 만들어지고, 설치되었다는 메시지가 보인다.
만들어진 Component를 테스트할 Project를 추가한다

 

만들어진 MyLayout.pas

 

2. TLayout 을 이용하여 새로운 Component 만들기

ProjectGroup1 위에 마우스 오른쪽 버튼을 이용하여, 'Add New Project'를 선택한다

 

Multi-Device > Blank Application 을 선택한다
File > Save All 을 선택한다
Group 을 저장한다

 

3. TestProject 의 Form 위에 TMyLayout 을 올려 보자

ALT+F12 눌러서 Form 내용을 확인하자

 

4. TMyLayout 에 글자를 표시할 수 있도록 TLabel 을 추가해 보자.

 

FLabel 을 추가 한다
Build 를 하여, MyLayout 에 반영을 한다
'MyLayout Test'라는 글자가 TMyLayout 위에 표시된다

 

5. FLabel.Stored := False 를 하여  TLabel 중복 생성을 방지하자.

TestProject 의 폼을 저장한 후, 폼을 Close 시킨 후 다시 열어보자.

'MyLayout Test'라는 글자가 진해 보인다.
Form 위에서 ALT+F12 를 누르면, TLabel 이 2개 보인다

디자인 타임에 Form 을 닫았다 열면, TMyLayout.Create 함수가 다시 실행되어, FLable 의 두개가 보여진다. 

TLabel 의 Stored 속성의 기본값은 True 이기에, FLabel 은 생성될 때마다 Form 에 저장되기 때문이다. Form 이 새로 열릴 때마다, TMyLayout.Create 함수가 실행되고, 여기서 새로운 FLabel 다시 생성하게 된다.
TMyLayout.Create 함수에서 FLabel.Stored := False; 를 선언해 주면, 이러한 문제가 해결된다.

FLabel.Stored := False 를 한다. ( Component 가 변경되면 'Build' 명령을 이용하여 재빌드 해야 변경사항이 변경된다 )
ALT+F12를 눌러 Form 의 내용을 보면 TLable 이 보이지 않는다

 

6. 디자인 타임에 FLabel 의 Text 값을 변경할 수 있도록 해 보자.

 

디자인 타임에 FLabel 의 Text 값을 변경할 수 있도록 하려면, Text 값을 저장할 수 있는 Property 를 만들어서, Form에 이를 저장하고 사용할 수 있도록 해야 한다.

Form 의 내용을 보면 'Text' property 가 생성되고, 값이 Form 에 저장되고 있는 것이 보인다.

 

- 이상 -