Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VirtualTreeView + unicode... VirtualTreeView + unicode  
:(
    Опции темы
Erazer
Дата 27.8.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Как заставить VirtualTreeView отображать Amélie а не Amelie ? вместо того чтобы рисовать то что ему передано, как tntedit например, он выводит обрезанную версию "Amelie"
PM MAIL   Вверх
VICTAR
Дата 27.8.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Попробуй поставить у дерева шрифт Arial Unicode MS
PM MAIL   Вверх
Erazer
Дата 27.8.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



ставил до ж.. - ниче не меняется  smile 

Это сообщение отредактировал(а) Erazer - 27.8.2008, 19:24
PM MAIL   Вверх
VICTAR
Дата 27.8.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



сделай тестовый проект. посмотрим, что можно сделать
PM MAIL   Вверх
Erazer
Дата 27.8.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



user posted image
http://rapidshare.com/files/140605965/Fig_1.4.rar.html

Это сообщение отредактировал(а) Erazer - 27.8.2008, 22:31
PM MAIL   Вверх
VICTAR
Дата 27.8.2008, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Да, есть проблема.. 
Единственное что пока приходит в голову
Код

procedure TfrmMain.VTAfterCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellRect: TRect);
begin
  if Column = 1 then
  begin
    TargetCanvas.Font.Name := 'Arial Unicode MS';
    TargetCanvas.FillRect(CellRect);
    Windows.DrawTextW(TargetCanvas.Handle, PWideChar(DefaultValues[Node.Index]),
      -1, CellRect, DT_SINGLELINE);
  end;
end;

PM MAIL   Вверх
Erazer
Дата 28.8.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



что за DefaultValues ? ты кстати первый кто признал что проблема существует, все остальные крутят пальцем у виска, и говорят что компонент поддерживает юникод, но никто не говорит как сделать чтобы это прочувствовать  smile зато все умные и все знают что поддерживает  smile 

Это сообщение отредактировал(а) Erazer - 28.8.2008, 01:06
PM MAIL   Вверх
Erazer
Дата 28.8.2008, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



таааак.... господа... как оказалось, причина до банального проста.... я просто тупорылый парагвайский осел  smile 
я прежде чем присвоить текст полям узла, сначала вгоняю его в переменные, а потом уж передаю узлу,так вот, переменные имели тип string..... как только я поставил widestring, я получил искомое "Amélie" и прочее типа "Comptine d'une Autre Été: L'Après Midi" осталась только 1 проблема, как корректно отобразить в VirtualTraaView русский текст в непонятной кодировке, который выглядит как "Ëîëèòà" - это "Лолита" так выглядит... думаете это кракозябры ? как бы не так!  если ЭТО вставить во всем известный Shtirlitz, то получим то же "Лолита", но никак не могу выяснить что за кодировка и как ее заставить выглядеть русскими буквами....
PM MAIL   Вверх
Poseidon
Дата 28.8.2008, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



правка реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage\1252 = c_1251.nls с последующей перезагрузкой помогает?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Erazer
Дата 28.8.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



не. перепробовал только что все шрифты... нифига, все равно кракозябры, хотя если вставить в штирлица все равно декодируется и превращается в русские буквы :( текст в юникоде,тк если вставить его в блокнот и попытаться сохранить он перудпреждает что текст в юникоде, а если потом открыть в фаре или чем-то подобном то  по нажатию на F8 вместо " ╦юышЄр" увидим то же "Лолита" уж нету слов  smile 

Это сообщение отредактировал(а) Erazer - 28.8.2008, 19:02
PM MAIL   Вверх
Erazer
Дата 28.8.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



прогнал только что "Îðèåíòàöèÿ Ñåâåð" и "Ориентация Север" через ord () получил 240+229+226+229+209+32+255+232+246+224 ну и так далее и 1088+1077+1074+1077+1057+32+1103+1080+1094 и так далее... подскажите плз о чем это говорит ?
PM MAIL   Вверх
MetalFan
Дата 28.8.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



а ты уверен, что у тебя нигде опять в обычный стринг не перегоняется?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Erazer
Дата 28.8.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



100%. CDE_Album.Text:=UTF8Decode(Album.Album); c французским и аглицким порядок, а с русским бок  smile 
PM MAIL   Вверх
Erazer
Дата 28.8.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



добрые люди подсказали что каракули "Îðèåíòàöèÿ Ñåâåð" это просто символы строки "Ориентация Север", записанные двумя байтами, т.е. байты дополненные нулем, например AnsiChar '0'=$CE -> WideChar 'Î'=$00CE вместо положенного WideChar '0'=$041E. этот вопрос решается с помощью 
Код

w:=UTF8decode(Album.Album);
Setlength(s,Length(w));
for x:=1 to Length(w) do byte(s[x]):=word(w[x]);
CDE_Album.Text :=pAnsiChar(s);
 но, теперь русские получаю вместо кракозябр, нормальный русский текст, НО,теперь косяк с французским, ему такая доработка "не по душе" и вместо Amélie получаем Amйlie, как я понимаю это потому что Unicode приводится к  Ansi ,отсюда вопрос, как сделать так чтобы и с русским порядок был и со всеми остальными языками ? 
PM MAIL   Вверх
Erazer
Дата 29.8.2008, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Рожденные стоя, на бетонный пол smile  ну, чтоб вы понимали о чем я гляньте сюды http://www.freedb.org/en/forum/read.php?1,194,194#msg-194 ,особо тронула последняя фраза: "Freedb is a community effort. If you find stuff in a wrong encoding, please re-encode it into UTF8 and submit it!
"  :lool: вот откель все проблемы с кодировками.... короч как я понял, сначала эти .....  решили использовать ISO-8859-1, потом в конце концов перешли на UTF8, и то как-то так непонятно.... И для отправки данных в FreeDB естественно использовалась и используется ISO-8859-1,но ведь в ней нет символов русского языка!!! Правильно они заменяются символами с аналогичными кодами из ISO-8859-1, отчего и получаются кракозябры при попытке отобразить их, но если получить ответ о том же французском исполнителе, то все символы французского в ISO-8859-1 присутствуют, от того и нормально отображаются без доп телодвижений. Косвенные подтверждения сего я нашел в аналогичных прогах, 1 из них до версии 9.0 включительно прекрасно отображала русские теги, а уж начиная с 10 перестала и не показывает их по сей день , как и моя до сегодня выводит кракозябры... Каково же было мое удивление когда запросив в 8 прекрасно работающей с русским, теги француза Yann Tiersen, она показала мне то же что и моя прога подруженная с русским вместо Amélie я получил Amйlie , а это получается только при 
Код
CDE_Album.Text :=TranslateString(AsciiString,cp_utf8,28591);

ну или аналогичном телодвижении как пердлагалось ранее. Отсюда вытекает тупой вопрос: можно ли как-то автоматически определять нужно ли выполнять преобразование 
Код
TranslateString(AsciiString,cp_utf8,28591);
 чтобы текст выглядел нормально, или нет... чувствую что нет, но мало ли ?  smile

Добавлено через 14 минут и 49 секунд
ISO 8859-1 (Latin-1)
    Расширенная латиница, включающая символы большинства западноевропейских языков (английский, датский, ирландский, исландский, испанский, итальянский, немецкий, норвежский, португальский, ретороманский, фарерский, шведский, шотландский (гэльский) и частично голландский, финский, французский), а также некоторых восточноевропейских (албанский) и африканских языков (африкаанс, суахили). В Latin-1 отсутствуют знак евро и заглавная буква Ÿ. Эта кодовая страница считается кодировкой по умолчанию для HTML-документов и сообщений электронной почты. Также этой кодовой странице соответствуют первые 256 символов Юникода. - почему и не возникает проблем с выводом европейских языков, а русскиго в ней и нету :(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.