Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2

баги kolnmck 288 [Delphi, Windows]


Ruzzz   (08.09.09 15:51[20]

Под Delphi 2006/Turbo Delphi при использовании UNICODE_CTRLS
в unit KOLXPMenus;
выдает ошибку
[Pascal Warning] KOLXPMenus.pas(225): W1044 Suspicious typecast of string to PWideChar

вот это участок кода:
function TXPMenu.TextExtent(const Text: string): TSize;
var
 DC: HDC;
begin
 DC := CreateCompatibleDC( 0 );
 SelectObject(DC,FFont.Handle);
 GetTextExtentPoint32( DC, PKOLChar(Text), Length(Text), Result); // <<<
 DeleteDC(DC);
end;

Text нужно изменить с string на KOLString?


Ruzzz   (08.09.09 16:36[21]

проблемы в KOLReport c юникодом

добавил в KOL_unicode.inc строку PDevMode = PDeviceModeW;
и изменил немного эти файлы:
KOLReport, KOLPrinters, KOLPageSetupDialog, KOLPrintCommon
вот: http://narod.ru/disk/12928534000/KOL_printers.7z.html

У меня такой вопрос, получается что и в MCKReport репорт нужно бы string поменять? но это же IDE, как сама IDE нормально будет это воспринимать? И что если ansi оставить, что тогда будет заносится в свойства при включенном юникоде? чета я не пойму :)


Ruzzz   (08.09.09 17:00[22]

KOLRarProgBar не поддерживает метод SetUnicode, потому что наследуется не от TControl а от TObj


MTsv DN   (08.09.09 22:24[23]

> Text нужно изменить с string на KOLString?
Ну, уж тогда:
function TXPMenu.TextExtent(const Text: KOLString): TSize;
var
DC: HDC;
begin
DC := CreateCompatibleDC( 0 );
SelectObject(DC,FFont.Handle);
GetTextExtentPoint32( DC, PKOLChar(Text), Length(Text) * SizeOf(KOLChar), Result);
DeleteDC(DC);
end;

При условии, что где-то объявлено, что GetTextExtentPoint32 при UNICODE_CTRLS = GetTextExtentPoint32W и GetTextExtentPoint32А в ином случае...


MTsv DN   (08.09.09 22:26[24]

> KOLRarProgBar не поддерживает метод SetUnicode, потому что наследуется не от TControl а от TObj
В то время когда этот компонент писался KOL не не держал еще UNICODE. А нафига он Вам ваще нужен?


MTsv DN   (08.09.09 22:30[25]

2 Ruzzz
Почти ВСЕ КОМПОНЕНТЫ надо подправлять под UNICODE_CTRLS. Лично у меня есть некоторые правленные, но их мало.

Если склероз не изменяет, то 100%, из "серьезных" для меня, только ATL. Кое-какие из новосозданных SATabs, QProgressBar и некоторые другие... Т.к. не надо флудить по каждому компоненту.

З.Ы. А с KOLReport, кажись и без юникода траблов хватало...


MTsv DN   (08.09.09 22:33[26]

Дополнение
Там не только надо юникод править. Там и кое-что, скажем так, после изменений в "ядре" KOL'а надо править, и поддержку новых версий Дельфи тоже надо править.

Никто не будет этим заниматься направленно. По мере необходимостей будут появляться некоторые правленные версии...


Ruzzz   (09.09.09 11:33[27]

Я понял, действительно для юникода многое не готово, но по мере использования буду помечать это все и потом переодически постить здесь.


Vladimir Kladov ©   (09.09.09 22:45[28]

Хорошо бы еще потом список исправлений одним файлом (хотя бы текстовым), или ссылку на место с правленым архивом. Большая просьба (я надеюсь, все в порядке, но все же): по возможности не переставляйти местами блоки кода - чтобы можно было сравнивалкой изучать различия. (А вот мне UNICODE практически редко-редко нужен).


Ruzzz   (09.09.09 23:50[29]

По моему просто нужно пройтись по всем модулям и заменить PChar на PKOLChar и String на KOLString, а также все то что берется из windows внести также и в unicode.inc


L'Autour   (10.09.09 06:00[30]

Тогда желательно еще  в функциях по обработке строк, которые специально работают с PChar и String как с ANSI сделать замену на PAnsiChar и AnsiString.


Vladimir Kladov ©   (10.09.09 16:50[31]

2 Ruzzz - если бы можно было все заменить на KOLChar, мы бы это 2 года назад проделали. Каждый раз надо смотреть и проверять, и заменять не бездумно, а править окружающий код. Так что дальнейшие изменения по unicode делаются по мере надобности, и в основном теми, кому надобно. С последующим слиянием.


Ruzzz   (10.09.09 17:36[32]

Да, я это понимаю. Я не правильно выразился, конечно не все так просто, нужна проверка.


Soloton   (17.09.09 10:47[33]

Прошу прощения за оффтоп, но всё же:
svn://nekki.ru/kolnmck
уже не работает?


Демьян   (17.09.09 21:23[34]

Нормальный такой спам, мутировавший...


intlex   (29.12.09 01:22[35]

может и не баг, но замечание

при использовании TKOLIB, в частности делаем backup базы по Firebird 2.1
в методе TIBBackupService.SetServiceStartOptions после вызова GetConnectString следует в названии БД оставить только путь, а имя сервера удалить, иначе вызовет ошибку:
gbak: ERROR:connection rejected by remote interface
gbak:Exiting before completion due to errors


Vladimir Kladov ©   (29.12.09 19:14[36]

KOLIB не входит в KOL Как основная часть, это дополнительный компонент. Я так его ни разу и не загружал.


Dimaxx ©   (05.01.10 02:21[37]

Обнаружена проблемка с mainmenu в турбо-дельфи.

В design-time при изменении меню, а также вставке из буфера обмена готового меню из другого проекта, ни меню, ни его пункты вообще не отображаются на форме. Более того, при вставке из буфера обмена меню не попадает в inc-файл, потому как вставив меню и сохранив проект, после компиляции запуская полученный exe и в нем меню не отображается. Помогает только добавление и удаление пункта меню после вставки из буфера обмена. После этого меню нормально создается в exe.

Были еще проблемы с жуткими тормозами от постоянной отрисовки некоторых сторонних контролов, но это успешно решили, а также переделано изменение кода не в файле, а прямо в редакторе. Осталась проблема с меню - бьемся весь день - не отображается, собака. Хотя вплоть до Д7 нормально отображалось.

Также невозможно увидеть форму старого проекта (например из Д5/Д7) при загрузке его в турбо-Д. Приходится старые проекты переделывать ручками. Иногда ТД сыплет ошибками, что не знает что такое new, create и прочие очевидные вещи, но компилирует нормально... Если честно, мне эта "лицензионная халява" начинает надоедать своими проблемами.


mdw   (18.03.10 12:22[38]

Небольшая правка TIcon.

procedure TIcon.LoadFromStream(Strm: PStream);
...
 function ReadIcon : Boolean;
....
        if BIH.biBitCount = 16 then
      begin
        if BIH.biCompression = BI_BITFIELDS then Stream2Stream(Mem, Strm, 12)
        else
          for I := 0 to 2 do
          begin
            J := InitColors[ I ];
            Mem.Write( J, 4 );
          end;
      end;

Жирным - то что добавил. Без этого исправления пропадает палитра, ну и картинка сдвигается.


Страницы: 1 2 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо