Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c