Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > unicode в проекте


Автор: chikistbuch 30.5.2012, 20:41
Приложение пишу на Windows 7 - вопросов нет. Попробовал посмотреть как оно будет работать на XP. На виртуальную машину (VMware) с XP SP 3 переношу приложение и сталкиваюсь с неверным отображением символа (стрелка в заголовке DBGrid'a).

Windows 7:
http://s1.ipicture.ru/

Windows XP:
http://s1.ipicture.ru/

Delphi XE2. Настройки DBGrid'a:
http://s1.ipicture.ru/

Вот код вывода стрелки:
Код

procedure DrawGridTitle(Column: TColumn; ARect: TRect); //закрашивает заголовок колонки Column и поверх пишет текст
var
  title: string;
begin

      SetRect(ARect, ARect.Left, 0, ARect.Right, ARect.Bottom);

      InflateRect(ARect, -2, -2); { Поправка на окантовку Titles }
      with form1.DBGrid1.Canvas do begin
        if Column.Index=order_n then begin //если сортируем по этой колонке то:
          if updown then title:='↓' else title:='↑'; //рисуем стрелку
          Column.Title.Font.Style:=[fsBold];//делаем название колонки жирным шрифтом
        end;

        title:=title+Column.Title.Caption;

        if filteredColumn(Column.Title.Caption) then title:=title+' *';

        DrawText(Handle, PChar(title), -1, ARect, DT_LEFT)
      end;
end;


Как это исправить? Спасибо.

Автор: drkot 31.5.2012, 23:12
Цитата

Как это исправить? Спасибо.


использовать одинаковые шрифты

Автор: Akella 1.6.2012, 07:29
лучше рисовать там треугольничег, как это сделано во всех гридах

Автор: chikistbuch 1.6.2012, 09:34
Цитата(Akella @  1.6.2012,  07:29 Найти цитируемый пост)
лучше рисовать там треугольничег, как это сделано во всех гридах

а где взять изображение этого треугольника??

Автор: drkot 1.6.2012, 13:14
в системном шрифте

Автор: chikistbuch 1.6.2012, 14:07
Цитата(drkot @  1.6.2012,  13:14 Найти цитируемый пост)
в системном шрифте

а подробнее, что за шрифт и как символ от туда вытащить

Автор: drkot 1.6.2012, 15:43
Цитата

а подробнее, что за шрифт и как символ от туда вытащить


мне сложно объяснить, так как при работе со шрифтами действует правило "не верь глазам своим"
вот на пример  текст отображаемый в инспекторе объекта (на скрине)


Автор: drkot 1.6.2012, 15:44
а вот как это выглядит в "жизни"

Автор: chikistbuch 1.6.2012, 15:57
спасибо, буду пробовать

Автор: Akella 1.6.2012, 19:38
в интернете полно картинок

Автор: chikistbuch 1.6.2012, 21:58
Цитата(Akella @  1.6.2012,  19:38 Найти цитируемый пост)
в интернете полно картинок

я бы хотел выводит как текст
Код

DrawText(Handle, PChar(title), -1, ARect, DT_LEFT)

и не загонятся отрисовкой изображения

Автор: drkot 4.6.2012, 22:41
chikistbuch, в разных системах разные шрифты по умолчанию стоят, в этом и сложность, так как под одним номером находятся разные графические элементы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)