Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];
ВнизРабота с Мемо компонентами Найти похожие ветки
← →
r900000 (2009-01-13 08:29) [0]Доброе утро.
У меня возник такой вопрос. Можно ли при использовании Мемо компонентов в виде строки сделать так, чтобы грубо говоря стобцы в этих компонентах располагались начиная одинаково с одной позиции?
Например
Мемо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-13 09:08) [1]Можно, если в св-ве Font указать моноширный фонт.
← →
r900000 (2009-01-13 09:31) [2]Можно, если в св-ве Font указать моноширный фонт.
А какой это шрифт? как его название?
← →
Сергей М. © (2009-01-13 09:38) [3]
> какой это шрифт?
Например, Fixedsys
← →
r900000 (2009-01-13 09:44) [4]А ещё можно какой-нибудь, а то этот жирноват будет?
← →
Сергей М. © (2009-01-13 09:49) [5]
> ещё можно какой-нибудь
Можно. Ищи сам среди имеющихся у тебя.
← →
MBo © (2009-01-13 09:57) [6]courier new
← →
{RASkov} © (2009-01-13 11:43) [7]Да, и вместо этого:
> while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)
> + strtoint(sleft1))) do
> s1:=s1+" ";
лучше использовать Format для моноширных шрифтов.....
← →
r900000 (2009-01-13 11:53) [8]Да сейчас он вроде в строках с одной позиции выводит и вроде вот это условие выполняется:
while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)+ strtoint(sleft1))) do
s1:=s1+" ";
но у меня еще вертикальные линии рисуются между столбцами
и там почему-то sleftpr отличается от начала значения столбца, в чем может быть ошибка?
Строка 1
73-73
123-129
723-724
843-843
963-969
1083-1088
1203-1207
1323-1326
1443-1445
1563-1564
1683-1683
1803-1809
1923-1928
2043-2047
2163-2166
2283-2285
2403-2404
2523-2523
2643-2649
2763-2768
2883-2887
3003-3006
3123-3125
3243-3244
3363-3363
3483-3489
3603-3608
3723-3727
3843-3846
3963-3965
Строка 2
73-73
123-129
723-724
843-843
963-969
1083-1088
1203-1207
1323-1326
1443-1445
1563-1564
1683-1683
1803-1809
1923-1928
2043-2047
2163-2166
2283-2285
2403-2404
2523-2523
2643-2649
2763-2768
2883-2887
3003-3006
3123-3125
3243-3244
3363-3363
3483-3489
3603-3608
3723-3727
3843-3846
3963-3965
← →
Сергей М. © (2009-01-13 11:57) [9]
> while not ((strtoint(sleftpr)<=form1.Canvas.TextWidth(s1)+
> strtoint(sleft1))) do
> s1:=s1+" ";
Что это вообще за беда ?
Причем здесь канва формы, если текст выводится на канву мемо ?
← →
{RASkov} © (2009-01-13 12:00) [10]> но у меня еще вертикальные линии рисуются между столбцами
В Мемо.... А гридах мы эти самые линии убираем :)
Зачем такие извраты?)
← →
{RASkov} © (2009-01-13 12:01) [11]Если на то пошло, то лучше ТПаинтБокс в таком плане использовать....
← →
r900000 (2009-01-13 12:02) [12]А у мемо Canvas разве есть и потом для формы я ставлю размер и шрифт моноширный.
← →
r900000 (2009-01-13 12:05) [13]А как Format здесь использовать
Да нет я вообще динамически создаю элементы в fastreporte, а так по отдельным элементам выходит долго, пробую создать построчно.
← →
{RASkov} © (2009-01-13 12:06) [14]> [12] r900000 (13.01.09 12:02)
> А у мемо Canvas разве ест
А гдеж рисуешь верт полосы?)
← →
clickmaker © (2009-01-13 12:09) [15]> А гдеж рисуешь верт полосы?)
наверно, это столбики | :)
← →
r900000 (2009-01-13 12:10) [16]Да все в fastreporte рисуется динамически.
← →
{RASkov} © (2009-01-13 12:12) [17]Как-то так:
Memo.Lines.Add(Format("%-5s | %-5s | %5s", [s1, s2, s3]));
Format() + F1
← →
Сергей М. © (2009-01-13 12:13) [18]
> как Format здесь использовать
Так же как и там.
Ты справку к Format() проштудировал ?
← →
r900000 (2009-01-13 12:58) [19]С форматом вроде понятно.
Но у меня другое непонятно
Линии вертикальные столбцов у меня в 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 16:34) [20]Ты вот скажи, зачем тебе нужно изображать в FR-отчете таблицу именно таким извращенным способом ?
← →
r900000 (2009-01-14 06:28) [21]Вообще нужно строить динамически любой отчет по разным xml. Я это и пытаюсь делать.
← →
Сергей М. © (2009-01-14 09:07) [22]Нет а зачем этот отчет рисовать в одном-единственном Мемо ?
Что мешает динамически создать/настроить столько мемо , сколько полей будет в отчете ?
← →
r900000 (2009-01-14 11:50) [23]Не мемо у меня не одно. Я попробовал для каждой элемента (пересечение столбца и строки) создавать мемо, но для 23000 элементов мемо отчет в fastreport строится долго больше 40 минут. В данном случае я пытаюсь использовать одно мемо в качестве одной строчки таблицы.
← →
r900000 (2009-01-14 11:53) [24]Не мемо у меня не одно. Я попробовал для каждой элемента (пересечение столбца и строки) создавать мемо, но для 23000 элементов мемо отчет в fastreport строится долго больше 40 минут. В данном случае я пытаюсь использовать одно мемо в качестве одной строчки таблицы.
← →
Сергей М. © (2009-01-14 12:03) [25]
> r900000
Ты бы хоть почитал док-цию к FR да бы посмотрел демо-проекты, перед тем как лепить невесть что ..
За каким лешим, спрашивается, в табличном FR-отчете потребовалось создавать столько мемо ?
Достаточно по одному мемо на каждое поле НД.
← →
r900000 (2009-01-14 12:10) [26]Ну наверно так и буду делать.
А вот 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:21) [27]Вот же дался тебе этот Canvas !
Зачем он тебе ?
Зачем вся эта катавасия с циклом ?
← →
r900000 (2009-01-14 12:50) [28]Как зачем, чтобы где идет вертикальная линия, после нее сразу бы(как будто бы хотя выравнивание слева столбцов сделать) стояло данное и так же должно быть для следующих вертикальных вертикальных линий, т.е. как положено.
← →
Сергей М. © (2009-01-14 12:56) [29]
> чтобы где идет вертикальная линия
Что ты сказку про белого бычка затянул со своей "линией" ?
Ты же [25] прочитал ?
В [26] ты согласился с [25] ?
← →
r900000 (2009-01-14 13:07) [30]Ну так хотелось бы и этот вариант порочный :) отработать
← →
Сергей М. © (2009-01-14 13:09) [31]А в чем прелесть удалять гланды ректально ? Не понимаю ..
← →
{RASkov} © (2009-01-14 13:11) [32]> [30] r900000 (14.01.09 13:07)
Раз решил использовать канву, то бери канву того контрола, с которым работаешь, а не "соседнего"....
например GetDC или TControlCanvas есно + F1
← →
r900000 (2009-01-14 13:36) [33]Так я и пытаюсь сейчас не могу найти как это сделать для
fastreport, ну или на худой конец для обычного memo как это form1.Canvas.TextWidth(s1) сделать, может в fastreport также?
← →
Сергей М. © (2009-01-14 13:48) [34]
> r900000 (14.01.09 13:36) [33]
Нет ну ты точно блаженный)
Для вставки символа-разделителя в определенную позицию строки не нужна никакая канва вообще.
← →
r900000 (2009-01-14 14:00) [35]Да я ж говорю я не символы разделители вставляю для разделения на столбцы строку я вообще разделительные вертикальные линии формирую по другому вот
как я уже писал
linepost := TFRXLineView.Create(DataBandpror);
linepost.CreateUniqueName;
linepost.Left:=ileft;
linepost.Top:=itop;
linepost.Height:=abs(maxpoprav)+strtoint(elemrowsetheigth);
← →
Сергей М. © (2009-01-14 14:09) [36]
> я вообще разделительные вертикальные линии формирую по другому
Ну что тебе сказать ? Затею дурней этой придумать сложно)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.006 c