Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как использовать верхние и нижние индексы?

Delphi , Компоненты и Классы , TMemo и TRichEdit

Как использовать верхние и нижние индексы?

RichEdit поддерживает верхние/нижние индексы;

Вот как это делается:

Code:

uses RichEdit;
 
procedure TForm1.Button1Click(Sender: TObject);
var
CF: TCharFormat;
begin
cf.cbSize := sizeof(cf);
cf.dwMask := CFM_OFFSET;
cf.yOffset := 70; // смещение по y; положительное/отрицательное для смещение верх/вниз
RichEdit1.Perform(EM_SETCHARFORMAT, SCF_SELECTION, integer(@cf));
end;

SCF_ALL применить ко всему тексту

SCF_SELECTION применить к веделенному тексту

SCF_WORD | SCF_SELECTION применить к выделенным словам

Взято из MSDN. Проверено на Delphi7. Это работает. Попробый сделать сам, чтобы верхние/нижние индексы имели меньший размер.

Тем более это работает в rxRichEdit.

Автор: Seti

Взято с Vingrad.ru http://forum.vingrad.ru

Code:

// yOffset values
type
  TCharacterFormat = (CFM_Superscript, CFM_Subscript, CFM_Normal);
 
procedure RE_SetCharFormat(RichEdit: TRichEdit; CharacterFormat: TCharacterFormat);
var
 // The CHARFORMAT structure contains information about
// character formatting in a rich edit control.
Format: TCharFormat;
begin
  FillChar(Format, SizeOf(Format), 0);
 with Format do
 begin
    cbSize := SizeOf(Format);
    dwMask := CFM_OFFSET;
    // Character offset, in twips, from the baseline.
   // If the value of this member is positive,
   // the character is a superscript;
   // if it is negative, the character is a subscript.
   case CharacterFormat of
      CFM_Superscript: yOffset := 60;
      CFM_Subscript: yOffset := -60;
      CFM_Normal: yOffset := 0;
    end;
 end;
 // The EM_SETCHARFORMAT message sets character formatting in a rich edit control.
// SCF_SELECTION: Applies the formatting to the current selection
Richedit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
 
// Examples:
// Beispiele:
 
// Apply Superscript to the current selection
// Markierte Zeichen hoch stellen
procedure TForm1.Button1Click(Sender: TObject);
begin
  RE_SetCharFormat(RichEdit1, CFM_Superscript);
end;
 
// Apply Subscript to the current selection
// Markierte Zeichen tief stellen
procedure TForm1.Button2Click(Sender: TObject);
begin
  RE_SetCharFormat(RichEdit1, CFM_Subscript);
end;
Взято с сайта: http://www.swissdelphicenter.ch

Код, который я предоставил, демонстрирует использование верхних и нижних индексов в контроле RichEdit в Delphi. Он использует структуру TCharFormat для настройки форматирования символов, включая смещение (yOffset), которое может быть положительным или отрицательным для достижения эффекта надстрочного или подстрочного текста.

Вот разбивка кода:

  1. Процедура Button1Click устанавливает флаг маски CFM_OFFSET в структуре TCharFormat и specifies offset value of 70, что означает, что текст будет смещен на 70 twips (единица измерения, используемая RichEdit) от базовой линии.
  2. Сообщение EM_SETCHARFORMAT отправляется в контрол RichEdit с флагом SCF_SELECTION, который применяет форматирование к текущей выборке.

Альтернативное решение, предоставленное, использует отдельную процедуру RE_SetCharFormat, которая принимает два параметра: RichEdit и CharacterFormat. Эта процедура устанавливает значение yOffset в зависимости от формата символов (надстрочный, подстрочный или нормальный) с помощью оператора switch. Результативное смещение затем применяется к контролу RichEdit с помощью сообщения EM_SETCHARFORMAT с флагом SCF_SELECTION.

Примеры, предоставленные, демонстрируют, как применять эффекты надстрочного и подстрочного текста к текущей выборке в контроле RichEdit, вызывая процедуру RE_SetCharFormat с соответствующим значением формата символов (CFM_Superscript или CFM_Subscript).

В целом, этот код предоставляет способ использования верхних и нижних индексов (надстрочного и подстрочного) в контроле RichEdit в Delphi, позволяя иметь точный контроль над форматированием текста.

В статье описывается использование верхних и нижних индексов в RichEdit-компоненте Delphi, а также примеры кода на языке Pascal для установки форматирования текста с помощью свойств yOffset и SCF_SELECTION.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TMemo и TRichEdit ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-11-30 11:42:55
2024-12-11 00:24:37/0.0069079399108887/1