Главная страница
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.01 c
3-32620
BigError
2002-03-22 13:23
2002.04.11
Определение количества записей в физической таблице, несмотря на фильтрацию


1-32753
lipskiy
2002-03-30 17:36
2002.04.11
TWebBrowser_V1: че-то никак не создать в ран-тайме... Помогите, п


1-32848
IronHawk
2002-03-27 10:32
2002.04.11
Приветствую Мастеров ! Прошу бААААльшой помощи, неоткажите....


1-32842
guood
2002-03-28 17:46
2002.04.11
Рабочая директория приложения


1-32879
Kazah_Progr
2002-03-29 15:20
2002.04.11
Какое событые возникает при минимизации формы (свернуть)