Редактирование Tstinggrid

Тема в разделе "Delphi - Компоненты", создана пользователем Fine, 23 июл 2005.

Статус темы:
Закрыта.
  1. Fine

    Fine Гость

    Здраствуйте товарищи.

    Можо компонент в TStringGrid
    1. делать readonly=false
    2. делать многострочный (в ячейках через ентер написать (разделить) строки) ?
    Или есть другие компоненты с такими свойствами ?

    Заране спасибо :)
     
  2. Poseidon

    Poseidon Гость

    1) Установи в Options параметр goEditing в True.

    2) Многострочные ячейки в StringGrid:
    Сперва необходимо установить свойство DefaultDrawing в False. Далее, необходимо вставить следующий код в обработчик события OnDrawCell:

    Код (Text):
    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;
    Теперь достаточно для переноса строки вставить в неё точку с запятой. Так же не забудьте изменить высоту строки так, чтобы переносы строки поместились в ячейку:

    Код (Text):
    StringGrid1.RowHeights[0] := StringGrid1.DefaultRowHeight * 2;
     
  3. Fine

    Fine Гость

    А в Tdbgrid тоже можно ?
     
  4. Poseidon

    Poseidon Гость

    Что именно? У тебя 2 вопроса.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей