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

Вниз

Почему не выводится текст?   Найти похожие ветки 

 
Bratskiy ©   (2006-02-22 09:23) [0]

Привет! Пытаюсь в 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);
......

Пытался ещё всякими способами, что-то не выходит! Где я ошибаюсь?


 
Ega23 ©   (2006-02-22 09:37) [1]

RichEdit1.Canvas.Handle  ?


 
McSimm ©   (2006-02-22 09:37) [2]

вы пытаетесь его там нарисовать? зачем?
Или используйте графический элемент для рисования или позвольте RichRdit`у самому рисовать имеющийся у него текст


 
Bratskiy ©   (2006-02-22 09:39) [3]

У RichEdit нету Canvas


 
MBo ©   (2006-02-22 10:44) [4]

вместо SizeOf нужно Length
Но всё равно это извращение...


 
Bratskiy ©   (2006-02-22 10:49) [5]

И Length пробовал всё равно не работает.
Никакое это не извращение. Я просто хочу выравнивание текста по ширине сделать, а без API походу это сделать никак нельзя.


 
Ega23 ©   (2006-02-22 11:17) [6]


> Никакое это не извращение. Я просто хочу выравнивание текста
> по ширине сделать, а без API походу это сделать никак нельзя.
>


Почему? Рекомендую обратить внимание на метод TCanvas.GetTextWidth, а также на компонент TStaticText


 
MBo ©   (2006-02-22 11:43) [7]

RichEdit 3 версии поддерживает выравнивание по ширине (через EM_PARAFORMAT), но в Дельфи используется RichEdit1 (а в RXLib - 2.0).

Пока неясно - если нужно только выводить текст, зачем нужен RichEdit?


 
Bratskiy ©   (2006-02-26 05:59) [8]


> Ega23 ©  


Как из RichEdit получить доступ к Canvas? Свойства такого у RichEdit нет, через Canvas.Create, тоже неполучается, так как у этого конструктора нет параметров, в которые можно передать владельца.


> MBo ©  


Как я понял, RichEdit 3.0 это не компонент для Delphi, а Windows"кая библиотека, которая есть на компьютере если на компьютере установлен Office XP, или даже Office более ранней версии. Где тогда взять компонент который работает с этой библиотекой. А именно RichEdit мне нужен для того, чтобы проссматривать и редактировать текст в формате rtf


 
Bratskiy ©   (2006-02-26 06:38) [9]

Текст при помощи API вывелся, но получилось нето, что надо так как его нельзя редактировать.


 
Ega23 ©   (2006-02-26 10:14) [10]


> Как из RichEdit получить доступ к Canvas? Свойства такого
> у RichEdit нет, через Canvas.Create, тоже неполучается,
> так как у этого конструктора нет параметров, в которые можно
> передать владельца.
>


А зачем тебе Canvas именно TRichEdit? Ты хочешь узнать ширину текста в пикселях, или она тебе не нужна??


 
Bratskiy ©   (2006-02-26 10:32) [11]

Да, мне нужна ширина текста в пикселях, а текст ширину которого нужно узнать у меня в RichEdit. Конечно можно сам текст брать не из RichEdit, а из файла, который в этом самом RichEdit выводится. Но тогда как узнать ширину строки (RichEdit1.Lines.Strings[i]), и не только ширину, а и саму строку, которую надо по ширине расстягивать. И самое главное мне этот текст нужно потом ещё run-time редактировать, а это наверное с помощью RichEdit и Canvas сделать нельзя


 
Ega23 ©   (2006-02-26 10:36) [12]

Ты можешь создать виртуальный Bitmap, на его Канвас вывести текст и после этого смтреть на его параметры.


 
Bratskiy ©   (2006-02-26 10:44) [13]

В виртуальном Bitmap править наверное не получится



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

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

Наверх




Память: 0.49 MB
Время: 0.055 c
2-1140779880
VitV
2006-02-24 14:18
2006.03.12
Вставка BLOB из файла...


2-1140612442
Nirvana
2006-02-22 15:47
2006.03.12
Как добавить символ в строковую переменную?


1-1139309643
Zilog_
2006-02-07 13:54
2006.03.12
Проблема с выводом текста


15-1140233045
Ученик чародея
2006-02-18 06:24
2006.03.12
Почему человек верит в существующее в своем воображении?


11-1121017425
Serg777
2005-07-10 21:43
2006.03.12
WS_POPUP и ListBox = постоянная перерисовка