Re: StringGrid
Добавлено: 12 янв 2007, 04:58
Что ты делаешь с TStringGrid? В какой момент ты хочешь чтобы скролы двигались? Когда изменяешь значение в ячейке? Когда делаешь ячейку активной? Когда добавляешь строку?
в стринггрид у меня добавляются данные (довольно много)SergeyS писал(а):Что ты делаешь с TStringGrid? В какой момент ты хочешь чтобы скролы двигались? Когда изменяешь значение в ячейке? Когда делаешь ячейку активной? Когда добавляешь строку?
Код: Выделить всё
StringGrid1.TopRow := StringGrid1.RowCount - StringGrid1.VisibleRowCount;
да, пасибо, именно оно=)SergeyS писал(а):попробуй так:Код: Выделить всё
StringGrid1.TopRow := StringGrid1.RowCount - StringGrid1.VisibleRowCount;
Код: Выделить всё
XLApp.Workbooks[1].WorkSheets[2].name:='2';
for i:= 0 to Form1.strngrd2.ColCount-1 do
for m:= 0 to Form1.strngrd2.RowCount-1 do
begin
XLApp.worksheets[2].Cells[m+1, i+1].value:=Form1.strngrd2.Cells[i,m];
end;
Если работать с Excel как с OLE объектом, то никак. Так медленно и будет (разве что сказать Excel.ScreenUpdating := False на время заполнения. Ускорит но не намного)" писал(а):а то Stringgid из нескольких тысяц строк сохранияется в Excel несколько минут..
SergeyS писал(а):Если работать с Excel как с OLE объектом, то никак. Так медленно и будет (разве что сказать Excel.ScreenUpdating := False на время заполнения. Ускорит но не намного)
Я применяю использую следующую методику: модифицирую непосредственно сам файл сохранённый в XML формате. Но к сожалению такой формат понимает только Office XP, 2003 и 2007 (а ещё и OpenOffice.
Можно попробовать формировать HTML файл и пробовать открывать его в Excel... не пробовал...
Код: Выделить всё
i:=-1;p:=0;
While i<=StringGrid1.ColCount-1 do
begin
inc(i);
d:=StrToFloat(StringGrid1.Cells[i,j]);
dd:=StrToFloat(StringGrid1.Cells[p,j]);
st:=FloatToStr(d/dd);
StringGrid1.Cells[i,j]:=st;//FloatToStr(StrToInt(StringGrid1.Cells[i,j])/ StrToFloat(StringGrid1.Cells[p,j])) ;
end;