본문 바로가기
Delphi Tip/컴포넌트

Frame 활용 실습 주요 구현 코드

by MonoSoft 2025. 1. 24.
728x90
반응형

Frame 활용 실습 주요 구현 코드

 

이번 포스팅에서는 Delphi에서 Frame을 활용하여 실제로 구현하는 주요 코드를 살펴보겠습니다.

이를 통해 Frame을 활용한 프로그래밍이 얼마나 강력하고 효율적인지 체험할 수 있습니다.

특히, 코드 작성의 흐름과 중요한 메서드의 동작 방식을 중심으로 설명하겠습니다.

 

Frame 활용 실습 목표

  1. 폴더 탐색 및 파일 로딩
    • 사용자가 특정 폴더를 선택하면 해당 폴더의 파일 목록을 불러옵니다.
  2. 이미지 표시 및 정렬
    • 선택된 파일 중 이미지를 화면에 정렬하여 표시합니다.
  3. 독립적인 코드 관리
    • 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;

 

 

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;

 

 

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;

프로그래밍 흐름 요약

  1. 사용자가 폴더를 선택하면 TfrFolder에서 파일 목록을 가져옵니다.
  2. 파일 목록은 TfrImageList로 전달되며, 이미지 파일만 화면에 표시됩니다.
  3. TfrImage는 각 이미지를 개별적으로 관리하며 클릭 이벤트를 처리합니다.

 

결론

Frame을 활용하면 프로젝트의 코드가 모듈화되고, 유지보수가 쉬워집니다. 또한, 각 기능이 독립적으로 작동하므로 협업 시에도 효율적으로 작업할 수 있습니다. 이번 실습에서 다룬 주요 코드를 기반으로 여러분만의 프로젝트에 Frame을 적용해 보세요!

다음 포스팅에서는 Frame을 활용한 최종 통합 및 실행을 다룰 예정입니다.

 

 

728x90
반응형

댓글