![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нижние индексы и греческий шрифт. [D7, XP]
Lebedev © (2007-11-06 14:17:00)Здравствуйте!
Подскажите пожалуйста компонент или как сделать, чтобы в проекте можно было у букв ставить нижние индексы и использовать буквы греческого алфавита.
Спасибо!
Lebedev (2007-11-15 08:33:00) [1]Во всём разобрался. Всем большое спасибо.
Греческий шрифт возможен в компоненте RTFLabel, при выборе шрифта Symbol.
Lebedev (2007-11-15 07:38:00) [2]Спасибо, я всё это попробую, если не получится сделеть всё через сторонние компоненты.
Но вопрос! Я установил HtmlLabel. Как индексы нижние делать я разобрался. Но как в нём сделать греческий шрифт?Нужны буквы альфа, бетта, лямбда.
Подскажите пожылуйста!
Однокамушкин (2007-11-11 08:42:00) [3]
> Lebedev (10.11.07 09:38) [19]
> Проблема в том, что такой процедуры в файле нет. К сожалению,
> здесь нельзя привести весь код (ограничение на длину сообщения).
Сделайте такой модуль:
unit MathLabelInst;
interface
uses
Classes, MathLabel;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MathLabel', [TMathLabel]);
end;
И устанавливайте его
AlexanderMS (2007-11-10 16:38:00) [4]Не мучайтесь!
> Программа, да, по физике. И мне надо быводить не только
> греческие буквы, но и нижние индексы. А располагаться это
> должно на RadioGroup, которая находится на Panel, ну и они
> на Form'е находятся.
В TNTUnicodeControls есть и RadioGroup, и Panеl, и всё остальное.
Я бы так сделал.
Установил TTNTRadioGroup на TTNTPanel (там они так называются).
Затем открываю Таблицу Символов и ставлю шрифт Arial Unicode MS.
Выбираю Дополнительные параметры просмотра.
В поиске ввожу "subscript".
Находятся символы в нижнем индексе.
Первый - это ноль. Его код смотрим: U+2080, то есть$2080в шестнадцетиричном.
У TNTRadioGroup устанавливаем шрифт Arial Unicode MS.
И затем:
const
W = WideString(WideChar($2080));
TNTRadioGroup1.Caption := W
TNTRadioGroup1.Items.Add(W);
и т. п.
Вот нижний индекс.
То же для греческих букв. Их просто находим в таблице и берём код.
Lebedev (2007-11-10 09:51:00) [5]> Что за программа? По физике, наверное? Куда она должна выводить результат?
Программа, да, по физике. И мне надо быводить не только греческие буквы, но и нижние индексы. А располагаться это должно на RadioGroup, которая находится на Panel, ну и они на Form'е находятся.
Lebedev (2007-11-10 09:38:00) [6]>А посмотреть текст процедуры Register?
Проблема в том, что такой процедуры в файле нет. К сожалению, здесь нельзя привести весь код (ограничение на длину сообщения).
unit MathLabel;
interface
uses
Windows, Messages, SysUtils, Graphics, Classes, Controls, StdCtrls;
type
TAlignH=(taLeftJustifyH, taRightJustifyH, taCenterH, taAutoH);
TAlignV=(taTopJustifyV, taDownJustifyV, taCenterV, taAutoV);
TMathLabel = class(TCustomLabel)
private
FontList:TList;
FAlignH:TAlignH;
FAlignV:TAlignV;
FOldText:string;
RectText:TRect;
procedure ClearFontList;
procedure FillFontList;
procedure SetAlignH(Value:TAlignH);
procedure SetAlignV(Value:TAlignV);
protected
procedure PrepareDrawText;
procedure DoDrawText(var Rect: TRect; Flags: Longint);override;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
property Caption;
property Font;
property AlignH:TAlignH read FAlignH write SetAlignH;
property AlignV:TAlignV read FAlignV write SetAlignV;
end;
implementation
Я совсем не знаю как быть. Подскажите, пожалуйста.
Lebedev (2007-11-10 09:35:00) [7]>А как вы его вообще скачали? Я не могу скачать, говорит, что ссылка битая...
Да, там ссылка битая. Я просто ввёл в яндексе название компонента и на второй странице где-то был этот компонент с другого сервера, от туда и скачал.
Anatoly Podgoretsky (2007-11-08 15:29:00) [8]> Lebedev (08.11.2007 12:49:15) [15]
А посмотреть текст процедуры Register?
Однокамушкин (2007-11-08 12:56:00) [9]А как вы его вообще скачали? Я не могу скачать, говорит, что ссылка битая...
Lebedev (2007-11-08 12:49:00) [10]>Вот ещё какой-то на ту же тему http://www.megalib.com/books/461/treasury/mlabel.htm
Я скачал этот файлик. Но как установить компонент?
Я попутался через пункт components/Install Component, написало, что установился, а сам компонент я найти не могу. Подскажите как его найти или правильно установить, пожалуйста.
Lebedev (2007-11-08 08:48:00) [11]>THTMLabel и иже с ним позволяют смешивать разные шрифты ...
THTMLabel и "что" с ним? Я не понял, что вы имели ввиду.
>Вот ещё какой-то на ту же тему > http://www.megalib.com/books/461/treasury/mlabel.htm
Большое спасибо! Посмотрю.
AlexanderMS (2007-11-07 15:42:00) [12]
> То есть какой мне компонент нужен, для решения моей задачи?
Что за программа? По физике, наверное? Куда она должна выводить результат? Если всё равно, то можно вообще шрифт Arial Unicode MS поставить, да и выводить на Canvas, используя TextOutW. Я бы так сделал.
const
сAlpha : widechar = Widechar(код альфы в Юникоде - посмотрите в Таблице символов);
...
S : widestring;
begin
S = сAlpha + ' - this is alpha';
TextOutW(Canvas.Handle, 1, 1, PWideChar(S), Length(S))
end;
Однокамушкин (2007-11-07 14:52:00) [13]Вот ещё какой-то на ту же тему http://www.megalib.com/books/461/treasury/mlabel.htm
Сам не скачивал и не пробовал, просто на своей помойке ссылку нашёл
Amoeba (2007-11-06 20:27:00) [14]
> у букв ставить нижние индексы и использовать буквы греческого
> алфавита.
Выбирай соответствующий задаче от TMS Software.
Lebedev (2007-11-06 20:12:00) [15]Что ты вы меня запутали...
То есть какой мне компонент нужен, для решения моей задачи?
AlexanderMS (2007-11-06 18:42:00) [16]
> Нижних индексов в юникоде нет. Верхние - только 2 и 3, включенные
> в шрифты.
Как это так?
Таблица символов -> Arial Unicode MS
Вот, есть. И даже в кружочках есть.
Amoeba (2007-11-06 17:00:00) [17]
> Спасибо большое всем за советы!
>
> >TNTUnicodeControls - бесплатны полностью - и использовать
> Юникод (там, если я не ошибаюсь, нижние индексы есть).
>
> А этот компонент тоже на сайте http://www.tmssoftware.com/
> находится?
> И что значит "использовать Юникод"? Для чего?
Нижних индексов в юникоде нет. Верхние - только 2 и 3, включенные в шрифты. Смешать разные шрифты в TNTUnicodeControls вроде-как не получится.
THTMLabel и иже с ним позволяют смешивать разные шрифты и делать любые индексы, хоть верхние, хоть нижние за счет уменьшения размера шрифта и положения символов выше или ниже линии строки.
Lebedev (2007-11-06 16:46:00) [18]Спасибо большое всем за советы!
>TNTUnicodeControls - бесплатны полностью - и использовать Юникод (там, если я не ошибаюсь, нижние индексы есть).
А этот компонент тоже на сайте http://www.tmssoftware.com/находится?
И что значит "использовать Юникод"? Для чего?
Amoeba (2007-11-06 15:47:00) [19]Только тег для форматирования придется прописывать самому в коде. Если использовать HTML -компонент, об этом см. справку по miniHTML http://www.tmssoftware.com/minihtml.htm
Amoeba (2007-11-06 15:43:00) [20]
> Lebedev (06.11.07 15:26) [2]
>
> А после установки компонента в среду Delphi, сам компонент
> можно создавать динамически?
А почему нельзя? Конечно, можно.