Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.25;
Скачать: CL | DM;

Вниз

Как узнать ширину (width) строки, отображаемой в TMemo?   Найти похожие ветки 

 
Loxly ©   (2002-02-09 18:36) [0]

Приветствую всех Мастеров! Помогите с проблемкой.
Хочу в run-tim"е устанавливать размер поля TMemо шириной, равной ширине самой длинной строки, но могу получить эту самую ширину.
Свойства Canvas у TMemo нет, я не могу воспользоваться методом TCanvas.TextWidth(). Просто так временно создать объект TCanvas нельзя. Создавать компонент, у которого есть свойство Canvas? Нерационально.
Что можете посоветовать, уважамые Мастера?


 
wicked ©   (2002-02-09 20:03) [1]

во-первых, можно использовать canvas формы, на которой расположен memo, и пользоваться его методами....
во-вторых, создать временный объект TCanvas можно... например так:
var c: TCanvas;
begin
...
c := TCanvas.Create;
...
{<делаем чего-нибудь>}
...
c.Free;
...
end;

хотя, по-моему, первый способ лучше.....


 
Loxly ©   (2002-02-09 20:32) [2]

2 wicked ©
Во-первых, спасибо за совет использовать канву формы. Очень простое и эффективное решение!
Во-вторых, объект класса TCanvas просто так создать все-таки нельзя. По крайней мере, одним TCanvas.Create отделаться не получается. При попытке вызвать какой-либо метод, например тот же TextWidth(), вылетает исключение EInvalidOperation c сообщением "Canvas does not allow drawing".

Еще раз спасибо за совет :-)



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

Текущий архив: 2002.02.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
3-79251
AndrewK
2002-01-30 14:26
2002.02.25
Как заставить MS SQL Server 7.0 сообщать подсоединенным клиентам о необходимости обновить свои DataSet`ы


6-79417
ev
2001-12-01 18:41
2002.02.25
Утечка памяти в Indy ?!


1-79306
vitnt2000
2002-02-05 12:58
2002.02.25
Текст из WebBrowser


14-79434
Knight
2002-01-05 11:37
2002.02.25
Пардон, Чего-нибудь типа Ресторатор для 16-разр.прилож. не встречали?


3-79302
Mr.Sane
2002-01-30 12:35
2002.02.25
TROUBLE SQLEXPLORER