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

Вниз

Вывод очень длинной строки   Найти похожие ветки 

 
Игорь_Залозных   (2009-01-12 18:45) [0]

Здраствуйте.
Скажите какой функцией вывести очень длинную строку без пробелов, чтобы были переносы на следующие строки - аналог Word или WordPad, а то функция DrawText не справляется с этой задачей (не используя эллипсические флаги).


 
Leonid Troyanovsky ©   (2009-01-12 19:10) [1]


> Игорь_Залозных   (12.01.09 18:45)

> а то функция DrawText не справляется с этой задачей

Докажи.

--
Regards, LVT.


 
Игорь_Залозных   (2009-01-12 19:18) [2]

s:="1111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111";
DrawText(ACanvas.Handle,PChar(s),strlen(PChar(s)),r,DT_LEFT or DT_WORDBREAK or DT_EXPANDTABS or DT_EXTERNALLEADING);
границы r - аналог границ Word на странице.
Например,
r.left := 100;
r.right:= 1100;
r.top:=100;
r.bottom:=1000;
Текст не поещается в заданный диапазон, и располпгается вне его, а нужно, чтобы строка, если не вмещается часть, переносились на другие строки.
Ответ однозначный и говорит о том, что данная функция для данной проблемы не подходит.


 
Smile   (2009-01-12 19:22) [3]

А мне другое интересно. Что означает выражение "вывести очень длинную строку"?
Куда вывести, в какой компонент (контрол)?
Для меня просто загадка:)


 
Игорь_Залозных   (2009-01-12 19:36) [4]

Да тупая докадка.
Ясный пень, что все идет через HDC.


 
Leonid Troyanovsky ©   (2009-01-12 19:40) [5]


> Игорь_Залозных   (12.01.09 19:18) [2]

> Ответ однозначный и говорит о том, что данная функция для
> данной проблемы не подходит.


procedure TForm1.Button1Click(Sender: TObject);
var
 s:String;
 r: TRect;
begin
 r.left := 0;
 r.right := 50;
 r.top:= 0;
 r.bottom :=700;
 s:="1111111111111111111111111111111111111111111111111111111111111111111111111111  11111111111111111111111111111111111111111111111111111111111111111111111111111111  11111111111111111111111111111111111111111111111111111111111";
 DrawText(Canvas.Handle,PChar(s),strlen(PChar(s)),r, DT_EDITCONTROL or DT_WORDBREAK );
end;

--
Regards, LVT.


 
Smile   (2009-01-12 19:47) [6]

Ну и тогда в догонку (конечно предварительно извиняюсь), кому может быть понадобиться такая "визуальная" строка. Не лучше ли ее "уложить" в буфер или еще куда-либо?


 
Юрий Зотов ©   (2009-01-12 19:49) [7]

Игорь, флаг DT_WORDBREAK разрывает ПО словам, а у Вас ОДНО слово. Нечего ему разрывать - вот он и не разрывает.


 
Игорь_Залозных   (2009-01-12 19:49) [8]

Leonid Troyanovsky - большое спасибо.
Что-то данного флага у меня в инфе описано не было.


 
Игорь_Залозных   (2009-01-12 19:49) [9]

Тема закрыта.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
15-1256496465
palva
2009-10-25 21:47
2009.12.27
Какой-то тупой развод


15-1256416210
Юрий
2009-10-25 00:30
2009.12.27
С днем рождения ! 25 октября 2009 воскресенье


15-1256372721
POOP
2009-10-24 12:25
2009.12.27
Paint.Net залитый прямоугольник


2-1252914724
VirEx(home)
2009-09-14 11:52
2009.12.27
сервис + приложение (обмен данными)


1-1230639805
du_hast
2008-12-30 15:23
2009.12.27
Как можно пулчить массив данных Excel chart -а?