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 |
