델파이 강좌 기초 #6 (간단한 이미지 뷰어 만들기)

2025. 12. 10. 07:35·Programming/Delphi

VCL 기초 4

정말 간단한 이미지 뷰어를 만들어 볼께요

사용 컴포넌트

TButton : 폴더선택 버튼 

TListBox : 이미지 파일 목록

TImage : 이미지 표시 컨트롤

 

변경한 프로퍼티

TButton : Caption(폴더 선택), Name(btnSelectFolder)

 

소스코드

폴더 선택 버튼

버튼을 클릭하면 폴더 선택 다이얼로그가 표시되고 이미지가 있는 폴더를 선택합니다. 

 

아래 코드는 폴더 선택 다이얼로그를 여는 방법을 소개합니다. 

procedure TfrmMain.btnSelectFolderClick(Sender: TObject);
begin
  // 폴더 선택 다이얼로그 열기
  // 폼에 컴포넌트 올리지 않고 사용하는 방법
  with TFileOpenDialog.Create(nil) do
  try
    Options := [fdoPickFolders];
    if Execute then
      ShowMessage(FileName);
  finally
    Free;
  end;
end;

 

with 문을 사용해서 컴포넌트를 폼에 올리지 않고 사용하는 방법입니다. 

이렇게 하면 자주 사용하는 코드들은 복사 + 붙여 넣기로 사용할수가 있어요 

 

ShowMessage(FileName) 는 선택한 폴더위치를 메세지로 보여줍니다. 

 

우선 이미지 표시할때 사용할 전역 변수를 하나 추가합니다. 

 TfrmMain = class(TForm)
    btnSelectFolder: TButton;
    ListBox1: TListBox;
    Image1: TImage;
    procedure btnSelectFolderClick(Sender: TObject);
  private
    { Private declarations }
    Folder : String; // 선택한 폴더 경로
  public
    { Public declarations }
  end;

 

소스에서 Folder 라는 String 전역 변수를 하나 추가 합니다. 

전역변수란 procedure 안에서만 사용하는 변수가 아니라 폼 전체에서 사용할수 있는 변수를 뜻합니다. 

 

여기에 선택한 폴더에서 jpg 파일을 찾아 오는 코드를 추가 해볼께요

*.jpg 라고 필더를 사용해서 .jpg 파일만 찾아 옵니다. *.* 이라고 하면 전체 파일목록을 찾아 옵니다. 

procedure TfrmMain.btnSelectFolderClick(Sender: TObject);
var
  SearchRec: TSearchRec;
begin
  // 폴더 선택 다이얼로그 열기
  // 폼에 컴포넌트 올리지 않고 사용하는 방법
  with TFileOpenDialog.Create(nil) do
  try
    Options := [fdoPickFolders];
    if Execute then begin

      // 선택한 폴더 경로 전역 변수에 저장
      // 나중에 이미지 불러 올때 사용
      Folder := FileName + '\';

      // 파일 리스트 초기화
      ListBox1.Items.Clear;

      // 선택한 폴더에서 jpg 파일을 찾아 오는 코드 
      if FindFirst(Folder + '*.jpg',faAnyFile,SearchRec) = 0 then begin
        repeat
          // jpg 파일 명 추가
          ListBox1.Items.Add(SearchRec.Name);
        until (FindNext(SearchRec) <> 0);
        FindClose(SearchRec);
      end;
    end;
  finally
    Free;
  end;
end;

 

리스트 박스 클릭시 

선택한 파일을 Image 에 불러오기

 

Jpeg 파일을 Image 컴포넌트에 불러 오려면 우선 used 절에 Jpeg 를 추가해야 합니다. 

used 절은 이 소스코드에서 참조하는 라이브러리들을 지정하는 겁니다. 

 

소스코드 상단에 used 부분이 있습니다. 거기에 Jpeg 를 추가합니다. 

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Jpeg;

 

리스트 박스 클릭 소스

procedure TfrmMain.ListBox1Click(Sender: TObject);
var
  Selected : String;
begin
  Selected := ListBox1.Items[ListBox1.ItemIndex];

  image1.Picture.LoadFromFile(Folder + Selected);
end;

 

TImage 컴포넌트에는 Picture 라는 프로퍼티가 있고 

LoadFromFile 라는 함수가 있습니다. 

그 함수에 이미지 파일을 지정 하면 이미지를 불러 옵니다. 

실행 화면

 

폴더 선택 버튼

 

사진 폴더를 선택하면 해당 폴더에 jpg 파일 목록이 list box 에 표시됩니다. 

 

리스트 박스 클릭시 이미지 표시됨

 

Timage  컴포넌트를 조작하면 이미지를 다양한 모양으로 보여줄수 있습니다. 

'Programming > Delphi' 카테고리의 다른 글

델파이 강좌 기초 #9 (문법 3)  (0) 2025.12.14
델파이 강좌 기초 #8 (문법 2)  (0) 2025.12.14
델파이 강좌 기초 #7 (문법 1)  (2) 2025.12.13
델파이 강좌 기초 #5 (간단한 메모장 만들기)  (0) 2025.12.06
델파이 강좌 기초 #4 (VCL 다루기)  (0) 2025.11.27
'Programming/Delphi' 카테고리의 다른 글
  • 델파이 강좌 기초 #8 (문법 2)
  • 델파이 강좌 기초 #7 (문법 1)
  • 델파이 강좌 기초 #5 (간단한 메모장 만들기)
  • 델파이 강좌 기초 #4 (VCL 다루기)
레이조(RayCho)
레이조(RayCho)
개발자 레이조(RayCho)의 블로그입니다.
  • 레이조(RayCho)
    레이(Ray)의 개발이야기
    레이조(RayCho)
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • Programming (37)
        • Python (4)
        • Flutter (4)
        • Delphi (7)
        • Lazarus (1)
        • C#.NET (4)
        • ASP.NET (5)
        • Database (5)
        • Game Dev (0)
        • Web (4)
        • ETC (3)
      • Homebrew (0)
  • 블로그 메뉴

    • 홈
    • Introduce
    • 태그
    • 방명록
  • 링크

    • Naver Blog
  • 공지사항

  • 인기 글

  • 태그

    Web
    serialport
    델파이
    VB.NET
    rs232
    ASP.NET
    Python
    JSON
    delphi
    mssql
    소스코드
    문법
    SQL
    objectpascal
    프로시져
    개발환경
    VCL
    프로그래밍
    Flutter
    C#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
레이조(RayCho)
델파이 강좌 기초 #6 (간단한 이미지 뷰어 만들기)
상단으로

티스토리툴바