Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.08.2009, 19:09
Akzes Akzes вне форума
Прохожий
 
Регистрация: 18.02.2009
Сообщения: 27
Репутация: 13
По умолчанию почему ParamStr(1) возвращает некорректное значение?

Приветсвую всех!
пишу в OnCreate формы
Код:
Label.Caption := ParamStr(1);
и открываю файл с помощью своей проги
а значение, которое принимает Label.Caption
D:\MYMUSI~1\NEW_TO~1\01-VA-~1.MP3
а нужен полный путь к файлу
не могу понять в чем дело?
Ответить с цитированием
  #2  
Старый 16.08.2009, 20:03
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Используйте функцию GetFullPathName для получения полного пути.
Код:
var
  FullName: array[0..MAX_PATH - 1] of Char;
  FNameAddr: PChar;
begin
  GetFullPathName(PChar(ParamStr(1)), MAX_PATH, FullName, FNameAddr);
  Label.Caption := StrPas(FullName);
end;
Ответить с цитированием
  #3  
Старый 16.08.2009, 20:17
Akzes Akzes вне форума
Прохожий
 
Регистрация: 18.02.2009
Сообщения: 27
Репутация: 13
По умолчанию

спасибо, но не помогает...
все равно
D:\MYMUSI~1\NEW_TO~1\01-VA-~1.MP3
Ответить с цитированием
  #4  
Старый 16.08.2009, 23:18
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Не знаю, нужно ли вам ещё, но вот возможное решение:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  W32FD: WIN32_FIND_DATA;
  Hndl: Cardinal;
  cdir: array[0..MAX_PATH - 1] of Char;
begin
  GetCurrentDirectory(SizeOf(cdir), cdir);
  FillChar(W32FD, SizeOf(W32FD), 0);
  Hndl := Windows.FindFirstFile(PChar(ParamStr(1)), W32FD);
  Label1.Caption := StrPas(cdir) + '\' + StrPas(W32FD.cFileName);
  Windows.FindClose(Hndl)
end;

Windows SDK так и предлагает:
Цитата:
You can obtain the long name of a file from the short name by calling the FindFirstFile function.
Ответить с цитированием
  #5  
Старый 16.08.2009, 23:34
Akzes Akzes вне форума
Прохожий
 
Регистрация: 18.02.2009
Сообщения: 27
Репутация: 13
По умолчанию

Nyctos Kasignete Спасибо огромное за помощь...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter