Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизTStringGrid - срочно нужна консультация с автопереносом.... Найти похожие ветки
← →
Leon_M@ni@k (2003-06-14 14:31) [0]У меня есть StringGrid - но ячейки у него -фиксированной ширины
а вот высота свободно может варьироваться - и из-за этого у меня не все фразы влазят - (они ведб пишуться в одну строку)
1. МОЖНО ЛИ сделать автоперенос - типа как в Exele
2. Если нет - то чем лучше заменить
3. Как сохранить таблицу Grida в файл типа Exl или Word
Помогите пожалста - Диплом стоит !!!!!!!!!!!!!!
← →
dataMaster (2003-06-14 16:09) [1]Вот в FAQ"ах нашел описание и кусок кода. Но на работоспособность я его не проверял...
Сперва необходимо установить свойство DefaultDrawing в False. Далее, необходимо вставить следующий код в обработчик события OnDrawCell:
procedure TForm1.StringGrid1DrawCell(Sender: TObject;
Col, Row: Longint;
Rect: TRect;
State: TGridDrawState);
var
Line1: string;
Line2: string;
ptr: integer;
padding: integer;
hGrid: TStringGrid;
begin
hGrid:= (Sender as TStringGrid);
ptr := Pos(";", hGrid.Cells[Col, Row]);
if ptr > 0 then
begin
Line1 := Copy(hGrid.Cells[Col, Row], 1, ptr - 1);
Line2 := Copy(hGrid.Cells[Col, Row], ptr + 1,
Length(hGrid1.Cells[Col,Row]) - ptr);
end
else Line1 := hGrid.Cells[Col, Row];
hGrid.Canvas.FillRect(Rect);
hGrid.Canvas.TextOut(Rect.Left, Rect.Top + 2, Line1);
if ptr > 0 then
hGrid.Canvas.TextOut(Rect.Left, Rect.Top -
hGrid.Canvas.Font.Height + 3, Line2);
end;
Теперь достаточно для переноса строки вставить в неё точку с запятой. Так же не забудьте изменить высоту строки так, чтобы переносы строки поместились в ячейку:
StringGrid1.RowHeights[0] := StringGrid1.DefaultRowHeight * 2 ;
← →
Leon_M@ni@k (2003-06-14 16:57) [2]КОД - ОТЛИЧНЫЙ - СПАСИБО ))))
Осталась только 3-я проблема !! )
← →
Song (2003-06-14 22:01) [3]1) DrawText()
3) Через буфер обмена передай в ворд или эксцель
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.028 c