У меня есть сетка строк, связанная с FDMemTable, и когда я запускаю процедуру AutoSize (которую я добавил к ее помощнику класса), в первый раз все идеально.Заголовок автосогласования столбцов
После этого, когда я пытаюсь открыть FDMemTable, мой заголовок возвращается к размеру по умолчанию, но остальные строки остаются неизменными.
Моя процедура выглядит следующим образом:
procedure TStringGridHelper.AutoSizeCols;
var
i, W, WMax: integer;
Column : Integer;
begin
for Column := 0 to Self.ColumnCount-1 do
begin
if Self.ColumnByIndex(Column).Width > 0 then
begin
WMax := Round(Canvas.TextWidth(Self.ColumnByIndex(Column).Header));
for i := 0 to (Self.RowCount - 1) do begin
W := Round(Canvas.TextWidth(Self.Cells[Column, i]));
if W > WMax then
WMax := W;
if WMax > SizeMax then
begin
WMax := SizeMax;
Break;
end;
end;
Self.ColumnByIndex(Column).Width := WMax + 10;
end;
end;
end;
Если изменить размер столбца вручную, возвращается в нормальное русло.
Я использую XE7 и его приложения, использующего Multi-Device (FireMonkey)
Вы также попытались установить Self.ColWidths []? –
ColWidths больше не существует –