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

Вниз

ShellExecute   Найти похожие ветки 

 
Nonamers   (2006-06-01 00:53) [0]

Такая проблемма, нада было сделать ссылку на файл лежащий в папке с программой, посоветовали сделать так:
1. Создал переменную dirRoot : string;
2. В OnCreate формы написал
dirRoot := ExtractFileDir(ParamStr(0));
3. Потом
ShellExecute(h27, "open", dirRoot+"saper.doc", "", dirRoot, SW_SHOWDEFAULT);


Но проблемма в несовместимости string и PansiChar. Можно ли как-нить string переделать в PansiChar? А может есть доугое решение моей проблеммы?


 
Cashmare ©   (2006-06-01 02:20) [1]

ShellExecute(h27, "open", pchar(dirRoot+"saper.doc"), "", dirRoot, SW_SHOWDEFAULT);

Поможет?


 
Kolan ©   (2006-06-01 02:28) [2]

function TSettingsManager.GetRootDir: string;
begin
 Result := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
end;

Пользуюсь вот такой ф-цией и не знаю бед :)
Она вернёт строку с путем к папке, в которой лежит программа...


 
Nonamers   (2006-06-01 02:51) [3]

to Cashmare ©

Немного подправил, сделал так, а то ошибка вылазила

ShellExecute(h27, "open", pchar(dirRoot+"saper.doc"), "", pchar(dirRoot), SW_SHOWDEFAULT);

Ошибка перестала вылазить, но теперь ноль реакции, жму открыть, а ему пофиг((

to Kolan ©

Дык мне нада использовать не string, а PAnsiChar


 
ЮЮ ©   (2006-06-01 03:05) [4]

ExtractFileDir возвратит имя папки без слэша
ExtractFilePath возвратит имя пути, т.е. со слэшем


 
Kolan ©   (2006-06-01 03:19) [5]


> Дык мне нада использовать не string, а PAnsiChar

ДЫк
PAnsiChar(S)


 
Nonamers   (2006-06-01 03:32) [6]

to Kolan ©  and ЮЮ ©

Извеняйте конечно, но в Делфи я неособо то разбираюсь.
Написал я вот это -
function TSettingsManager.GetRootDir: string;
begin
Result := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
end;


Вылезла ошибка - Function needs result type - .


> ДЫк
> PAnsiChar(S)

поподробней, что такое S ?


 
ASoft   (2006-06-01 07:23) [7]

Nonamers   (01.06.06 03:32) [6]
вас, практически уже навели на путь истинный. осталось нажать F1 на этой функции...
тем не менее:
dirRoot - строковая переменная с путем к вашему файлу
пусть S будет именем файла (doc)
посылая вышеуказанной функции dirRoot вы возвращаете правильно оформленный путь к файлу.
Остается объединить результат функции и S, преобразовать в PChar и вызывать в ShellExecute.


 
Nonamers   (2006-06-01 08:12) [8]

To ASoft
F1 не могу нажать, потому что Делфи справки у меня нет(((

> PAnsiChar(S)


Как я понял, она преобразовывает переменную S(string) в PAnsiChar? Ну сделал я так. Написал


> Var
> PC:PAnsiChar;
> ...
> Begin
> PC:=PansiChar(dirRoot);
> ...
> ShellExecute(h27, "open", PC+"saper.doc", "", PC, SW_SHOWDEFAULT);
>
> ...


Но он опять кричит о несовместимости PansiiChar и String (( .

А если использовать эту

function TSettingsManager.GetRootDir: string;
begin
Result := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
end;


Вылазиет ошибка - Function needs result type - .

И вообще, обязательно ее использовать, чтобы узнать корн. директорию? Можно же эту?

dirRoot := ExtractFileDir(ParamStr(0));

Сильно не ругайте, лучше обьясните))


 
Nonamers   (2006-06-01 08:26) [9]

ВСЕМ СПАСИБО !

Все получилось)) Сделал по совету Cashmare ©

ShellExecute(h27, "open", pchar(dirRoot+"saper.doc"), "", pchar(dirRoot), SW_SHOWDEFAULT);

Раньше не получалось, потому что не подумал, что строка, содержащаяся в DirRoot на конце не имеет слэша, поэтому и не открывался файл))


 
evvcom ©   (2006-06-01 09:33) [10]


> F1 не могу нажать, потому что Делфи справки у меня нет

Ты где такого кастрата взял?

> строка, содержащаяся в DirRoot на конце не имеет слэша

А отладчика в твоем Delphi тоже нет? Попробуй почитать про точки останова и трассировку по шагам (F4,F7,F8)



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1148187592
mlm68
2006-05-21 08:59
2006.06.18
Как отправить SMS/MMS?


15-1148363783
Steepe Wolf
2006-05-23 09:56
2006.06.18
Выбор мобильного


6-1139373281
DelphiN!
2006-02-08 07:34
2006.06.18
Отключить все горячие клавишиш в TWebBrowser


10-1120656353
Winni
2005-07-06 17:25
2006.06.18
Можно ли ( и как) пользоваться COM или OLE-технологией в Д3 (Word


3-1145942532
Kley
2006-04-25 09:22
2006.06.18
Доступ к ODBC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский