Меню

Как задать цвет memo



Как в Memo вывести буквы разными цветами?

Текст в StrinGrid разными цветами
Кто нибудь может подсказать как сделать текст в StrinGrid разными цветами Пример Repeat .

Заполнение StringGrid разными цветами
У меня проблема..я пишу курсовую на delphi. Мне надо ячейки StringGrid заполнить цифрами от 1 до 25.

ListBox, вывод содержимого разными цветами/шрифтами
Надо в ListBox ввести любой список уроков, например(математика, биология и т.д.) и каждый предмет.

Как из memo вывести в listbox все слова, которые начинаются на ту же букву, что и последнее слово из memo?
и при этом сохранить порядок слов которые были в memo

Простите, я действительно ошибся. Строки можно красить TListBox, TComboBox.

Добавлено через 12 минут

Тое есть жирность, подчернутость, цвет, размер.

Полность это может выглядить так:

Это если менять цвет вручную, а как это делается програмно. И не для всей строки, а для определённого символа

Добавлено через 2 минуты

Тое есть жирность, подчернутость, цвет, размер.

Полность это может выглядить так:

В приведенном коде присваивается поочередно значение каждого свойства. Но этот текст можно кардинально сократить, воспользовавшись тем, что объекты SelAttributes и Font совместимы по типу. Поэтому можно присвоить сразу все свойства одного объекта другому:
if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
RichEdit1.SetFocus;

Запустите приложение и увидите, что вы можете менять атрибуты текста, выполняя отдельные фрагменты различными шрифтами, размерами, цветами, стилями. Устанавливаемые атрибуты влияют на выделенный текст или, если ничего не выделено, то на атрибуты нового текста, вводимого начиная с текущей позиции курсора (позиция курсора определяется свойством SelStart).

В компоненте имеется также свойство DefAttributes, содержащее атрибуты по умолчанию. Эти атрибуты действуют до того момента, когда изменяются атрибуты в свойстве SelAttributes.

Но значения атрибутов в DefAttributes сохраняются и в любой момент эти значения могут быть методом Assign присвоены атрибутам свойства SelAttributes, чтобы вернуться к прежнему стилю.

Свойство DefAttributes доступно только во время выполнения. Поэтому его атрибуты при необходимости можно задавать, например, в обработчике события OnCreate.

Вот я нашел в инете код может вам пригодится:

Источник

Как задать цвет memo

Простенький вопрос: как поменять цвет шрифта в Memo, но не у всего, а только у определенных строк? А то когда меняешь Font.Color, цвет меняется у вего текста в Memo. В RichEdit это можно сделать легко, а в Memo?


la ( 2001-12-28 16:49 ) [1]

У Memo — никак.
Для этих целей следует все-таки использовать RichEdit


Alx2 ( 2001-12-29 08:27 ) [2]

sergeant, лови!

type
TMyMemo = class(TMemo)
property Font;
end; // Это «рассекречивает» свойство Font
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyMemo(Memo1).font.Color := clRed;
end;


Alx2 ( 2001-12-29 08:28 ) [3]

Ребята, прошу прощения, это задачи не решает, конечно!
Сколько раз себе говорил: «читай вопрос полностью»

Читайте также:  Как перекрасить волосы фиолетовым цветом


MBo ( 2001-12-29 09:39 ) [4]

Привет всем 8)
У меня вопрос по теме:
я в RichEdit-e могу изменять цвет каждой строки и фона, но вот проблема :
как сделать одну часть строки одного цвета, а другую другого ?
Делала так:

RichEdit1.SelAttributes.Color := clRed;
//RichEdit1.Lines.Add(Name + «: «);

При добавлении строки способом RichEdit1.Lines.Add в её конец ставится нуль-терминатор, от которого избавиться, использую метод Add, нельзя. ну то есть у строки его убрать можно наверное, но при следующем RichEdit1.Lines.Add(str); str всё равно будет на след. строке.
Я пробовала изголяться следующим образом:

function TForm1.test(col: integer; str1: string): string;
begin
RichEdit1.SelAttributes.Color := Col;
Result:=str1;
end;

.
RichEdit1.Lines.Add(test(NameCol, Name) + «: » + test(MessageCol, Message1));
.

Но, как я и ожидала, строка всё равно приобретает один цвет. 8(
Что делать ?


MBo ( 2001-12-29 13:23 ) [6]

но ты ведь можешь выделять любой кусок строки через SelStart и SelLength и устанавливать для него SelAttributes

Источник

цвет объекта TMemo

Вопросы

walexw 7

walexw 7

Можно ли изменить цвет холста TMemo не прибегая к стилям?
Как вариант попробовал цветной прямоугольник под TMemo подложить и выставил прозрачность.
Для примера вроде получилось, но как только выставил TMemo — Align отличный от None, TMemo тут же опять
становится белым игнорируя прозрачность.
В чем смысл таких заморочек и что посоветуете по моему вопросу?
Спасибо!

Поделиться сообщением

Ссылка на сообщение

3 ответа на этот вопрос

Рекомендуемые сообщения

Похожий контент

Всем привет. Столкнулся со следующей проблемой после активации tedit при попытке создать любое намерение (для набора номера или открытия ссылки) программа наглухо зависает. И наоборот после создания и выполнения намерения, если перейти к tedit происходит глухое зависание. Тоже самое происходит и с memo.
Проблема похожа на описанную в этой теме, но решение из нее не помогает
Чем заменить tedit не знаю, пробовал все возможные варианты. Функции работы с намерениями рабочая и если не активировать tedit то все работает отлично.
Пробовал на разных устройствах, результат тот же. Правда на всех устройствах был Android 5.

Подскажите пожалуйста, возможно ли под android создать диалоговое окно с вводом текста? Или может быть есть еще какие-нибудь способы ввода текста?

Хотелось бы узнать подробней об этом баге

программа была запущена в течении нескольких часов, и вот выдало такой баг

как лечить? или какое максимальное кол-во символов оно может содержать?
в Мемо был лог, который писался в течении всего этого времени, но на скрине его нет.
бывает еще такое проявление когда Мемо не рендерит текст и даже фон, просто принимает фон формы, остается толька каретка

Среда — XE6 (в XE5 Upd2 было то же самое. Надеялся на исправления — ан нет.)
Аппарат — Galaxy Nexus. Ось — 4.2.1.

Читайте также:  Как работать кистью замена цвета

По умолчанию TMemo на форме выглядит как просто белый прямоугольник. Что не особо радует, если честно. В ряде случаев — этого достаточно. Но порой — если есть еще контролы ввода на форме — это визуально не оТчень.
Можно как-нить модифицировать стиль отображения для TMemo. Что то вроде эдакого многострочного TEdit.

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

Источник

Уроки Delphi

понедельник, 28 июля 2008 г.

Компонент TMemo

Он находится на палитре компонентов Standart. Как мы уже успели понять, он представляет собой поле для отображения и редактирования неформатированного текста. Текст можно загрузить из файла, набрать на клавиатуре, вставить из буфера обмена. Т.е. он имеет многие доступные свойства для редактирования текста, что способствует его применению в простейших текстовых редакторах для просмотра (редактирования) текста, наподобие того примера, который мы с вами периодически дописываем вот уже несколько уроков.

В этом компоненте текст всегда имеет одинаковый шрифт, задающийся через свойство Font.

Программно для компонента Memo1, расположенного на форме это делается следующим образом. Допустим, на форме расположено три компонента: поле редактирования текста Memo1 (страница Standart), диалог выбора шрифта FontDialog1 (страница Dialogs) и кнопка Button1 (страница Standart). Реакция на событие нажатия на кнопку Button1

procedure TForm1.Button1Click(Sender: TObject);

if FontDialog1.Execute then // если пользователь выбрал шрифт

Memo1.Font:=FontDialog1.Font; // установить выбранный шрифт

Если необходимо, чтобы в диалоге выбора шрифта изначально был выбран текущий шрифт, установленный компоненте Memo1, то перед вызовом диалога Execite устанавливаем в диалоге нужный шрифт.

procedure TForm1.Button1Click(Sender: TObject);

FontDialog1.Font:=Memo1.Font; // установить шрифт в диалоге

if FontDialog1.Execute then

Можно изменять шрифт для компонента TMemo (и не только для него) программно. Для этого в свойстве Font устанавливаются необходимые свойства во время работы приложения.

Memo1.Font.Name:=’Arial’; // установка имени шрифта

Memo1.Font.Size:=14; // установка размера шрифта

Memo1.Font.Color:=clRed; // цвет шрифта

Memo1.Font.Style:=[fsBold]; // установить жирный стиль

Style представляет собой массив свойств стиля шрифта. Необходимо в квадратных скобках указывать через запятую необходимые стили. Пустые кавычки будут означать установку шрифта без стиля. Список доступный свойств стиля шрифта:

Свойство WordWrap устанавливает, может или нет текст автопереносится на следующую строчку, если он достиг левого края компонента. Автоперенос работает и когда пользователь во время работы приложения изменяет размеры компонента.

Текст в компоненте доступен через свойство Lines. Он содержит массив строк, находящихся в компоненте. Можно получить доступ как к отдельной строке, так и к всему тексту. Это свойство можно редактировать и во время работы приложения, и во время разработки в инспекторе объектов.

Загрузка строк из файла через процедуру

где «c:\1.txt» – загружаемый файл в компонент. Следует при этом помнить, что компонент TMemo ограничен в размерах текста.

Читайте также:  Что делать если моя моча коричневого цвета

Сохранение строк в файл.

Количество строк в компоненте можно узнать через свойство Memo1.Lines.Count, а доступ к отдельной строчке через функцию Strings. Например:

ShowMessage(Memo1.Lines.Strings[0]); // Показывает в окошке первую строчку текста.

Strings – это массив строк, начинающихся с нулевого знака, заканчивающиеся Count-1. Об этом следует помнить при написании подобных процедур доступа, иначе произойдет выход за доступный предел массива, что вызовет ошибку в программе.

Можно для примера организовать цикл поочередного отображения строк из компонента Memo1. Для реакции на нажатия на кнопку Button1 это выглядит следующим образом:

procedure TForm1.Button1Click(Sender: TObject);

Var i:Integer; // объявление целочисленной переменной

if Memo1.Lines.Count<>0 then // проверка ненулевого количества строк

for i:=0 to Memo1.Lines.Count-1 do // задается цикл, равный кол-ву строк

ShowMessage(Memo1.Lines.Strings[i]); // вывод строк в сообщение

Очистить Strings можно одной процедурой Memo1.Lines.Clear.

Вставить строчку в заданное место –

Последний пример вставляет текстовую строку в первую строку (первая строка -1 = 0).

Memo1.Lines.Delete(0); // удаляет первую строку

При применении процедуры удаления строк Delete помните, что сначала нужно проверять компонент TMemo на наличие таковых вообще. Проверка через функцию Count, которая возвращает их целочисленное значение.

Работа с выделенным текстом программно аналогична работе пользователя вручную. Если пользователь выберет процедуру вырезания выделенного текста в буфер или его удаление, то он пропадет. Выделение текста производится с помощью двух процедур.

Memo1.SelStart:=0; // установить начальное положение выделения

Memo1.SelLength:=15; // установить длину выделенного текста

Если необходимо всегда видит выделенный текст, даже при переходе управления на другой элемент управления, то установите свойство HideSelection в false.

Работа с выделенным фрагментом текста

Memo1.ClearSelection; // удалить выделенный текст

Memo1.CutToClipboard; // вырезать в буфер обмена

Memo1.CopyToClipboard; // скопировать в буфер обмена

Memo1.PasteFromClipboard; // вставить из буфера обмена

Memo1.SelText; // эта функция возвращает текстовую строку выделенного текста

Отмена последнего изменения – процедура Memo1.Undo.

Компонент TMemo является оконным визуальным компонентом, т.е. у него имеются свойства, характерные множеству компонентов,
таких как Border, Color, Align, Enabled, Visible.

Источник

Как задать цвет memo

Я когда-то задавал подобный вопрос, но с тех пор его не решил.

Можно ли выводить в TMemo текст и задавать нужный цвет текста для каждой строки?

Как это можно реализовать?

ViktorXP

Установил его и обнаружил одно отличие от TMemo:

В TMemo при авто-прокрутке текста, курсор автоматом смещается в конец текста, таким образом при любых прокрутках мы всегда видим последний текст.

А в TRichEdit этого нет!

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

Причем я настроек не нашел, которые бы это регулировали.

Может я что-то пропустил и эти настройки все-таки есть?

Источник

Слово "Цвет" и его описание © 2022
Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению. Обязательно проконсультируйтесь с вашим лечащим врачом!

Adblock
detector
ViktorXP