![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не выводится текст?
Bratskiy © (2006-02-22 09:23:00)Привет! Пытаюсь в RichEdit средствам API вывести текст, что-то не получается.
var
DC:HWND;
st:PChar;
sz:integer;
w:longbool;
......
DC:=GetDC(RichEdit1.handle);
st:=PChar('Ghbdtn');
sz:=SizeOf(st);
w:=TextOut(DC,10,10,st,sz);
......
Пытался ещё всякими способами, что-то не выходит! Где я ошибаюсь?
Bratskiy (2006-02-26 10:44:00) [1]В виртуальном Bitmap править наверное не получится
Ega23 (2006-02-26 10:36:00) [2]Ты можешь создать виртуальный Bitmap, на его Канвас вывести текст и после этого смтреть на его параметры.
Bratskiy (2006-02-26 10:32:00) [3]Да, мне нужна ширина текста в пикселях, а текст ширину которого нужно узнать у меня в RichEdit. Конечно можно сам текст брать не из RichEdit, а из файла, который в этом самом RichEdit выводится. Но тогда как узнать ширину строки (RichEdit1.Lines.Strings[i]), и не только ширину, а и саму строку, которую надо по ширине расстягивать. И самое главное мне этот текст нужно потом ещё run-time редактировать, а это наверное с помощью RichEdit и Canvas сделать нельзя
Ega23 (2006-02-26 10:14:00) [4]
> Как из RichEdit получить доступ к Canvas? Свойства такого
> у RichEdit нет, через Canvas.Create, тоже неполучается,
> так как у этого конструктора нет параметров, в которые можно
> передать владельца.
>
А зачем тебе Canvas именно TRichEdit? Ты хочешь узнать ширину текста в пикселях, или она тебе не нужна??
Bratskiy (2006-02-26 06:38:00) [5]Текст при помощи API вывелся, но получилось нето, что надо так как его нельзя редактировать.
Bratskiy (2006-02-26 05:59:00) [6]
> Ega23 ©
Как из RichEdit получить доступ к Canvas? Свойства такого у RichEdit нет, через Canvas.Create, тоже неполучается, так как у этого конструктора нет параметров, в которые можно передать владельца.
> MBo ©
Как я понял, RichEdit 3.0 это не компонент для Delphi, а Windows'кая библиотека, которая есть на компьютере если на компьютере установлен Office XP, или даже Office более ранней версии. Где тогда взять компонент который работает с этой библиотекой. А именно RichEdit мне нужен для того, чтобы проссматривать и редактировать текст в формате rtf
MBo (2006-02-22 11:43:00) [7]RichEdit 3 версии поддерживает выравнивание по ширине (через EM_PARAFORMAT), но в Дельфи используется RichEdit1 (а в RXLib - 2.0).
Пока неясно - если нужно только выводить текст, зачем нужен RichEdit?
Ega23 (2006-02-22 11:17:00) [8]
> Никакое это не извращение. Я просто хочу выравнивание текста
> по ширине сделать, а без API походу это сделать никак нельзя.
>
Почему? Рекомендую обратить внимание на метод TCanvas.GetTextWidth, а также на компонент TStaticText
Bratskiy (2006-02-22 10:49:00) [9]И Length пробовал всё равно не работает.
Никакое это не извращение. Я просто хочу выравнивание текста по ширине сделать, а без API походу это сделать никак нельзя.
MBo (2006-02-22 10:44:00) [10]вместо SizeOf нужно Length
Но всё равно это извращение...
Bratskiy (2006-02-22 09:39:00) [11]У RichEdit нету Canvas
Ega23 (2006-02-22 09:37:00) [12]RichEdit1.Canvas.Handle ?
McSimm (2006-02-22 09:37:00) [13]вы пытаетесь его там нарисовать? зачем?
Или используйте графический элемент для рисования или позвольте RichRdit`у самому рисовать имеющийся у него текст