Главная страница
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.49 MB
Время: 0.05 c
2-1148845528
parovoZZ
2006-05-28 23:45
2006.06.18
Красивое меню (наверное)


2-1149014525
Blari
2006-05-30 22:42
2006.06.18
Перетаскивание в ListBox


1-1147284039
Андрей2500
2006-05-10 22:00
2006.06.18
быстрый поиск в Stringgrid


2-1148683470
yaro
2006-05-27 02:44
2006.06.18
Даже не знаю как написать


1-1147443885
parovoZZ
2006-05-12 18:24
2006.06.18
Результат функции по событию в dll