Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

StringGrid   Найти похожие ветки 

 
mike.dld   (2002-03-29 09:24) [0]

Существует ли какой-нибудь способ, чтобы в StringGrig.Cells[x,y] можно было выводить более одной строки?


 
Кулюкин Олег ©   (2002-03-29 09:35) [1]

Можно.
Если выводить текст ручками (в обработчике события OnDrawCell) при помощи функции DrawText с флагом DT_WORDBREAK.


 
MBo ©   (2002-03-29 09:36) [2]

пример - если в строке есть перевод строки

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var i:integer;
s:string;
begin
with stringgrid1 do begin
s:=Cells[ACol,ARow];
i:=pos(#13#10,s);
if i>0 then begin
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2,Rect.Top+2,copy(s,1,i-1));
Canvas.TextOut(Rect.Left+2,Rect.Top+20,copy(s,i+2,length(s)-i-1));
end else
Canvas.TextOut(Rect.Left+2,Rect.Top+2,s);
end;
end;


 
MBo ©   (2002-03-29 09:40) [3]

OK, c DrawText будет проще


 
mike.dld   (2002-03-29 09:41) [4]

Но мне же потом с этой ячейки еще и читать нужно! Это же не для красоты!


 
MBo ©   (2002-03-29 09:43) [5]

а чему это противоречит?


 
Song ©   (2002-03-29 09:44) [6]

Заносите в ячейки как обычно, но рисуйте разделение ячеек (вообщем всю сетку) сами. Другого варианта не вижу. Или делайте двойное хранение: в гриде и в каком-нить замсловатом массиве вставленном в Record. Но тут.... проблем будет много.


 
mike.dld   (2002-03-29 09:46) [7]

А нет ли такой компоненты готовой (может, постарался кто-то)?


 
MBo ©   (2002-03-29 09:48) [8]

а что именно нужно?


 
mike.dld   (2002-03-29 09:53) [9]

Вот то и нужно. Программа такова, что в StringGrid 6 колонок, 4 из них имеют фиксированную ширину, а 2 изменяются в зависимости от длины строк, в них помещенных. Надо всё это дело потом распечатывать, а что же это будет такое, если таблица по ширине не влезет на лист? Вот поэтому нужно переносить строку, если она слишком длинная.


 
Song ©   (2002-03-29 09:57) [10]

пользуйтесь Excel"ем через OLE.


 
MBo ©   (2002-03-29 09:58) [11]

DrawText спасет


 
mike.dld   (2002-03-29 10:06) [12]

Честно говоря, я не так уж и хорошо разбираюсь в Дельфи, как хотелось бы, поэтому, если те трудно, напишите, уважаемый MBo, кусочек кода и разъясните, как мне потом из этой двустрочной ячейки переслать данные в Excel.


 
Кулюкин Олег ©   (2002-03-29 10:14) [13]

2 mike.dld
Упустил в первом ответе.
Еще нужно подогнать высоту строки под текст.
Поможет функция DrawText + флаг DT_CALCRECT.

Пример кода был в "Советах по Дельфи" Валентина Озерова.



Страницы: 1 вся ветка

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
14-32945
Yaro
2002-01-27 07:55
2002.04.11
Кто в какой ОС работает?


3-32696
kaif
2002-03-21 10:59
2002.04.11
Cached Updates update failed?


1-32759
lipskiy
2002-03-30 20:14
2002.04.11
Сложный вопрос-предложение. Помогите включить поддержку кириллицы


7-32991
evgeg
2002-01-18 12:41
2002.04.11
Накладные расходы по вызову функции из dll


3-32660
TimPasha
2002-03-20 11:44
2002.04.11
Требуется разъяснение!!!