Вопрос Как сделать свою форму выбора папки (при нажатии на обзор)?

Статус
В этой теме нельзя размещать новые ответы.

Ekspoint

Новичок
а как вместо кнопок сделать картинки и что бы к ним крепились те жи функции?
 

sergey3695

Ветеран
Модератор
Код:
#define GameName "Sacred"
[Setup]
AppName={#GameName}
AppVerName={#GameName}
DefaultDirName={pf}\{#GameName}
OutputDir=.
AppPublisher=troyan

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Code]
var
  BrowseForm                  : TSetupForm;
  Browse, OK, NO, back, new   : TButton;
  DirTreeView                 : TFolderTreeView;
  Edit                        : TNewEdit;
//-----------------------------//
procedure OKclick(Sender: TObject);
begin
  BrowseForm.Close;
  WizardForm.Enabled:=True;
  WizardForm.DirEdit.Text:=AddBackslash(Edit.Text);
end;
procedure BackClick(Sender: TObject);
begin
  Edit.Text:=AddBackslash(ExpandConstant('{pf}\')+'{#GameName}');
  DirTreeView.ChangeDirectory(AddBackslash(ExpandConstant('{pf}\')), True);
end;
procedure NewClick(Sender: TObject);
begin
  DirTreeView.CreateNewDirectory('Новая');
  Edit.Text:=AddBackslash(DirTreeView.Directory) + '{#GameName}';
end;
procedure NOclick(Sender: TObject);
begin
  BrowseForm.Close;
  WizardForm.Enabled:=true;
end;
procedure DirFolderChange(Sender: TObject);
Begin
  Edit.Text:=AddBackslash(DirTreeView.Directory) + '{#GameName}';
end;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WizardForm.Enabled:=true;
end;
 
//-----------------------------//
procedure BrowseClick(Sender: TObject);
begin
    BrowseForm := CreateCustomForm();
  with BrowseForm do begin
    ClientWidth:=WizardForm.Width/2;
    ClientHeight:=WizardForm.Height-100;
    CenterInsideControl(WizardForm, False);
    Caption:='Browse For Folder';
    Color:=$3E2536;
    onClose:=@FormClose;
   
      ok:=tbutton.create(BrowseForm)
    with ok do begin
      Left:=5; top:=BrowseForm.Height-ok.Height-30;
      Width:=BrowseForm.ClientWidth/4;
      parent:=BrowseForm;
      Caption:='OK';
      onclick:=@OKclick;
    end;
   
      back:=tbutton.create(BrowseForm)
    with back do begin
      Left:=ok.left+ok.Width+5; top:=BrowseForm.Height-ok.Height-30;
      Width:=BrowseForm.ClientWidth/5;
      parent:=BrowseForm;
      Caption:='Reset';
      onclick:=@BackClick;
    end;
   
      new:=tbutton.create(BrowseForm)
    with new do begin
      Left:=back.left+back.Width+7; top:=BrowseForm.Height-ok.Height-30;
      Width:=BrowseForm.ClientWidth/5;
      parent:=BrowseForm;
      Caption:='Folder';
      onclick:=@NewClick;
    end;
   
      no:=tbutton.create(BrowseForm)
    with no do begin
      Width:=BrowseForm.ClientWidth/4;
      Left:=BrowseForm.ClientWidth - Width -5; top:=BrowseForm.Height-ok.Height-30;
      parent:=BrowseForm;
      Caption:='NO';
      onclick:=@NOclick;
    end;
   
      DirTreeView:= TFolderTreeView.Create(BrowseForm)
    with DirTreeView do begin
      SetBounds(5,5,BrowseForm.Width-17,210);
      OnChange:=@DirFolderChange;
      Parent:=BrowseForm;
    end;
   
      Edit:= TNewEdit.Create(BrowseForm);
    with edit do begin
      SetBounds(5,220,BrowseForm.Width-17,15);
      Text:=WizardForm.DirEdit.text;
      Parent:= BrowseForm;
      Color:=$3E2536;
      Font.Color:=clWhite;
      Font.Name:='Georgia';
    end;
   
    with tlabel.create(BrowseForm) do begin
      SetBounds(6,245,BrowseForm.Width,15);
      caption:='Select a folder and click OK, else click NO.';
      parent:=BrowseForm;
      Font.Color:=clWhite;
      Font.Size:=8;
      Font.Name:='Georgia';
    end;
  end;
  DirTreeView.ChangeDirectory(AddBackslash(WizardForm.dirEdit.Text), true);
  Edit.Text:=AddBackslash(DirTreeView.Directory);
  BrowseForm.Show;
  WizardForm.Enabled:=false;
end;
   
   
//-----------------------------//
procedure InitializeWizard;
begin
  WizardForm.DirBrowseButton.Visible:=false;
    Browse:=tbutton.create(WizardForm);
  with Browse do begin
    Parent:=WizardForm.SelectDirPage;
    Left:=WizardForm.DirBrowseButton.left;
    Top:=WizardForm.DirBrowseButton.Top-1;
    Caption:='My Browse...';
    OnClick:=@BrowseClick;
  end;
end;
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху