Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нижние индексы и греческий шрифт. [D7, XP]


Страницы:   1 2

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, сам компонент
> можно создавать динамически?

А почему нельзя? Конечно, можно.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо