Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Парадокс с ShellExecute [D7, XP]


vslabchenko ©   (2009-07-02 19:39:00) 

Хочу добиться следующего:есть база книг (Access),осуществляется поиск нужной книги,щелчком на кнопке она должна открываться.
На форме есть Grid,Navigator,Button (открытие файла с книгой) и DBEditEh (компонент из ExLib в котором показывается название самого файла с книгой,например: odessa.pdf).
Использую функцию ShellExecute.При таком написании кода:

ShellExecute (Form3.Handle, nil, 'D:\BOOK BASE\DATA\odessa.pdf', nil ,nil, SW_SHOW);

происходит открытие файла,но когда необходимо открыть файл,который будет введен в
DBEditEh - файл не открывается.Прописываю следующий код:

ShellExecute (Form3.Handle, nil,PChar( 'D:\BOOK BASE\DATA\'+(DBEditEh1.Text)), nil ,nil, SW_SHOW);

При этом открываются только файлы с расширением .pdf, все остальные (например, doc,djvu,rtf,txt и др.)-не открываются...

В чем моя ошибка? Спасибо.


Dennis I. Komarov   (2009-07-03 09:20:00) [1]


> жж   (02.07.09 20:13) [2]

А если юзаем pdf, то PChar( ведет себя инатче?

> При этом открываются только файлы с расширением .pdf, все
> остальные (например, doc,djvu,rtf,txt и др.)-не открываются.
> ..

Покажи какие файлы открывал...


Anatoly Podgoretsky   (2009-07-03 09:05:00) [2]

> vslabchenko  (02.07.2009 19:39:00)  [0]

Подземный стук


жж   (2009-07-02 20:13:00) [3]

Короче, с указателями на чар такая конструкция не проходит
заводи временную переменную
var
 s: string;
и исползуй ее
s:='D:\BOOK BASE\DATA\'+DBEditEh1.Text;
ShellExecute (Form3.Handle, nil,PChar(s), nil ,nil, SW_SHOW);


Игорь Шевченко   (2009-07-02 19:54:00) [4]


> В чем моя ошибка?


а посмотреть, то, что получается в PChar( 'D:\BOOK BASE\DATA\'+(DBEditEh1.Text)) ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо