1 (edited by Serhij 2014-11-29 18:36:09)

Topic: Динамическая высота строк в гриде

Можете ли Вы в методы и свойства Таблицы добавить такие возможности:
Row.Height - установка высоты строки из скрипта;
Row.TextLinesCount - определение наибольшего количества строк, на которые разбит текст в ячейках строки?
Моя идея такова: по событию TableGrid OnChange определяется максимальное количество строк текста и устанавливается соответствующая высота строки. Например, если в ячейках одна строка текста, то высота строки - 18; если в одной из ячеек текст разбит на две строки, то высота всей строки - 36; и т.д.
И добавить подобное

Form1.TableGrid1.Columns[0].VerticalAlignment := taAlignTop;
Form1.TableGrid1.Columns[0].WrapKind := wkWordWrap;

не только для строк, но и для заголовка колонок, с возможностью задания для него произвольной высоты.

Re: Динамическая высота строк в гриде

Для компонента TableGrid добавил метод BestFitRow,
скачайте последнюю бета версию 1.48
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0


пример использования

procedure Form1_GridEmployees_OnColumnResize (Sender: string; ACol: Integer);
begin
    Form1_GridEmployees_OnChange ('');
end;

procedure Form1_GridEmployees_OnChange (Sender: string);
var
    i, c: integer;
begin
    // settings for header
    //Form1.GridEmployees.HeaderSize := 50;
    //Form1.GridEmployees.Columns[0].Header.MultiLine := True;
    //Form1.GridEmployees.Columns[0].Header.Caption := 'One line' + #13 + 'Two line';


    Form1.GridEmployees.Options := Form1.GridEmployees.Options or goRowResizing;

    c := Form1.GridEmployees.Columns.Count - 1;
    for i := 0 to c do
    begin
        Form1.GridEmployees.Columns[i].VerticalAlignment := taAlignTop;
        Form1.GridEmployees.Columns[i].WrapKind := wkWordWrap;
    end;

    c := Form1.GridEmployees.RowCount - 1;
    for i := 0 to c do Form1.GridEmployees.BestFitRow(i);

end; 


Можете скачать проект с данным примером:

Post's attachments

Attachment icon RowsHeight auto.zip 5.93 kb, 1285 downloads since 2014-11-30 

Dmitry.

Re: Динамическая высота строк в гриде

Спасибо. Сейчас попробую.