Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FlexСel [D5, D6, D7, Win2k, WinXP]


trash_s ©   (2005-09-12 19:25:00) 

Кто работал с FlexCel? Есть ли автоподгонка ширины колонок при работе с компонентом FlexCelImport. Пару методов (добавление/удаление листов) случайно нашол, в хелпе их нет. Может в хелпе еще чего нет?


trash_s   (2005-09-14 14:15:00) [1]

Написал что-то типа:
procedure AutoWidthCol(FlexCelImport: TFlexCelImport; Col: integer);
var Canvas: TCanvas;
   row, MaxColWidth, FontColor, width: integer;
   text: string;
begin
 Canvas := TCanvas.Create;
 try
   Canvas.Handle := GetDC(GetDesktopWindow());
   for row := 1 to FlexCelImport.MaxRow do begin
     Canvas.Font.Name := FlexCelImport.CellFormatDef[row,Col].Font.Name;
     Canvas.Font.Size := Round(FlexCelImport.CellFormatDef[row,Col].Font.Size20 / 20);
     Canvas.Font.CharSet := FlexCelImport.CellFormatDef[row,Col].Font.CharSet;
     Canvas.Font.Style := [];
     if flsBold in FlexCelImport.CellFormatDef[row,Col].Font.Style then
       Canvas.Font.Style := Canvas.Font.Style + [fsBold];
     if flsItalic in FlexCelImport.CellFormatDef[row,Col].Font.Style then
       Canvas.Font.Style := Canvas.Font.Style + [fsItalic];

     //увеличить строку на один символ, на всякий случай
     text := '8' + XlsFormatValue(FlexCelImport.CellValue[row,Col],
                                  FlexCelImport.CellFormatDef[row,Col].Format, FontColor);
     width := Canvas.TextWidth(text);
     if MaxColWidth < width then MaxColWidth := width;
   end;
   FlexCelImport.ColumnWidth[Col] := Round(MaxColWidth * ColMult);
 finally
   Canvas.Free;
 end;
end;


trash_s   (2005-09-13 18:55:00) [2]

Видимо придется самому расчитать ширину колонки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо