Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2012, 21:12
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию Кодировка в Label

Подскажите как изменить кодировку текста в Label, исходный текст похоже в кодировке UTF-8 а вот как его отобразить в Label не знаю, высвечивается как знаки вопроса
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #2  
Старый 13.04.2012, 21:32
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

UTF8ToAnsi?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 13.04.2012, 21:42
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

Все равно вылазит ?????? ??????
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #4  
Старый 13.04.2012, 21:51
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

У меня Indy 10

Запрос составляется так
Цитата:
PostVK:=TStringList.Create;
sig:=stroka1+'api_id='+idp+'format=XMLmethod=getUs erInfoExuids='+stroka1+'v=3.0'+stroka3; //подпись запроса + секрет сессии
sig:=md5(sig);
PostVK.Clear;
PostVK.Add('api_id='+idp);
PostVK.Add('v=3.0');
PostVK.Add('method=getUserInfoEx');
PostVK.Add('format=XML');
PostVK.Add('uids='+stroka1);
PostVK.Add('sid='+stroka2);
PostVK.Add('sig='+sig);
logVK:=IdHTTP1.Post('http://api.vk.com/api.php',PostVK);
PostVK.Free;
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #5  
Старый 13.04.2012, 21:55
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Где и что присваивается к TLabel?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 13.04.2012, 21:59
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

Пишу всю функцию

Цитата:
procedure TForm1.btn7Click(Sender: TObject);
var jpg:TMemoryStream; HTTP:TIdHTTP; img:string;
logVK:WideString;
begin
PostVK:=TStringList.Create;
sig:=stroka1+'api_id='+idp+'format=XMLmethod=getUs erInfoExuids='+stroka1+'v=3.0'+stroka3; //подпись запроса + секрет сессии
sig:=md5(sig);
PostVK.Clear;
PostVK.Add('api_id='+idp);
PostVK.Add('v=3.0');
PostVK.Add('method=getUserInfoEx');
PostVK.Add('format=XML');
PostVK.Add('uids='+stroka1);
PostVK.Add('sid='+stroka2);
PostVK.Add('sig='+sig);
logVK:=IdHTTP1.Post('http://api.vk.com/api.php',PostVK);
PostVK.Free;

img:=Pars(logVK,'<user_photo','</user_photo>',0);
lbl8.Caption:=Pars(logVK,'<user_name','</user_name>',0);
jpg:=TMemoryStream.Create;
img1.Picture.Graphic:=TJPEGImage.Create;
jpg.Position:=0;
IdHTTP1.Get(img,jpg); //адрес jpg картинки
jpg.Position:=0;
img1.Picture.Graphic.LoadFromStream(jpg);
jpg.Free;

end;

вот идет присвоение lbl8.Caption:=Pars(logVK,'<user_name','</user_name>',0);
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #7  
Старый 13.04.2012, 22:02
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Чтобы отобразить unicode в label вам нужно либо самому написать новый компонент с поддержкой оного, либо взять уже готовый (если такой есть), либо перейти на Delphi 2009 (или выше).
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #8  
Старый 13.04.2012, 22:09
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

Просто если открываю свой проект в Delphi XE то прийдется переделывать половину функций, да и Delphi XE мне не понравился по дизайну, старенький Delphi 7 удобнее в 100500 раз
__________________
А это мое скромное радио... ((:FunFM)

Последний раз редактировалось metra52, 13.04.2012 в 22:11.
Ответить с цитированием
  #9  
Старый 13.04.2012, 22:26
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

В Delphi XE проблема в том что я читаю из INI файла строку с URL адресом в переменную типа PChar, в Delphi 7 что PAnsiChar что PWideChar одно и тоже а в Delphi XE ругается на это и если указать тип PAnsiChar то строка вообще не считывается
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #10  
Старый 13.04.2012, 22:31
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от metra52
вот идет присвоение lbl8.Caption:=Pars(logVK,'<user_name','</user_name>',0);
И что должно означать Pars?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 13.04.2012, 22:32
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

Функция выбирает нужное значение просто из всего остального

Цитата:
function Pars(str:String;str_begin:String;str_end:String;co unt:integer):String;
begin
Delete(str,1,pos(str_begin,str)+length(str_begin)) ;
Delete(str,pos(str_end,str)-count,length(str));
Pars:=str;
end;
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #12  
Старый 13.04.2012, 22:33
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от metra52
... в Delphi 7 что PAnsiChar что PWideChar одно и тоже...
Совсем нет.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 13.04.2012, 22:35
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от metra52
Функция выбирает нужное значение просто из всего остального
Если строка в UTF8, то эта функция спятит.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #14  
Старый 13.04.2012, 22:38
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

функция не спятила, я уже проверил, просто когда я из файла получаю текст он до этого записывался в PChar и в результате оказывался PWideChar и когда я его загонял в следующую функцию, он там как то сам преобразовывался в PAnsiChar, а вот Delphi XE такое не дает сделать, в результате чего у меня из файла читается только 1 символ и все а не вся строка

чтение происходит так

Цитата:
IniFile := TIniFile.Create(GetCurrentDir+'\sett.ini'); { Создали экземпляр объекта }
url:=PAnsiChar(IniFile.ReadString('settings','url' ,'')); { Читаем имена и значения }
IniFile.Free;


а раньше

Цитата:
IniFile := TIniFile.Create(GetCurrentDir+'\sett.ini'); { Создали экземпляр объекта }
url:=PChar(IniFile.ReadString('settings','url','') ); { Читаем имена и значения }
IniFile.Free;

и все
точный тип не указывал
__________________
А это мое скромное радио... ((:FunFM)
Ответить с цитированием
  #15  
Старый 13.04.2012, 22:41
metra52 metra52 вне форума
Прохожий
 
Регистрация: 04.05.2011
Сообщения: 20
Версия Delphi: Delphi 7 Lite
Репутация: 10
По умолчанию

Все проблема решилась, сделал вот так

Код:
IniFile := TIniFile.Create(GetCurrentDir+'\sett.ini'); { Создали экземпляр объекта }
  url:=PAnsiChar(AnsiString(IniFile.ReadString('settings','url',''))); { Читаем имена и значения }
  IniFile.Free;

Админ: Пользуемся тегами по назначению! Цитата прездназначена для цитирования. Для кода используем тег CODE!
__________________
А это мое скромное радио... ((:FunFM)

Последний раз редактировалось Admin, 14.04.2012 в 11:01.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025