![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ShellExecute
dasha © (2006-11-29 19:09:00)В БД Access в столбике adress хранятся адреса файлов(ну просто строкой: Hi.txt....)
хочу открыть по этому адресу файл:
s:=AdoTable1.FieldValues['Adress'];
ShellExecute(0,nil,pchar(s),'','',SW_SHOWNORMAL);
выдает ошибку на 2-ю строку
Invalid typecast
sniknik (2006-11-30 21:41:00) [1]> А что значит ассоциировано и как это делать,
при двойном клике в проводнике по файлу с каким нибудь расширением запускается ассоциированная с ним программа... в ней собственно и откроется такой файл. нет ассоциации винда предложит выбрать, SysErrorMessage попросту ничего не сделает, вернет ошибку.
> А ошибка по-прежнему таже Invalid typecast
> и если вместо pchar(s) написать просто Hi.doc то все отлично запускается
ну значит не может преобразовать тип... значит s всетаки не строка, либо то что приводишь тут <> тому что на самом деле, либо у тебя вообще не дельфи...
dasha (2006-11-30 20:33:00) [2]А что значит ассоциировано и как это делать,
А ошибка по-прежнему таже Invalid typecast
и если вместо pchar(s) написать просто Hi.doc то все отлично запускается
когда в текст прог-и вставляю
ShowMessage(SysErrorMessage(ShellExecute(0, 'open', pchar(s), nil, nil, SW_SHOWNORMAL)));
то выдает туже ошибку и опять не хочет компилироваться(
sniknik (2006-11-29 22:45:00) [3]надо не в едит неизвестно что выводить, и выводы по этому делать а смотреть возвращаемую ошибку
ShowMessage(SysErrorMessage(ShellExecute(0, 'open', pchar(s), nil, nil, SW_SHOWNORMAL)));
(так понимаю ошибку конвертации больше не выдает, судя по "и все равно не работает(" вместо "та же хрень". очень информационно...)
расширение файла с чемнибудь в системе ассоциировано?
dasha (2006-11-29 22:29:00) [4]файл есть, пробовала выводить не в s а в edit1.txt
Anatoly Podgoretsky (2006-11-29 22:11:00) [5]> dasha (29.11.2006 20:08:02) [2]
А с чего бы этому работать, если там файла нет.
dasha (2006-11-29 20:08:00) [6]S:string
и все равно не работает(
sniknik (2006-11-29 19:42:00) [7]s случаем не вариант?
вообще пиши явно
s:= AdoDataSet.FieldByName('Adress').AsString;
и ехекют поправь
ShellExecute(0, 'open', pchar(s), nil, nil, SW_SHOWNORMAL);
(по моему так, хотя, я всегда вместо ноля хендл передавал, а ноль это хендл десктопа)