Графика в RichEdit
Пишу текстовый редактор. Все бы хорошо, но туда нужно графику вставлять. Если беру RichEdit, делаю его Parent'ом какого-либо элемента, то текст в RichEdit'е становится нефидимым. Его можно скопиролвать, он есть, но не виден.
Пробовал менять цвет текста - не помогло.
В Memo все в порядке с текстом, но мне нужно изменять шрифт для отдельных строк.
Предполагаю в нужном месте увеличивать высоту строки и вставлять картинку на место этой строки.
Но задница еще и в том, что не могу понять, как определяется размер междустрочного интервала.
Скажем Memo1.Font.Size := 8;
Тогда для того, чтоб картинка была ниже последней строки, нужно сделать
Image1.Top := Memo1.Lines.Count*Memo1.Font.Size;
Это теоретически. На практике нужно еще на 2 умножить. Но тут не учтем междустрочный интервал. Как его определить - хз.
Если учитывать мекждустрочный интервал, то быдет так:
Image1.Top := (Memo1.Font.Size-1)*2*Memo1.Lines.Count - X*Memo1.Lines.Count;
Тут Х - сам интервал. Меетодом научного тыка я определил, какой Х соответствует некоторым размерам шрифта
Шрифт сам MS Serif
Шрифт / Х
7 1
8 3
9 5
10 4
11 6
14 4
20 8
Это мой курсовой проект... все остальное вроде понятно... но с этим уже... хоть ты вешайся. Препод, гадина, сам ничего не знает (мат, мат, мат).
Вобщем задолбался я уже.
Пишу текстовый редактор. Все бы хорошо, но туда нужно графику вставлять. Если беру RichEdit, делаю его Parent'ом какого-либо элемента, то текст в RichEdit'е становится нефидимым. Его можно скопиролвать, он есть, но не виден.
Пробовал менять цвет текста - не помогло.
RichEdit не поддерживает вставку в него графических объектов :( Тоже с такой ерундой сталкивался.
Но я подозреваю, что это можно организовать, используя OLE - правда, для этого придётся подключать WinAPI
RichEdit не поддерживает вставку в него графических объектов :( Тоже с такой ерундой сталкивался.
Но я подозреваю, что это можно организовать, используя OLE - правда, для этого придётся подключать WinAPI
Проблему решил использованием DBImage. Она располагается поверх RichEdit. В форме Autoscroll := False. У RichEdit Align на всю форму.
Получает одинаковые координаты Картинки как на форме, так и внутри Рич Эдита. Т.е. они совпадают :)
На место, где располагается картинка, ставим, скажем, пробелы. Так можно сделать обтекание ее текстом. Если пустые строки ставить , то она будет разделять текст.
Но проблемы с междустрочным интервалом не решил:(
RichEdit не поддерживает вставку в него графических объектов :( Тоже с такой ерундой сталкивался.
Но я подозреваю, что это можно организовать, используя OLE - правда, для этого придётся подключать WinAPI
Блин, ну до фига реализаций RichEdit с внедрением объектов есть, взять тот же RX. Хоть посмотрите, как там сделано.