Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Drag and drop и extractfilename


CatAlone ©   (2007-07-21 17:39:00) 


procedure TForm1.DropFiles(var Mes: TWmDropFiles);
var
n, i: Integer;
fname: String;
begin
n:=DragQueryFile(Mes.Drop, $FFFFFFFF, nil, 0)-1;

try
 for 1:=0 to n do begin
 
  SetLength(fname, MAX_PATH);
  DragQueryFile(Mes.Drop, I, PChar(fname), MAX_PATH);

 if fileexists(fname) then inlist(fname);

 end;
finally DragFinish(Mes.Drop); end;
end;

Procedure Tform1.inlist(str:string);

begin
 
...

fdobname:=extractfilename(str);
 memo1.Lines.Add(fdobname);
....
end.



Почему то при попытке извлечь имя файла, вместо него извлекаются запятые, причем до операции строка нормальная.


procedure TForm1.Button2Click(Sender: TObject);
begin
opendialog2.Execute;
inlist(opendialog2.FileName);
end;


В случае обычного вызова функции ошибки не происходит.


Anatoly Podgoretsky   (2007-07-21 19:49:00) [1]

Вызвать DragQueryFile с fname = nil
Описание в справке.


CatAlone   (2007-07-21 19:07:00) [2]

Это i ! :)
А можно поподробнее?


Anatoly Podgoretsky   (2007-07-21 18:05:00) [3]

> CatAlone  (21.07.2007 17:39:00)  [0]

Это что "for 1"?
Это SetLength(fname, MAX_PATH) тоже надо заменить на вызов DragQueryFile для получения размера буфера


Наверх

Титульная страница Поиск, карта сайта Написать письмо