728x90
반응형
Frame 활용 실습 주요 구현 코드
이번 포스팅에서는 Delphi에서 Frame을 활용하여 실제로 구현하는 주요 코드를 살펴보겠습니다.
이를 통해 Frame을 활용한 프로그래밍이 얼마나 강력하고 효율적인지 체험할 수 있습니다.
특히, 코드 작성의 흐름과 중요한 메서드의 동작 방식을 중심으로 설명하겠습니다.
Frame 활용 실습 목표
- 폴더 탐색 및 파일 로딩
- 사용자가 특정 폴더를 선택하면 해당 폴더의 파일 목록을 불러옵니다.
- 이미지 표시 및 정렬
- 선택된 파일 중 이미지를 화면에 정렬하여 표시합니다.
- 독립적인 코드 관리
- Frame을 활용하여 각 기능을 분리해 관리합니다.
Frame의 주요 메서드 구현
1. 폴더 탐색 기능 (TfrFolder)
폴더 트리 구조를 탐색하고, 선택된 폴더의 파일 목록을 가져오는 역할을 합니다.
procedure TfrFolder.GetFiles(Path: String);
var
SearchRec: TSearchRec;
begin
if FindFirst(Path + '\*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory) = 0 then
begin
// 파일 이름을 TfrImageList로 전달
TForm1(Owner).frImageList.AddFile(Path + '\' + SearchRec.Name);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
procedure TfrFolder.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Node = nil then Exit;
GetFiles(ShellTreeView1.SelectedFolder.PathName);
end;
var
SearchRec: TSearchRec;
begin
if FindFirst(Path + '\*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory) = 0 then
begin
// 파일 이름을 TfrImageList로 전달
TForm1(Owner).frImageList.AddFile(Path + '\' + SearchRec.Name);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
procedure TfrFolder.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Node = nil then Exit;
GetFiles(ShellTreeView1.SelectedFolder.PathName);
end;
2. 파일 목록 관리 기능 (TfrImageList)
파일 목록을 관리하고, 이미지 파일만 필터링하여 화면에 정렬합니다.
procedure TfrImageList.AddFile(FileName: String);
var
frImage: TfrImage;
begin
// 이미지 파일만 추가
if LowerCase(ExtractFileExt(FileName)) <> '.bmp' then Exit;
frImage := TfrImage.Create(Self);
frImage.Parent := Self;
frImage.Top := FList.Count * 140; // 간격 조정
frImage.LoadFromFile(FileName);
FList.Add(frImage);
end;
procedure TfrImageList.Clear;
var
i: Integer;
begin
for i := 0 to FList.Count - 1 do
TfrImage(FList[i]).Free;
FList.Clear;
end;
var
frImage: TfrImage;
begin
// 이미지 파일만 추가
if LowerCase(ExtractFileExt(FileName)) <> '.bmp' then Exit;
frImage := TfrImage.Create(Self);
frImage.Parent := Self;
frImage.Top := FList.Count * 140; // 간격 조정
frImage.LoadFromFile(FileName);
FList.Add(frImage);
end;
procedure TfrImageList.Clear;
var
i: Integer;
begin
for i := 0 to FList.Count - 1 do
TfrImage(FList[i]).Free;
FList.Clear;
end;
3. 개별 이미지 표시 기능 (TfrImage)
이미지를 로드하고, 선택 상태를 관리합니다.
procedure TfrImage.LoadFromFile(FileName: String);
begin
Image1.Picture.LoadFromFile(FileName);
end;
procedure TfrImage.Image1Click(Sender: TObject);
begin
Selected := not Selected;
if Selected then
Shape1.Brush.Color := clNavy
else
Shape1.Brush.Color := clWhite;
end;
프로그래밍 흐름 요약
- 사용자가 폴더를 선택하면 TfrFolder에서 파일 목록을 가져옵니다.
- 파일 목록은 TfrImageList로 전달되며, 이미지 파일만 화면에 표시됩니다.
- TfrImage는 각 이미지를 개별적으로 관리하며 클릭 이벤트를 처리합니다.
결론
Frame을 활용하면 프로젝트의 코드가 모듈화되고, 유지보수가 쉬워집니다. 또한, 각 기능이 독립적으로 작동하므로 협업 시에도 효율적으로 작업할 수 있습니다. 이번 실습에서 다룬 주요 코드를 기반으로 여러분만의 프로젝트에 Frame을 적용해 보세요!
다음 포스팅에서는 Frame을 활용한 최종 통합 및 실행을 다룰 예정입니다.
728x90
반응형
'Delphi Tip > 컴포넌트' 카테고리의 다른 글
Delphi에서 Frame 추가 및 설정하기 (0) | 2025.01.23 |
---|---|
Frame 구조 설계와 분업화 (0) | 2025.01.15 |
Frame을 활용한 Image Viewer 개발 (0) | 2025.01.06 |
Frame을 활용한 간단한 프로그램 예제 (0) | 2025.01.05 |
프로그래머라면 알아야 할 Frame 활용의 기본 개념 (0) | 2025.01.04 |
댓글