|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] проблема в #0 в CopyFilesToClipboard |
|
Delphi - [решено] проблема в #0 в CopyFilesToClipboard
|
Новый участник Сообщения: 42 |
Привет Всем. У меня вот такая проблемка не понятная. использую процедуру
procedure CopyFilesToClipboard(FileList: string); var DropFiles: PDropFiles; hGlobal: THandle; iLen: Integer; begin iLen := Length(FileList) + 2; FileList := FileList + #0#0; hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, SizeOf(TDropFiles) + iLen); if (hGlobal = 0) then raise Exception.Create('Could not allocate memory.'); begin DropFiles := GlobalLock(hGlobal); DropFiles^.pFiles := SizeOf(TDropFiles); Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen); GlobalUnlock(hGlobal); Clipboard.SetAsHandle(CF_HDROP, hGlobal); end; end; Сама процедура рабочая.Вызывается она так CopyFilesToClipboard('C:\Bootlog.Txt'#0'C:\AutoExec.Bat'); Но у меня имена файлов заранее не извесны и сколько их тоже. Создал массив CHAR (типа string) и заполнил его именами файлов. Вызываю проц. CopyFilesToClipboard(CHAR[1]#0CHAR[2]) и делфи ругается на #0. Если писать сразу имена 'File1.txt'#0'File2.txt' bce работает а с массивом и пробовал с переменными не работает. Может кто поможет, как она работает эта процедура. |
|
Отправлено: 21:43, 24-12-2011 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать Версия Delphi?
И что значит не работает? Покажи описание TDropFiles. А вообще в таких случаях вызывают процедуру с рабочими параметрами и идут дебаггером смотря где что нужно. А потом по этим данным смотришь что тебе нужно подать на вход. Если я правильно понял по коду, то тебе нужно передать в функцию строку содержащую имена файлов разделенные #0. Т.е. вызываешь с константой, ставишь бряк на begin функции и смотришь что тебе пришло. Потом сам сформируй такую же строку. |
------- Последний раз редактировалось BlackEric, 25-12-2011 в 14:50. Отправлено: 14:42, 25-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Версия делфи 7,0
Вызываю вот так к примеру : procedure TForm1.Button8Click(Sender: TObject); begin CopyFilesToClipboard(CHAR[1]#0CHAR[2]); ругается на эту строку, курсор стоит после #0 end; Ошибка- Missing operator or semicolon (массив естественно прописан в var) если так: procedure TForm1.Button8Click(Sender: TObject); begin CopyFilesToClipboard('File1.txt'#0'File2.txt' ); end; Все работает, принимает имена а если имена возвращает переменная, массив или функция то уже не хочет. Если так CopyFilesToClipboard(CHAR[1]); - одна переменная или обект с массива то тоже работает Как передать несколько имен ??? описание TDropFiles: Я не очень то еще опытный, с clipboard сталкиваюсь в первые |
Отправлено: 17:51, 25-12-2011 | #3 |
Старожил Сообщения: 435
|
Профиль | Отправить PM | Цитировать CHAR[1] + #0 + CHAR[2] не взлетит?
CHAR[1] - как это объявлено? |
------- Отправлено: 18:03, 25-12-2011 | #4 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата BlackEric:
Тему можно считать закрытой. Спасибо oszony |
||
Отправлено: 22:10, 25-12-2011 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать che.ramzes, Для изучения функционала форума, пожалуйста, отредактируйте ваши сообщения, оформив код тегом [code][/code]. Ну и пометьте тему решённой самостоятельно.
![]() |
------- Отправлено: 22:52, 25-12-2011 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Проблема в ноутбуке Dell Inspiron N5110 . Странная проблема.... | STRELOK | Непонятные проблемы с Железом | 2 | 12-11-2011 23:27 | |
2008 - [решено] Проблема с ГП в AD., проблема при создании ГП к отдельным OU | kozemit | Windows Server 2008/2008 R2 | 2 | 15-07-2009 10:52 | |
Разное - Проблема установки Adobe Flash Player и проблема Windows Live | RubinSky | Microsoft Windows 7 | 3 | 26-03-2009 21:23 | |
Ошибка - Странная проблема с кодировкой(похоже проблема с преобразованием кодировок) | Mertvii | Microsoft Windows 2000/XP | 1 | 13-07-2008 16:05 | |
Как быстро и точно определить, в чём проблема? Явная проблема в железе | UTU | Непонятные проблемы с Железом | 16 | 22-05-2006 01:27 |
|