Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Показ полного пути к файлу!   Найти похожие ветки 

 
St74   (2005-12-27 09:09) [0]

Привет Всем! С Новым Годом Вас!

Почему при OnShow формы в таком коде, вылазиет не полный путь к файлу а
C:/DOCUME~1/...
...
var
 Str: string;
 i: Integer;
begin
 if (ParamCount > 0) then
 begin
   Str := ParamStr(1);
   for i := 2 to ParamCount do
   begin
     Str := Str + " " + ParamStr(i);
   end;
   RxRichEdit2.Lines.LoadFromFile(Str);
   EnDeCrupt.Caption := "На данный момент открыт фаил - " + Str;
 end;
...

Заранее Благодарю! St74!


 
begin...end ©   (2005-12-27 09:17) [1]

GetLongPathName


 
Desdechado ©   (2005-12-27 11:04) [2]

Application.ExeName


 
begin...end ©   (2005-12-27 11:24) [3]

> Desdechado ©   (27.12.05 11:04) [2]

А это здесь причём?


 
Reindeer Moss Eater ©   (2005-12-27 11:33) [4]

Почему при OnShow формы в таком коде, вылазиет не полный путь к файлу а
C:/DOCUME~1/...


Потому что exe модуль запускается с помощью ярлыка.
А в свойствах этого ярлыка рабочий каталог программы указан как короткий путь.


 
St74   (2005-12-27 15:01) [5]

Но мне и надо чтоб при клике по файлу созданному моей программой
запустить последнюю на выполнение и загрузить в RxRichEdit фаил!

St74! ;)


 
Германн ©   (2005-12-27 16:42) [6]

Поставь в HCR/MyFile/Shell/Open/Command - MyProgramma "%1"


 
St74   (2005-12-27 19:37) [7]

Германн ©   (27.12.05 16:42) [6]

А у меня типо что стоит...
...
var
 Reg: TRegistry;
begin
 Reg := TRegistry.Create;
 Reg.RootKey := HKEY_CLASSES_ROOT;
 Reg.OpenKey(".asw", True);
 Reg.WriteString("", "MyFile");
 Reg.CloseKey;
 Reg.CreateKey("asw" + "MyFile");
 Reg.OpenKey("MyFile\DefaultIcon", True);
 Reg.WriteString("", Application.ExeName + ",0");
 Reg.CloseKey;
 Reg.OpenKey("MyFile\shell\open\command", True);
 Reg.WriteString("", Application.ExeName + " "%1"");
 Reg.CloseKey;
 Reg.Free;
...

St74! 8)


 
St74   (2005-12-27 20:59) [8]

ИМХО! Что ещё мона сделать!


 
аматор ©   (2005-12-27 22:09) [9]

Привет..

   if ParamStr(1)<> "" then begin
      RxRichEdit2.Lines.LoadFromFile(ParamStr(1));
   end;


 
St74   (2005-12-28 19:11) [10]

аматор ©   (27.12.05 22:09) [9]

Та же хэя, путь не полный :(

Reindeer Moss Eater ©   (27.12.05 11:33) [4]

Так что же енто короче ДЫК!!! Али Кердык! 87)

Что Парни у кого ещё что есть, по данной Мессаге! ;)


 
St74   (2005-12-28 19:12) [11]

аматор ©   (27.12.05 22:09) [9]

Та же хэя, путь не полный :(

Reindeer Moss Eater ©   (27.12.05 11:33) [4]

Так что же енто короче ДЫК!!! Али Кердык! 87)

Что Парни у кого ещё что есть, по данной Мессаге! ;)


 
begin...end ©   (2005-12-28 19:43) [12]

Во народ пошёл, а... :-(

В первом же посте -- функция, превращающая путь из "короткого" в "длинный".

Казалось бы -- возьми да пользуйся! Если непонятно что-то -- возьми да спроси!

Ан нет... Лучше упорно флудить... а вдруг чего полегче будет? а вдруг готовый код дадут?

Во народ пошёл, а... :-(


 
St74   (2005-12-28 20:00) [13]

Ну что тут Шуметь, да не понял ху есть ху!
Что за функция такая GetLongPathName и где об ней посмотреть мона?

А то сразу что за народ, ... да молод ещё народ в Программировании вот и
флудит не по детски!

St74! ;)


 
begin...end ©   (2005-12-28 21:23) [14]

> St74   (28.12.05 20:00) [13]

> Что за функция такая GetLongPathName и где об ней посмотреть мона?

Посмотреть "об ней мона" в MSDN: http://msdn.com

Но нервы нужно беречь (и Вам, и мне). Поэтому сразу дам готовый код:

function GetLongPathName(lpszShortPath: PChar; lpszLongPath: PChar; cchBuffer: DWORD): DWORD;
 stdcall; external "kernel32.dll" name "GetLongPathNameA";

var
 LP: array [0..MAX_PATH] of Char;
 R: Cardinal;
begin
 R := GetLongPathName(PChar(ParamStr(1)), LP, sizeof(LP));
 if (R <> 0) and (R < sizeof(LP)) then
   ShowMessage(LP)
end.


 
Alexander Panov ©   (2005-12-28 21:44) [15]

>St74

А еще желательно матюгальник свой не использовать для писанины.


 
St74   (2005-12-28 22:11) [16]

Alexander Panov ©   (28.12.05 21:44) [15]

>>> ху есть ху! <<< ---> Это не мат а "Кто есть Кто!" 8()


 
St74   (2005-12-28 22:17) [17]


> Та же хэя


Это "Та же хэромантия а не херомантия" :)))


 
St74   (2005-12-29 00:39) [18]


> begin...end ©   (28.12.05 21:23) [14]


СпасиБО ОГромное! Прочитал, посмотрел на ваш код, и вот ШО у менЭ получилось
...
var
 GetLongPathName: function(lpszShortPath: PChar; lpszLongPath: PChar;
   cchBuffer: DWORD): DWORD; stdcall;
 h: THandle;
 i: Integer;
begin
 Result := ShortName;
 if Result = "" then
   Exit;
 h := GetModuleHandle(kernel32);
 if h = 0 then
   Exit;
 @GetLongPathName := GetProcAddress(h, "GetLongPathNameA");
 if not Assigned(GetLongPathName) then
   Exit;
 SetLength(Result, MAX_PATH);
 i := GetLongPathName(PChar(ShortName), PChar(Result), Length(Result));
 if i = 0 then
   Exit;
 SetLength(Result, i);
end;
...



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

Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.041 c
6-1128867844
denissoft
2005-10-09 18:24
2006.01.22
Как получить данные


2-1136315499
JazY
2006-01-03 22:11
2006.01.22
4 простых вопроса по DBgrid


5-1121829947
rainy_
2005-07-20 07:25
2006.01.22
Отображение составных частей компонента


14-1135929811
Piter
2005-12-30 11:03
2006.01.22
Справка о болезни


2-1136440033
ezorcist
2006-01-05 08:47
2006.01.22
Изменить палитру на Image





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский