Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

Нижние индексы и греческий шрифт.   Найти похожие ветки 

 
Lebedev   (2007-11-06 14:17) [0]

Здравствуйте!
Подскажите пожалуйста компонент или как сделать, чтобы в проекте можно было у букв ставить нижние индексы и использовать буквы греческого алфавита.
Спасибо!


 
Amoeba ©   (2007-11-06 14:41) [1]

http://www.tmssoftware.com/
THTMLabel и еще ряд компонент начинающихся с THTML
TRTFLabel

По отдельности компоненты без исходников бесплатны.


 
Lebedev   (2007-11-06 15:26) [2]

А после установки компонента в среду Delphi, сам компонент можно создавать динамически?


 
AlexanderMS ©   (2007-11-06 15:27) [3]

TNTUnicodeControls - бесплатны полностью - и использовать Юникод (там, если я не ошибаюсь, нижние индексы есть).

Ещё есть модули ExprDraw и ExprMake Григорьева Антона. Их также можно найти.


 
AlexanderMS ©   (2007-11-06 15:29) [4]


> ExprDraw и ExprMake Григорьева Антона.

Но они уже на Canvas выводят.


 
Amoeba ©   (2007-11-06 15:43) [5]


> Lebedev   (06.11.07 15:26) [2]
>
> А после установки компонента в среду Delphi, сам компонент
> можно создавать динамически?

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


 
Amoeba ©   (2007-11-06 15:47) [6]

Только тег для форматирования придется прописывать самому в коде. Если использовать HTML -компонент, об этом см. справку по miniHTML http://www.tmssoftware.com/minihtml.htm


 
Lebedev   (2007-11-06 16:46) [7]

Спасибо большое всем за советы!

>TNTUnicodeControls - бесплатны полностью - и использовать Юникод (там, если я не ошибаюсь, нижние индексы есть).

А этот компонент тоже на сайте http://www.tmssoftware.com/ находится?
И что значит "использовать Юникод"? Для чего?


 
Amoeba ©   (2007-11-06 17:00) [8]


> Спасибо большое всем за советы!
>
> >TNTUnicodeControls - бесплатны полностью - и использовать
> Юникод (там, если я не ошибаюсь, нижние индексы есть).
>
> А этот компонент тоже на сайте http://www.tmssoftware.com/
> находится?
> И что значит "использовать Юникод"? Для чего?

Нижних индексов в юникоде нет. Верхние - только 2 и 3, включенные в шрифты. Смешать разные шрифты в TNTUnicodeControls вроде-как не получится.

THTMLabel и иже с ним позволяют смешивать разные шрифты и делать любые индексы, хоть верхние, хоть нижние за счет уменьшения размера шрифта и положения символов выше или ниже линии строки.


 
AlexanderMS ©   (2007-11-06 18:42) [9]


> Нижних индексов в юникоде нет. Верхние - только 2 и 3, включенные
> в шрифты.

Как это так?
Таблица символов -> Arial Unicode MS
Вот, есть. И даже в кружочках есть.


 
Lebedev   (2007-11-06 20:12) [10]

Что ты вы меня запутали...
То есть какой мне компонент нужен, для решения моей задачи?


 
Amoeba ©   (2007-11-06 20:27) [11]


> у букв ставить нижние индексы и использовать буквы греческого
> алфавита.

Выбирай соответствующий задаче от TMS Software.


 
Однокамушкин   (2007-11-07 14:52) [12]

Вот ещё какой-то на ту же тему http://www.megalib.com/books/461/treasury/mlabel.htm
Сам не скачивал и не пробовал, просто на своей помойке ссылку нашёл


 
AlexanderMS ©   (2007-11-07 15:42) [13]


> То есть какой мне компонент нужен, для решения моей задачи?

Что за программа? По физике, наверное? Куда она должна выводить результат? Если всё равно, то можно вообще шрифт 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;


 
Lebedev   (2007-11-08 08:48) [14]

>THTMLabel и иже с ним позволяют смешивать разные шрифты ...
THTMLabel и "что" с ним? Я не понял, что вы имели ввиду.

>Вот ещё какой-то на ту же тему >http://www.megalib.com/books/461/treasury/mlabel.htm

Большое спасибо! Посмотрю.


 
Lebedev   (2007-11-08 12:49) [15]

>Вот ещё какой-то на ту же тему http://www.megalib.com/books/461/treasury/mlabel.htm

Я скачал этот файлик. Но как установить компонент?
Я попутался через пункт components/Install Component, написало, что установился, а сам компонент я найти не могу. Подскажите как его найти или правильно установить, пожалуйста.


 
Однокамушкин   (2007-11-08 12:56) [16]

А как вы его вообще скачали? Я не могу скачать, говорит, что ссылка битая...


 
Anatoly Podgoretsky ©   (2007-11-08 15:29) [17]

> Lebedev  (08.11.2007 12:49:15)  [15]

А посмотреть текст процедуры Register?


 
Lebedev   (2007-11-10 09:35) [18]

>А как вы его вообще скачали? Я не могу скачать, говорит, что ссылка битая...

Да, там ссылка битая. Я просто ввёл в яндексе название компонента и на второй странице где-то был этот компонент с другого сервера, от туда и скачал.


 
Lebedev   (2007-11-10 09:38) [19]

>А посмотреть текст процедуры 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:51) [20]

> Что за программа? По физике, наверное? Куда она должна выводить результат?

Программа, да, по физике. И мне надо быводить не только греческие буквы, но и нижние индексы. А располагаться это должно на RadioGroup, которая находится на Panel, ну и они на Form"е находятся.


 
AlexanderMS ©   (2007-11-10 16:38) [21]

Не мучайтесь!

> Программа, да, по физике. И мне надо быводить не только
> греческие буквы, но и нижние индексы. А располагаться это
> должно на 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);

и т. п.

Вот нижний индекс.
То же для греческих букв. Их просто находим в таблице и берём код.


 
Однокамушкин   (2007-11-11 08:42) [22]


> Lebedev   (10.11.07 09:38) [19]
> Проблема в том, что такой процедуры в файле нет. К сожалению,
>  здесь нельзя привести весь код (ограничение на длину сообщения).

Сделайте такой модуль:

unit MathLabelInst;

interface

uses
 Classes, MathLabel;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("MathLabel", [TMathLabel]);
end;


И устанавливайте его


 
Lebedev   (2007-11-15 07:38) [23]

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

Но вопрос! Я установил HtmlLabel. Как индексы нижние делать я разобрался. Но как в нём сделать греческий шрифт? Нужны буквы альфа, бетта, лямбда.
Подскажите пожылуйста!


 
Lebedev   (2007-11-15 08:33) [24]

Во всём разобрался. Всем большое спасибо.

Греческий шрифт возможен в компоненте RTFLabel, при выборе шрифта Symbol.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.081 c
4-1179818967
Klopan
2007-05-22 11:29
2007.12.09
Службы


4-1179846147
Alek Arbuzov
2007-05-22 19:02
2007.12.09
Как программно определить выполняемое сейчас место в коде?


8-1170689788
dzds
2007-02-05 18:36
2007.12.09
помогите найти базу типа CDDB


15-1194613990
авыф
2007-11-09 16:13
2007.12.09
как сделать так, чтобы контролы, расположенные на форме нельзя


3-1185870320
align
2007-07-31 12:25
2007.12.09
Fast Report 4





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский