![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глючит открытие файлов способом ShellExecute [D7, WinME]
DreymanD © (2004-07-30 20:45:00)Привет всем мастерам!
У меня глючит команда ShellExecute. У меня на форме есть ComboBox1, через OpenDialog добавляю файл в его Items. Затем нажимаю на Button. После этого файл, который находится в КомбоБоксе должен открытся. Но у меня он не открывается! Открывается только папка! Что делать? Для "Буттон" я использовал команду:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
shellexecute(combobox1.handle, 'open', pchar(extractfilepath(combobox1.items.Strings[combobox1.ItemIndex])+s),nil,nil, sw_minimize);
end;
Что в ней не так?
DreymanD (2004-07-31 19:50:00) [1]tamroF (30.07.04 23:19) [8]
Оооо.. спасибо! Теперь все отлично работает :)))
В любом случае, спасибо всем!!! ;-D
tamroF (2004-07-30 23:19:00) [2]в сомбе текущий item был "c:\01.bmp"
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
ShellExecute(ComboBox1.handle, 'open', pchar(ComboBox1.Text),pchar(ExtractFilePath(ComboBox1.Text)),nil, sw_show);
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
ShellExecute(ComboBox1.handle, 'open', pchar(ComboBox1.Text),pchar(ExtractFilePath(ComboBox1.Text)),nil, sw_show);
end;
работает..
olookin (2004-07-30 22:45:00) [3]Значит не заполнен у тебя комбобокс... Или неправильно заполнен... Ты пропобуй сначала проверить работу:
shellexecute(combobox1.handle, 'open', 'C:\1.txt',nil,nil, sw_minimize);
Если не работает при таком варианте - значит что то не работает до вызова ShellExecute или у тебя вообще какой нибудь редхат 9.0
Алхимик (2004-07-30 22:40:00) [4][5] DreymanD (30.07.04 22:30)
pchar(combobox1.items.Strings[combobox1.ItemIndex])
DreymanD (2004-07-30 22:30:00) [5]olookin © (30.07.04 20:54) [1]
Неа, все равно открывает папку... Х-D)...
Юрий Зотов © (30.07.04 20:59) [2]
Да можно и без S:string;
Просто мне надо, чтоб файл, указанный в Комбо боксе открывался нажатием на Буттон :)
Юрий Зотов (2004-07-30 22:16:00) [6]> olookin © (30.07.04 21:05) [3]
Слэш - это само собой. Только еще неплохо было бы и хоть что-нибудь в S запихнуть. Потому как файл c пустым именем вряд ли откроется.
olookin (2004-07-30 21:05:00) [7]Юрий Зотов © (30.07.04 20:59) [2]
Насчет хэндла комбобокса не придратся... А вот насчет отсутствия слэша можно - особенно если s - это просто имя файла
Юрий Зотов (2004-07-30 20:59:00) [8]Ну, Вы же сами себе уже ответили: "Глючит открытие файлов способом ShellExecute в D7 под WinME".
А если все же признать, что глючит вовсе не оно, то неверно combobox1.handle и пустая строка s.
olookin (2004-07-30 20:54:00) [9]Мне кажется, что надо
shellexecute(combobox1.handle, 'open', pchar(extractfilepath(combobox1.items.Strings[combobox1.ItemIndex])+ '\'+s),nil,nil, sw_minimize);