Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Текст в несколько строк в mdvXLGrid - КАК?   Найти похожие ветки 

 
<Falcon>   (2003-09-17 12:06) [0]

Посоветуйте, как лучше сделать текст в ячейке сетки mdvXLGrid в несколько строк?
пробовал:

mdvXLGrid.Cels[i,j].Text:="1-st string"+#13#10+"2-nd string";

 -  не работает выдает в одну строку с мусором вместо завершения строки и Enter.

Или только через Canvas делать? Не хотелось бы...


 
savva ©   (2003-09-17 14:55) [1]

я подправлял модуль под свои нужды - убирал DT_SINGLELINE из строки
       DrawText(ACanvas.Handle, PChar(ATitle.Items[i]), -1, ARect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);


 
mdw ©   (2003-09-17 15:31) [2]

Или написать эту строчку в в событии OnDrawCell
procedure TMainForm.XLGridDrawCell(Sender: PControl; ACol, ARow: Integer;
 ACell: PmdvXLCell; ACanvas: PCanvas; ARect: TRect; ASelected,
 AFocused: Boolean; var Access: Boolean);
begin
   Access:= True;
   ACanvas.RequiredState( HandleValid or FontValid or BrushValid or ChangingCanvas );
   DrawText(ACanvas.Handle, PChar(ATitle.Items[i]), -1, ARect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;


 
mdw ©   (2003-09-17 15:34) [3]

Вернее вот такую строку:
DrawText(ACanvas.Handle, PChar(ACell.Text), -1, ARect, DT_WORDBREAK);


 
<Falcon>   (2003-09-17 15:46) [4]

Во... а то я предыдущий ответ чиатю и уже переспросить хотел при чем тут ATitle.Items[i]. :) Я понял, спасибо!


 
<Falcon>   (2003-09-17 17:13) [5]

Работает, только линии сетки затирает...


 
mdw ©   (2003-09-17 20:07) [6]

>Работает, только линии сетки затирает...
Не затирает, а не рисует. Вся отрисовка ячейки ложится на пользователя... Может свойство - признак как выводить, в одну или несколько строк добавить?


 
<Falcon>   (2003-09-18 09:54) [7]

Да. Все правильно. Это я уже поправил. Я тут уже с другой проблемой столкнулся:
При выводе в несколько строк и горизонтальном расположении текста
все нормально - что хотел то и получил, а вот при вертикальном - по строкам то текст бьется, но выводится невесть куда, только части видны. Или вообще одну строку на другую лепит.Вот код, может кто-нибудь подскажет где ошибка?

procedure TForm1.Button1Click(Sender: PObj);
begin
Grid.Cells[1,1].Font.FontName:="Arial";
Grid.Cells[1,1].Font.FontOrientation:=900;
Grid.Cells[1,1].Font.Color:=clWindowText;
Grid.Cells[1,1].Font.FontStyle:= [fsBold,fsItalic,fsUnderline];
Grid.Cells[1,1].Font.FontCharSet:=RUSSIAN_CharSet;
Grid.AlignmentVert:= avBottom;
Grid.AlignmentHor:=ahCenter;
Grid.Cells[1,1].Text:="Первая строка, вторая строка";
Grid.Cells[1,2].Text:="Test!";
end;

procedure TForm1.GridDrawCell(Sender: PControl; ACol, ARow: Integer;
 ACell: PmdvXLCell; ACanvas: PCanvas; ARect: TRect; ASelected,
 AFocused: Boolean; var Access: Boolean);
begin
Access:= ACell=Grid.Cells[1,1];
ACanvas.Rectangle(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom);
ACanvas.Font.Assign(ACell.Font);
ACanvas.RequiredState( HandleValid or FontValid or BrushValid or ChangingCanvas );
DrawText(ACanvas.Handle, PChar(ACell.Text), -1, ARect, DT_WORDBREAK or DT_CENTER or DT_BOTTOM );
end;

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
GlobalGraphics_UseFontOrient:=True;
end;

end.


 
mdw ©   (2003-09-18 14:58) [8]

Я поигрался с вертикальным выводом.
Получается вот так:
R:= MakeRect(ARect.Left, ARect.Bottom, ARect.Right, ARect.Top);
DrawText(ACanvas.Handle, PChar(ACell.Text), -1, R, DT_WORDBREAK or DT_RIGHT );

НО!!! Позиционируется техт правильно. А вот расчет переносов идет не по значению (ARect.Bottom - ARect.Top), а по (ARect.Right - ARect.Left). Я так думаю, что это все таки ошибка в DrawText.

Так что, наверное, придется или вручную расчитывать переносы и выводить построчно TextOut"ом или выводить техт горизонтально на Bitmap, поворачивать его и выводить в ячейке.



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

Форум: "KOL";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
14-1080565676
Shady
2004-03-29 17:07
2004.04.25
Lines created by Pascal


14-1080549980
Real
2004-03-29 12:46
2004.04.25
Борланд и Маздай - не сходятся даже на ниве математики???


3-1080287554
stelius
2004-03-26 10:52
2004.04.25
Как определить принадлежность поля к таблице?


1-1081126128
Сергей Петров
2004-04-05 04:48
2004.04.25
Вопросы про прозрачность


3-1080659929
Ivan
2004-03-30 19:18
2004.04.25
Вывод сводной информации в GroupFooter





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский