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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
1-1135001045
ССТ
2005-12-19 17:04
2006.01.22
Чтение содержимого окна-таблицы


2-1136353843
konrads
2006-01-04 08:50
2006.01.22
TQuery


11-1117927273
rofl
2005-06-05 03:21
2006.01.22
Kol Memo: strange output on Items[] if item is just one byte


2-1136483524
DimDim
2006-01-05 20:52
2006.01.22
А чтоб вычисляемые поля в запрос попадали???


3-1132758007
Vikusik
2005-11-23 18:00
2006.01.22
inser+insert + ..... +insert = 0 md free memory