![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с Мемо компонентами
r900000 © (2009-01-13 08:29:00)Доброе утро.
У меня возник такой вопрос. Можно ли при использовании Мемо компонентов в виде строки сделать так, чтобы грубо говоря стобцы в этих компонентах располагались начиная одинаково с одной позиции?
Например
Мемо1:
1 rty u qwertyi
Memo2:
20 a dfg e
Такая вещь не помогает:
while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)+ strtoint(sleft1))) do
s1:=s1+' ';
Сергей М. (2009-01-14 14:09:00) [1]
> я вообще разделительные вертикальные линии формирую по другому
Ну что тебе сказать ? Затею дурней этой придумать сложно)
r900000 (2009-01-14 14:00:00) [2]Да я ж говорю я не символы разделители вставляю для разделения на столбцы строку я вообще разделительные вертикальные линии формирую по другому вот
как я уже писал
linepost := TFRXLineView.Create(DataBandpror);
linepost.CreateUniqueName;
linepost.Left:=ileft;
linepost.Top:=itop;
linepost.Height:=abs(maxpoprav)+strtoint(elemrowsetheigth);
Сергей М. (2009-01-14 13:48:00) [3]
> r900000 (14.01.09 13:36) [33]
Нет ну ты точно блаженный)
Для вставки символа-разделителя в определенную позицию строки не нужна никакая канва вообще.
r900000 (2009-01-14 13:36:00) [4]Так я и пытаюсь сейчас не могу найти как это сделать для
fastreport, ну или на худой конец для обычного memo как это form1.Canvas.TextWidth(s1) сделать, может в fastreport также?
{RASkov} (2009-01-14 13:11:00) [5]> [30] r900000 (14.01.09 13:07)
Раз решил использовать канву, то бери канву того контрола, с которым работаешь, а не "соседнего"....
например GetDC или TControlCanvas есно + F1
Сергей М. (2009-01-14 13:09:00) [6]А в чем прелесть удалять гланды ректально ? Не понимаю ..
r900000 (2009-01-14 13:07:00) [7]Ну так хотелось бы и этот вариант порочный :) отработать
Сергей М. (2009-01-14 12:56:00) [8]
> чтобы где идет вертикальная линия
Что ты сказку про белого бычка затянул со своей "линией" ?
Ты же [25] прочитал ?
В [26] ты согласился с [25] ?
r900000 (2009-01-14 12:50:00) [9]Как зачем, чтобы где идет вертикальная линия, после нее сразу бы(как будто бы хотя выравнивание слева столбцов сделать) стояло данное и так же должно быть для следующих вертикальных вертикальных линий, т.е. как положено.
Сергей М. (2009-01-14 12:21:00) [10]Вот же дался тебе этот Canvas !
Зачемон тебе ?
Зачем вся эта катавасия с циклом ?
r900000 (2009-01-14 12:10:00) [11]Ну наверно так и буду делать.
А вот while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)+ strtoint(sleft1))) do
s1:=s1+' ';
для моноширных шрифтов не работает мне кажется потому что form1.Canvas.TextWidth(s1) отличается от Canvas fastreport.
А как Canvas fastreport обращаться непонятно я так и не нашел?
Сергей М. (2009-01-14 12:03:00) [12]
> r900000
Ты бы хоть почитал док-цию к FR да бы посмотрел демо-проекты, перед тем как лепить невесть что ..
За каким лешим, спрашивается, в табличном FR-отчете потребовалось создавать столько мемо ?
Достаточно по одному мемо на каждое поле НД.
r900000 (2009-01-14 11:53:00) [13]Не мемо у меня не одно. Я попробовал для каждой элемента (пересечение столбца и строки) создавать мемо, но для 23000 элементов мемо отчет в fastreport строится долго больше 40 минут. В данном случае я пытаюсь использовать одно мемо в качестве одной строчки таблицы.
r900000 (2009-01-14 11:50:00) [14]Не мемо у меня не одно. Я попробовал для каждой элемента (пересечение столбца и строки) создавать мемо, но для 23000 элементов мемо отчет в fastreport строится долго больше 40 минут. В данном случае я пытаюсь использовать одно мемо в качестве одной строчки таблицы.
Сергей М. (2009-01-14 09:07:00) [15]Нет а зачем этот отчет рисовать в одном-единственномМемо ?
Что мешает динамически создать/настроить столько мемо , сколько полей будет в отчете ?
r900000 (2009-01-14 06:28:00) [16]Вообще нужно строить динамически любой отчет по разным xml. Я это и пытаюсь делать.
Сергей М. (2009-01-13 16:34:00) [17]Ты вот скажи, зачем тебе нужно изображать в FR-отчете таблицу именно такимизвращенным способом ?
r900000 (2009-01-13 12:58:00) [18]С форматом вроде понятно.
Но у меня другое непонятно
Линии вертикальные столбцов у меня в fastreporte формируются так
linepost := TFRXLineView.Create(DataBandpror);
linepost.CreateUniqueName;
linepost.Left:=ileft;
linepost.Top:=itop;
linepost.Height:=abs(maxpoprav)+strtoint(elemrowsetheigth);
по координатам соответсвенным, эти линии вроде правильно рисуются соединяются где нужно
далее когда я ставлю шрифт не моноширный вот это
while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)+ strtoint(sleft1))) do
s1:=s1+' ';
дает начало столбца данных после sleftpr(что правильно), но столбцы в строках будут начинаться с разных позиций(что неправильно)
если ставлю шрифт моноширный, начало столбца данных может в некоторых столбцах быть до sleftpr(что неправильно), а столбцы в строках будут начинаться с одинаковых позиций(что правильно)
Так вот непонятно почему это происходит и как это исправить?
Сергей М. (2009-01-13 12:13:00) [19]
> как Format здесь использовать
Так же как и там.
Ты справку к Format() проштудировал ?
{RASkov} (2009-01-13 12:12:00) [20]Как-то так:
Memo.Lines.Add(Format('%-5s | %-5s | %5s', [s1, s2, s3]));
Format() + F1