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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2012, 15:50   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию Проблемы с преобразованием типов

использую функцию:
Код:
function GetHardDiskSerial(const DriveLetter: Char): string;
Использование:
Код:
GetHardDiskSerial('G')
Функция определяет метку тома, ну в примере тома "G".
Вышеуказанным способом все работает! А вот то что мне действительно нужно:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
 YTom, MET: string;
begin
 YTom:= ComboBox1.Text;
 MET:= GetHardDiskSerial(PChar(YTom));
 Label1.Caption:= 'Метка тома: '+ YTom + ':' + MET;
end;
Но этот код у меня не как не компилируется! Подскажите в чем дело?
П.С. E2010 Incompatible types: 'Char' and 'PWideChar'


Ну все как всегда... пока ждал ответа, сам все сделал! тему можно закрывать! Да, "PChar" нужно заменить на "PWideChar", и получить что то типа:
Код:
unction GetHardDiskSerial(const DriveLetter: PWideChar): string;
...
procedure TForm1.ComboBox1Change(Sender: TObject);
var
 YTom, MET: string;
 PChTom: PWideChar;
begin
 YTom:= ComboBox1.Text;
 PChTom:= PWideChar(YTom);
 MET:= GetHardDiskSerial(PChTom);
 Label1.Caption:= 'Метка тома: '+ YTom + ':' + MET;
end;

Последний раз редактировалось kta87; 17.03.2012 в 16:00.
kta87 вне форума Ответить с цитированием
Старый 17.03.2012, 16:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Да, "PChar" нужно заменить на "PWideChar"
Или
Код:
 MET:= GetHardDiskSerialW(PChar(YTom));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2012, 16:30   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то в первом примере надо было просто дать символ функции.
Код:
MET:= GetHardDiskSerial(YTom[1])
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для решения проблемы конверсии типов из разных сред нужно крохотнуюю DLL Psionic Помощь студентам 12 10.02.2010 21:22
Задание с преобразованием текста. 2face2 Помощь студентам 1 24.01.2010 17:47
подскажите с преобразованием Mikimaus Общие вопросы C/C++ 1 22.11.2009 00:32
Запись в файл с преобразованием DenisVoronov Помощь студентам 8 05.05.2009 19:48
помогите с преобразованием типов ~LiS~ Общие вопросы Delphi 5 26.05.2008 21:59