How do I...?

Make an Image Browser

As an example, we will create an application that has the user select a folder on his drive, and then populates a listbox object with all of the *.png and *.jpg files within that directory. The user clicks on a file in the listbox object, and clicks the "Open" button to load the selected image into the image object.

  1. Create a project with two button objects, a listbox object, and an image object.

  2. Label Button1 "Load" and Button2 "Open".

  3. Insert the following code into the On Click event for Button1:

--Disable listbox Updating
ListBox.SetUpdate("ListBox1", false);

--Get the desired folder to browse
folder = Dialog.FolderBrowse("Open Folder", "C:\\");

--populate tables with all the .jpg and .png files
file_jpg = File.Find(folder, "*.jpg", false, false, nil);
file_png = File.Find(folder, "*.png", false, false, nil);

images = {file_jpg, file_png};

--do the following for each file:
for k in pairs(images) do --loops through the different image types
    for j,file_path in pairs(images[k]) do --loops through each image file
        --add the item to the listbox, with the name visible and path as data
        ListBox.AddItem("ListBox1", String.SplitPath(file_path).Filename, file_path);
    end
end

--Allow the listbox to display the updated content
ListBox.SetUpdate("ListBox1", true);

  1. Insert the following code into the On Click event for Button2:

selected = ListBox.GetSelected("ListBox1");
for j,k in pairs(selected) do
    Image.Load("Image1", ListBox.GetItemData("ListBox1", k));
end