Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-32733
Viktor Erko
2002-03-30 10:35
2002.04.11
ПО для автоматизации документирования текста программы


3-32679
vitnt2000
2002-03-20 07:05
2002.04.11
SQL Запрос


4-33002
Demn
2002-02-07 12:16
2002.04.11
Process ID


1-32897
BAHO
2002-03-28 19:15
2002.04.11
Обработка событий в денамически созданных обьектах


1-32853
atmospheric
2002-03-28 17:37
2002.04.11
удаление Item из ListView ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский