728x90
반응형
Frame을 활용한 최종 통합 및 실행
이제까지 Frame을 활용하여 폴더 탐색, 파일 목록 정리, 이미지 표시 기능을 각각 독립적으로 구현하는 방법을 알아봤습니다.
이번 포스팅에서는 이 모든 Frame을 하나로 통합하여
완전한 Image Viewer 프로그램을 실행하는 과정을 살펴보겠습니다.
Frame을 활용한 최종 구조
우리가 구현한 Image Viewer는 아래와 같은 3개의 주요 Frame을 포함합니다:
- TfrFolder Frame
- 폴더 트리 탐색 기능 담당
- 선택된 폴더의 이미지 파일 목록을 TfrImageList에 전달
- TfrImageList Frame
- 전달받은 이미지 파일 목록을 정렬하여 나열
- 클릭하면 선택된 이미지를 강조 표시
- TfrImage Frame
- 개별 이미지를 표시하고 선택 이벤트를 처리
이제 이 Frame들을 메인 폼에 통합하여 프로그램을 완성해 보겠습니다.
메인 폼에 Frame 통합하기
먼저 TForm1을 생성하고, 이전에 만든 TfrFolder와 TfrImageList를 메인 폼에 배치합니다.
1. 메인 폼 디자인 설정
아래와 같이 Frame을 배치하여 UI를 구성합니다.
object Form1: TForm1
inline frFolder1: TfrFolder
Width = 320
Align = alLeft
end
inline frImageList: TfrImageList
Align = alClient
end
end
inline frFolder1: TfrFolder
Width = 320
Align = alLeft
end
inline frImageList: TfrImageList
Align = alClient
end
end
- frFolder1은 왼쪽(alLeft)에 배치하여 폴더 탐색 기능을 수행합니다.
- frImageList는 남은 공간(alClient)을 차지하여 이미지 목록을 표시합니다.
2. Frame 간 연동 구현
Frame 간의 데이터를 주고받는 기능을 추가해야 합니다.
예를 들어, TfrFolder에서 선택한 폴더의 파일 목록을 TfrImageList로 넘겨주는 방식입니다.
procedure TfrFolder.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Node = nil then Exit;
// 선택된 폴더의 파일 목록을 ImageList Frame으로 전달
TForm1(Parent).frImageList.Clear;
TForm1(Parent).frImageList.GetFiles(ShellTreeView1.SelectedFolder.PathName);
end;
begin
if Node = nil then Exit;
// 선택된 폴더의 파일 목록을 ImageList Frame으로 전달
TForm1(Parent).frImageList.Clear;
TForm1(Parent).frImageList.GetFiles(ShellTreeView1.SelectedFolder.PathName);
end;
이렇게 하면 폴더에서 파일을 선택할 때마다 TfrImageList가 자동으로 갱신됩니다.
최종 실행 및 결과
모든 Frame이 통합된 후 실행하면 다음과 같은 동작을 기대할 수 있습니다:
- 폴더 선택:
- 사용자가 TfrFolder에서 특정 폴더를 선택하면 해당 폴더 내의 이미지 파일 목록이 자동으로 업데이트됩니다.
- 이미지 목록 표시:
- TfrImageList가 선택된 폴더의 파일을 나열하여 보여줍니다.
- 이미지 선택 및 강조:
- 사용자가 특정 이미지를 클릭하면 TfrImage에서 해당 이미지를 강조 표시합니다.
결론
Frame을 활용하면 개별 기능이 독립적으로 동작하면서도 하나의 프로그램으로 통합될 수 있습니다.
이번 포스팅을 통해 Delphi에서 Frame을 활용하여 UI를 모듈화하는 과정과 장점을 익혔을 것입니다.
다음 단계로 Frame을 활용한 추가적인 기능 개선 및 확장 방법도 고민해 볼 수 있습니다.
728x90
반응형
'Delphi Tip > 컴포넌트' 카테고리의 다른 글
Frame 활용 실습 주요 구현 코드 (0) | 2025.01.24 |
---|---|
Delphi에서 Frame 추가 및 설정하기 (0) | 2025.01.23 |
Frame 구조 설계와 분업화 (0) | 2025.01.15 |
Frame을 활용한 Image Viewer 개발 (0) | 2025.01.06 |
Frame을 활용한 간단한 프로그램 예제 (0) | 2025.01.05 |
댓글