Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Глючит открытие файлов способом ShellExecute   Найти похожие ветки 

 
DreymanD   (2004-07-30 20:45) [0]

Привет всем мастерам!
У меня глючит команда 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;

Что в ней не так?


 
olookin ©   (2004-07-30 20:54) [1]

Мне кажется, что надо

shellexecute(combobox1.handle, "open", pchar(extractfilepath(combobox1.items.Strings[combobox1.ItemIndex])+"\"+s),nil,nil, sw_minimize);


 
Юрий Зотов ©   (2004-07-30 20:59) [2]

Ну, Вы же сами себе уже ответили: "Глючит открытие файлов способом ShellExecute в D7 под WinME".

А если все же признать, что глючит вовсе не оно, то неверно combobox1.handle и пустая строка s.


 
olookin ©   (2004-07-30 21:05) [3]

Юрий Зотов ©   (30.07.04 20:59) [2]

Насчет хэндла комбобокса не придратся... А вот насчет отсутствия слэша можно - особенно если s - это просто имя файла


 
Юрий Зотов ©   (2004-07-30 22:16) [4]

> olookin ©   (30.07.04 21:05) [3]

Слэш - это само собой. Только еще неплохо было бы и хоть что-нибудь в S запихнуть. Потому как файл c пустым именем вряд ли откроется.


 
DreymanD   (2004-07-30 22:30) [5]

olookin ©   (30.07.04 20:54) [1]
Неа, все равно открывает папку... Х-D)...

Юрий Зотов ©   (30.07.04 20:59) [2]
Да можно и без S:string;
Просто мне надо, чтоб файл, указанный в Комбо боксе открывался нажатием на Буттон :)


 
Алхимик ©   (2004-07-30 22:40) [6]

[5] DreymanD   (30.07.04 22:30)
pchar(combobox1.items.Strings[combobox1.ItemIndex])


 
olookin ©   (2004-07-30 22:45) [7]

Значит не заполнен у тебя комбобокс... Или неправильно заполнен... Ты пропобуй сначала проверить работу:

shellexecute(combobox1.handle, "open", "C:\1.txt",nil,nil, sw_minimize);

Если не работает при таком варианте - значит что то не работает до вызова ShellExecute или у тебя вообще какой нибудь редхат 9.0


 
tamroF   (2004-07-30 23:19) [8]

в сомбе текущий 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;


работает..


 
DreymanD   (2004-07-31 19:50) [9]

tamroF   (30.07.04 23:19) [8]
Оооо.. спасибо! Теперь все отлично работает :)))
В любом случае, спасибо всем!!! ;-D



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
4-1088665209
Cara
2004-07-01 11:00
2004.08.15
Как нажать кнопку и получить текст. Пример


3-1090308165
yuray
2004-07-20 11:22
2004.08.15
IB6 SS на Linux (RH9)-сервер


3-1090466241
raptorus
2004-07-22 07:17
2004.08.15
Уважаемые мастера подскажите как можно просмотреть кодировку файл


3-1090581772
Fresh
2004-07-23 15:22
2004.08.15
Перекачка данных с индикатором прогресса


6-1086947219
m2003
2004-06-11 13:46
2004.08.15
Почта на Делфи