![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день.
У меня проблема следующего характера. Мне нужно вывести в TLabel большое количество текста. Если я присваиваю текст непосредственно к label по принцепу label1.caption:= 'много-много текста'; выдается ошибка о том что текста очень много, программа все равно компилируется но текст не выводится в Tlabel я решил запихнуть текст в стринг, а потом присвоить стринг TLabel. Но происходит та же ситуация, когда я присваиваю много текста, только теперь ругается не на tlabel а на стринг. если разбивать текст по принципу str:='255 символов' + '255 символов'; все работает и текст выводится в tlabel. использую ansistring, widestring - эффект тот же. текст, который я вставляю - русский. Пробовал в utf-8, ansi... не помогает. помогите плз, текста слишком много чтобы по 255 символов разбивать((( Последний раз редактировалось kirkul, 04.10.2010 в 11:46. |
|
#2
|
||||
|
||||
|
взасунуть этот текст в файл/ресурс)
|
|
#3
|
|||
|
|||
|
Спасибо... но может всетаки есть какое-то решение непосредственно в коде страницы?)
|
|
#4
|
|||
|
|||
|
Предлагаю отказаться от использования TLabel, а использовать TMemo, или TRichEdit, настроив их на прозрачность.
|
|
#5
|
||||
|
||||
|
Долго думал, выкладывать или нет. Ну да пожалуй, чего жадничать
![]() В пакете 2 компонента: TspText и TspCheck. Первый представляет из себя аналог TLabel. Свойста: -Alignment - Выравнивание (по центру, по левому краю, по правому краю, по ширине!!!) -AutoHeight - Автоматический расчет и утановка ширины компонента взависимости от заданного текста -Paragraph - отступ в пикселях от левого края с начала каждого абзаца -Text [TStringList] - собственно отображаемый текст -Transparent - думаю, в коментариях не нуждается ![]() События не делал. Не было необходимости. Второй компонент - чтото среднее между TRadioButton+TCheckBox+TspText: Свойства: -Те же что и в spText -AsRadio - определяет поведение компонента (true - как RadioButton (на родительском окне может быть выбран только один), false - как CheckBox) -Checked - определяет установлен ли флажок выбора -CheckSize - размер флажка в пикселях Событий тоже не имеет. Вобщем, косяки там конечно имеются, но на D6 и D7 (тестировалось только на них) нареканий с моей стороны не было. Пользуйтесь наздоровье! ![]() Последний раз редактировалось dr. F.I.N., 12.01.2012 в 17:09. |
|
#6
|
||||
|
||||
|
Есть пару способов, но не много, или использовать много строчные компоненты (типа мемо, рич едит), как писали выше, или записать в ресурс, или сделать себе пограмму-помощник, в которую будут вводить текст (в мемо), а она будет разбивать этот текст по принципу после 255 элемента вставлять ' + '. Тобишь программа будет сама разбивать строки по 255 символов, а потом просто в label 'e поставишь word wrap и все будет супер.
Примерно твой помощник должен иметь такой код: Код:
бла бла бла Button1Click(...)
var
i: Integer;
s: string // твоя строка (большая)
rez: String; // результат
begin
rez := '';
s:=memo1.text;
whilt length(s)>0 do begin
while i <> 255 do begin
inc(i);
rez := rez + s[i] + '''+ ''';
delete(s, i, i-255);
end;
i:=0;
end;
// стразу отмчаю что писал не в делфи, не тестил + тут очень много ошибок (типо "i-255" в первом случае будет ошибка, т.к. s[-255] быть не может, это просто пример, поэкспериментируй...Ну или используй компоненты, которые предложили выше... Последний раз редактировалось v1s2222, 04.10.2010 в 16:26. |
|
#7
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.FormCreate(Sender: TObject); begin Label1.Caption:=Memo1.Text; end; ![]() |