Главная страница
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.013 c
1-1229953346
tipman
2008-12-22 16:42
2009.12.27
Использование общих переменных в различных потоках


4-1226217617
Riply
2008-11-09 11:00
2009.12.27
Строение "подструктуры" HANDLE_TABLE


15-1256681905
Германн
2009-10-28 01:18
2009.12.27
Мнемоника


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


3-1232433164
Matveih1
2009-01-20 09:32
2009.12.27
Данные не обновляются