Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2015, 06:17   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию Incompatible types: 'PWideChar' and 'string'

Код:
ShellExecute(Handle,'c:\windows\notepad.exe','D:\1\' + (PWideChar(listbox1.Items[listbox1.ItemIndex])), nil,SW_SHOWNORMAL);
[DCC Error] Unit2.pas(63): E2010 Incompatible types: 'PWideChar' and 'string'

Что не так?
mitiay вне форума Ответить с цитированием
Старый 05.03.2015, 07:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Операция сложения дает в результате строку string, а не указатель на нее как PChar.
Запомни на будущее - приводить нужно не часть строки, а все строковое выражение.
Пример: PChar('d:\1\' + Edit1.Text);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.03.2015, 11:42   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Пробую так:
Код:
ShellExecute(Handle,(PWideChar('c:\windows\notepad.exe')),(PWideChar('D:\1\' + (listbox1.Items[listbox1.ItemIndex]))), nil,SW_SHOWNORMAL);
[DCC Hint] Unit2.pas(48): H2164 Variable 'i' is declared but never used in 'TForm2.Button1Click'
[DCC Error] Unit2.pas(68): E2010 Incompatible types: 'PWideChar' and 'Integer'
mitiay вне форума Ответить с цитированием
Старый 05.03.2015, 12:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пример из моего:
Код:
if ShellExecute(form1.handle,'open','D:\Help\api_help.exe','D:\Help\','',SW_HIDE)<=32
then caption:='bad';
Твой случай видимо:
Код:
ShellExecute(
  Handle,
  'open',
  PWideChar('c:\windows\notepad.exe "D:\1\' + listbox1.Items[listbox1.ItemIndex] +'"'),
  'c:\windows\',
  '',
 SW_SHOWNORMAL
);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
E2010 Incompatible types: 'PWideChar' and 'string' FreeZon Общие вопросы Delphi 3 16.02.2014 00:35
Incompatible types: 'String' and 'Char' FleXik Общие вопросы Delphi 3 22.11.2013 17:41
E2010 Incompatible types: 'Char' and 'string' ivt22 Общие вопросы Delphi 4 31.10.2013 14:06
Incompatible types: 'PWideChar' and 'string' Aleksandr69 Общие вопросы Delphi 8 25.12.2011 12:14
Incompatible types: 'String' and 'Text' eshik Помощь студентам 3 21.04.2010 00:41