Topic: Как в компоненте DBFile отключить "Open folder with file"?

Как в компоненте DBFile для пользователя "НЕ АДМИН" программно отключить "Open folder with file"?

          // проверка прав администратора
          s := VarToStr( SQLExecute('SELECT administrator FROM users WHERE (login = ''' + sUser + ''');') );
          if s='0' then frmChoice.bSetting.Enabled := False; // если пользователь не обладает правами администратора, отключить кнопку

Что в этот скрипт дописать?

Не боги горшки лепят!

Re: Как в компоненте DBFile отключить "Open folder with file"?

К сожалению отключить пункт меню Open folder with file не получится, но можно скрыть правую кнопку в компоненте DBFile

Form1.DBFile1.RightButton.Visible := False;

и рядом расположить еще одну кнопку, которая будет открывать файл из данного компонента, но по умолчанию она должна быть скрыта (Form1.Button1.Visible := False;)

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     OpenFile(Form1.DBFile1.dbFileName);
end;

тогда код будет таким

// проверка прав администратора
          s := VarToStr( SQLExecute('SELECT administrator FROM users WHERE (login = ''' + sUser + ''');') );
          if s='0' then 
          begin
              frmChoice.bSetting.Enabled := False; // если пользователь не обладает правами администратора, отключить кнопку
              Form1.DBFile1.RightButton.Visible := False; // скрываем правую кнопку
              Form1.Button1.Visible := True; // показываем кнопку, через которую можно будет открыть фай
          end;
Dmitry.

3 (edited by kunar80 2014-11-10 18:45:44)

Re: Как в компоненте DBFile отключить "Open folder with file"?

Спасибо. Займусь. Иначе при работе в локальной сети (сеть создал сегодня и проект лежит в моей машине), каждый мой сотрудник через просмотр папки с файлами получает доступ не только к папке программы, но и ко всему компьютеру своего начальника. sad

Не боги горшки лепят!

4 (edited by kunar80 2014-11-10 20:32:01)

Re: Как в компоненте DBFile отключить "Open folder with file"?

И ещё вопросик по DBFile. Сейчас проект все файлы складывает в папку 'files'. А так как файлы несут разную по содержанию информацию, хотелось бы иметь адрес 'files/files1' для одного DBFile, 'files/files2'  для другого и т.д.
Создал в папке 'files' папку 'files1' и так записал скрипт:

procedure Form1_DBFile1_OnChange (Sender: string);
begin
Form1.DBFile1.dbInitialDir := 'files/files1';     
end;

Но ничего из этого не вышло. По прежнему пишет в папку 'files' .
Попробовал так, создав папку 'files1', но и 'files' оставив:

procedure Form1_DBFile1_OnChange (Sender: string);
begin
Form1.DBFile1.dbInitialDir := 'files1';     
end;

Увы, результат тот же - пишет в 'files' .

Не боги горшки лепят!

Re: Как в компоненте DBFile отключить "Open folder with file"?

kunar80
Вам необходимо изменить путь для второго DBFile через свойство CopyTo в инспекторе объектов.
Подробней о свойстве
http://myvisualdatabase.com/help_ru/com … opyto.html


на счет dbInitialDir
Позволяет задать путь по умолчанию для диалога открытия и сохранения файла, но не для места хранения файла.

Dmitry.

6 (edited by kunar80 2014-11-11 21:37:51)

Re: Как в компоненте DBFile отключить "Open folder with file"?

Работает Но при отсутствии прикрепленного файла открывает "Мои документы" !!!?????

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     OpenFile(Form1.DBFile1.dbFileName);
end;
Не боги горшки лепят!

Re: Как в компоненте DBFile отключить "Open folder with file"?

kunar80
Думаю нужна проверка

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     if Form1.DBFile1.dbFileName <> '' then OpenFile(Form1.DBFile1.dbFileName)
     else ShowMessage('Файла нет');
end;
Dmitry.

Re: Как в компоненте DBFile отключить "Open folder with file"?

При клике на кнопке ОК компонента ShowMessage('Файла нет') открывается директория проекта.
Скрипт записан так:

procedure frmDocProcessingNAF_view_OnClick (Sender: string; var Cancel: boolean);
begin
     if frmDocProcessingNAF.DBFileNAF.dbFileName <> '' then OpenFile(frmDocProcessingNAF.DBFileNAF.dbFileName)
     else ShowMessage('Файла нет');
     OpenFile(frmDocProcessingNAF.DBFileNAF.dbFileName);  
end;
Post's attachments

Attachment icon 2014-11-12_104846.jpg 50.83 kb, 311 downloads since 2014-11-12 

Не боги горшки лепят!

Re: Как в компоненте DBFile отключить "Open folder with file"?

попробуйте так

procedure frmDocProcessingNAF_view_OnClick (Sender: string; var Cancel: boolean);
begin
     if frmDocProcessingNAF.DBFileNAF.dbFileName <> '' then OpenFile(frmDocProcessingNAF.DBFileNAF.dbFileName)
     else ShowMessage('Файла нет');
end;
Dmitry.

10 (edited by kunar80 2014-11-18 20:42:57)

Re: Как в компоненте DBFile отключить "Open folder with file"?

Что неправильно?
При таком коде куда бы ни ткнул курсором - открывает директорию проекта:

procedure frmChoice_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
     OpenFile(frmDocProcessingNAF.DBFileNAF.dbFileName);
end;

При следующих двух независимо от наличия файла выскакивает во всей таблице ShowMessage('Файла нет'):

procedure frmChoice_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
          if frmDocProcessingNAF.DBFileNAF.dbFileName <> '' then OpenFile(frmDocProcessingNAF.DBFileNAF.dbFileName)
     else ShowMessage('Файла нет');
end;
procedure frmChoice_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
     if frmDocProcessingNAF.DBFileNAF.dbFileName <> '' then OpenFile(ExtractFileDir(Application.ExeName) + frmDocProcessingNAF.DBFileNAF.dbFileName)
     else ShowMessage('Файла нет');
end;
Post's attachments

Attachment icon 2014-11-18_223702.jpg 27.61 kb, 307 downloads since 2014-11-18 

Не боги горшки лепят!

Re: Как в компоненте DBFile отключить "Open folder with file"?

kunar80
Пришлите пожалуйста проект на support@drive-software.com
со ссылкой на данное сообщение, посмотрю в чем дело.

Dmitry.