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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2009, 15:29   #1
Inqizitor
Новичок
Джуниор
 
Регистрация: 04.08.2009
Сообщений: 6
По умолчанию Помогите решить проблему с WideChar

Есть такая строка:
proxyserver := proxyinfo^.lpszproxy;
Edit5.Text:=proxyserver;
Тип proxyserver: string;
lpszproxy: widechar.
Edit присваиваем Widechar. В результате в Edit получаются квадраты. Как сделать так, чтобы отображалось нормально? Функцию типа Widechartostr нашел.
В примере сказано, что:
Код:
var
  wideCharArray : array[0..5] of WideChar;
  myString      : String;
begin
  // Set up our WideChar array
  wideCharArray[0] := 'H';
  wideCharArray[1] := 'e';
  wideCharArray[2] := 'l';
  wideCharArray[3] := 'l';
  wideCharArray[4] := 'o';
  wideCharArray[5] := #0;   // Terminates WideChar strings

  // Copy to a normal string
  myString := WideCharToString(wideCharArray);

  // Show what the copy gave
  ShowMessage(myString);
end;
У меня же ситуация другая - элемент массива - строковый.
Помогите, пожалуйста решить проблему эту.

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

А почему у меня все прекрасно работает?
Код:
  // Copy to a normal string
  myString := wideCharArray;
Вот с этим все нормально.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2009, 15:42   #3
Inqizitor
Новичок
Джуниор
 
Регистрация: 04.08.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А почему у меня все прекрасно работает?
Код:
  // Copy to a normal string
  myString := wideCharArray;
Вот с этим все нормально.
Да. В примере пишет Hello. Как раз пример работает .
У меня на вариант:
Buffer2[0]:=proxyinfo^.lpszproxy; где Buffer2[0]:array[0..5] of WideChar - ругается как "Incompatible types: 'Char' and 'PWideChar'".
Inqizitor вне форума Ответить с цитированием
Старый 04.08.2009, 15:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так обьяви Buffer2 как PWideChar
или WideString попробуй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2009, 15:58   #5
Inqizitor
Новичок
Джуниор
 
Регистрация: 04.08.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну так обьяви Buffer2 как PWideChar
или WideString попробуй.
Итак, результат:
Incompatible types: 'PWideString' and 'PWideChar'
Incompatible types: 'Array' and 'PWideChar'
- это когда Buffer2 как PWideString.

Incompatible types: 'Array' and 'PWideChar'
- это когда Buffer2 как PWideChar.

Incompatible types: 'Array' and 'WideString'
- это когда Buffer2 как WideString.
Inqizitor вне форума Ответить с цитированием
Старый 04.08.2009, 16:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

lpszproxy какого типа?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2009, 16:40   #7
Inqizitor
Новичок
Джуниор
 
Регистрация: 04.08.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
lpszproxy какого типа?
System.PWideChar
Inqizitor вне форума Ответить с цитированием
Старый 04.08.2009, 16:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так обьяви Buffer2:PWideChar И присваивай
Код:
Buffer2:=proxyinfo^.lpszproxy;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2009, 16:55   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Какая версия Дельфи? Не забываем что с 2009 обычные строки и чары теперь wide.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 04.08.2009, 16:56   #10
Inqizitor
Новичок
Джуниор
 
Регистрация: 04.08.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну так обьяви Buffer2:PWideChar И присваивай
Код:
Buffer2:=proxyinfo^.lpszproxy;
Так оно работает, спасибо ... Но:
var
Buffer4:PWideChar;
proxyserver:string;
.
.
Buffer4:=proxyinfo^.lpszproxy;
proxyserver := WideCharToString(Buffer4);
Edit5.Text:=proxyserver;

Всё компилируется, но в окне Edit выводится "ㄱ⸴㈱⸷㐲⸶㘳㠺㠰0ㄱ⸴㈱⸷㐲⸶㘳㠺㠰0₰" вместо цифр и букв.

Цитата:
Сообщение от mutabor Посмотреть сообщение
Какая версия Дельфи? Не забываем что с 2009 обычные строки и чары теперь wide.
2009 версия. А что тогда делать?

Последний раз редактировалось Inqizitor; 04.08.2009 в 17:20.
Inqizitor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ РЕШИТЬ ПРОБЛЕМУ !!!!!!!!!!!! ЛиЛу Помощь студентам 5 29.12.2008 15:36
Помогите решить проблему nismo Microsoft Office Excel 7 12.09.2008 08:59
помогите решить проблему 1234 Общие вопросы Delphi 2 04.07.2008 11:52
помогите решить проблему ... alexey7 Microsoft Office Excel 2 16.10.2007 13:25