Welcome to the new DelphiDabbler Code Library Documentation.

This is a new site that's currently running on alpha code. There are going to be bugs. If you discover any, please report them on the site's issues page (GitHub account required). Thanks.

Warning: Many URLs are going to change. Refer to the README file to discover which library project's documentation has been completed.

Shell Folders Unit Example

Applies to: ~>2.0

This example illustrates the use of the TPJSpecialFolderEnum class and some of the special folder support functions.

Drop a TListBox and a TLabel component on a form. When the program starts and the form is created, the list box is filled with the names of the special folder identifier constants. Double clicking an item in the list box displays the constant’s name and value (in hex) in the label.

procedure TForm1.FormCreate(Sender: TObject);
var
  Enum: TPJSpecialFolderEnum;
begin
  Enum := TPJSpecialFolderEnum.Create;
  try
    ListBox1.Clear;
    Enum.Init;
    while not Enum.AtEnd do
      ListBox1.Items.Add(SpecialFolderIdToStr(Enum.Next));
  finally
    Enum.Free;
  end;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  Index: Integer;
begin
  Index := ListBox1.ItemIndex;
  if Index <> -1 then
    Label1.Caption := Format('%s = $%4.4x',
      [ListBox1.Items[Index],
      StrToSpecialFolderID(ListBox1.Items[Index])]);
end;