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

Вниз

TStringGrid   Найти похожие ветки 

 
Ice ©   (2006-08-13 00:18) [0]

Кто-нибудь знает, можно ли в одну ячейку грида поместить несколько строк? #13 он не воспринимает, никакой документации на эту тему ms не опубликовала. Помогите, пожалуйста советом или новой компонентой - очень надо.


 
Kolan ©   (2006-08-13 00:33) [1]

Многострочные ячейки в StringGrid.
Previous  Top  Next  

Сперва необходимо установить свойство 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 ;

Взято с Исходников.ru http://www.sources.ru

Опять же не проверял.


 
KilkennyCat ©   (2006-08-13 00:42) [2]

Наличие делимитера, его вычисления и проч. - лишнее. TextOut прекрасно умеет выводить в две и более строк самостоятельно и более точно. При наличии соответствущего флага (флагов).


 
Kolan ©   (2006-08-13 00:42) [3]


> KilkennyCat ©   (13.08.06 00:42) [2]

Даже не глядел что-там :) Всеравно не знаю как правильно..


 
Ketmar ©   (2006-08-13 01:03) [4]

> [3] Kolan ©   (13.08.06 00:42)
яхдр. (ц)


 
KilkennyCat ©   (2006-08-13 01:07) [5]

Я очипся, не текстоут, а дроутекст.

Вообщем, что-то вроде:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
 s : string;
begin
s := StringGrid1.Cells[Acol, aRow];
StringGrid1.Canvas.FillRect(Rect);
drawtext(StringGrid1.Canvas.Handle, pchar(StringGrid1.Cells[Acol, aRow]), length(s), rect, DT_WORDBREAK);

end;

---------------------------------------------------------------------------------
Набрано неглядя, нечитая, непроверяя и вообще я делфи незнаю, сюда случайно зашел.


 
Kolan ©   (2006-08-13 01:10) [6]


> яхдр. (ц)

Не запость я пост :) KilkennyCat ничего бы не заметил [2] и не дал бы ответ [5].

Все взаимосвязано :)


 
Ketmar ©   (2006-08-13 01:14) [7]

> [6] Kolan ©   (13.08.06 01:10)
эксклюзив! надо постить кривые решения, тогда набегут мастера и всё поправят. а если ничего не постить -- никто и не прибежит. %-)


 
KilkennyCat ©   (2006-08-13 01:43) [8]

и кстати, все-таки, пожалуйста, ИЩИТЕ ИНФОРМАЦИЮ, ПРЕЖДЕ ЧЕМ СПРАШИВАТЬ!!!!

http://www.delphimaster.ru/articles/stringgrid/index.html


 
Ice ©   (2006-08-13 13:05) [9]

Спасибо.


 
Kolan ©   (2006-08-13 21:36) [10]


> эксклюзив!

А то :)



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

Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
15-1157187715
Andy BitOff
2006-09-02 13:01
2006.09.24
DjVu просмотровщик


2-1157308104
Koka
2006-09-03 22:28
2006.09.24
HELP!


2-1157370098
Серый
2006-09-04 15:41
2006.09.24
Создание кнопки


15-1157515336
DeStranger
2006-09-06 08:02
2006.09.24
TheBat!


1-1155392466
!_SM_!
2006-08-12 18:21
2006.09.24
OnCreate, OnDestroy





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