Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c