Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с Мемо компонентами


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо