Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Segoe MDL2 Assets, символ 0xE713  [new]
luigi
Member

Откуда: СССР (РФ-ЛНР)
Сообщений: 391
Добрый день.

Возможен ли вывод сабжа на канву (TCanvas) средствами VCL (можно WinAPI)? Никаких сторонних компонентов и библиотек.
Или только через предварительную конвертацию в растр с потерей качества и по-старинке?

PS Delphi7, задача одним символом не ограничивается, но сейчас важно найти решение...
30 июл 20, 12:52    [22175637]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
Cobalt747
Member

Откуда:
Сообщений: 2181
luigi,

TCanvas.TextOut Method
30 июл 20, 14:12    [22175704]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26714
Можно и WinAPI. У канвы есть handle.
30 июл 20, 14:51    [22175723]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50816

luigi
Delphi7

DrawTextW(), TextOutW().

Posted via ActualForum NNTP Server 1.5

30 июл 20, 14:53    [22175725]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
luigi
Member

Откуда: СССР (РФ-ЛНР)
Сообщений: 391
Оба приведенных метода принимают для вывода строку (+доп. параметры - не суть).
Тогда вопрос трансформируется в - а как мне такой символ засунуть в эту самую строку?

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  PaintBox1.Canvas.TextOut(0, 0, '0xE713'); ???
end;


int DrawTextW(
  HDC     hdc,
  LPCWSTR lpchText,
  int     cchText,
  LPRECT  lprc,
  UINT    format
);


Дока
lpchText
A pointer to the string that specifies the text to be drawn. If the nCount parameter is -1, the string must be null-terminated.

Мне нужен метод, куда я смогу передать код символа. Да еще и двухбайтовый. Нет?
30 июл 20, 15:31    [22175761]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11971
var
  LStr: WideString;
begin
  LStr := WideChar($E713);
  TextOutW(Canvas.Handle, 10, 100, PWideChar(LStr), Length(LStr));
end;
30 июл 20, 15:37    [22175765]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50816

luigi
Оба приведенных метода принимают для вывода _*строку*_ (+доп. параметры - не суть).

Во-первых, это не методы, а функции.
Во-вторых, они принимают на вход не строку, а указатель на массив символов.
В-третьих, это указатель не на AnsiChar, а на WideChar.

Намёк достаточен?..

Posted via ActualForum NNTP Server 1.5

30 июл 20, 15:48    [22175772]     Ответить | Цитировать Сообщить модератору
 Re: Segoe MDL2 Assets, символ 0xE713  [new]
luigi
Member

Откуда: СССР (РФ-ЛНР)
Сообщений: 391
_Vasilisk_
var
  LStr: WideString;
begin
  LStr := WideChar($E713);
  TextOutW(Canvas.Handle, 10, 100, PWideChar(LStr), Length(LStr));
end;



Точно!
Спасибо Dimitry Sibiryakov и _Vasilisk_.
Все получилось.
30 июл 20, 15:51    [22175775]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить