StringGrid

VCL, KOL, CLX и др. Свои компоненты
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

12 янв 2007, 04:58

Что ты делаешь с TStringGrid? В какой момент ты хочешь чтобы скролы двигались? Когда изменяешь значение в ячейке? Когда делаешь ячейку активной? Когда добавляешь строку?
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

12 янв 2007, 13:50

SergeyS писал(а):Что ты делаешь с TStringGrid? В какой момент ты хочешь чтобы скролы двигались? Когда изменяешь значение в ячейке? Когда делаешь ячейку активной? Когда добавляешь строку?
в стринггрид у меня добавляются данные (довольно много)
да, когда добавляется строка!
и чтобы она видна была а не уходила вниз (когда их много) :)
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

12 янв 2007, 20:05

попробуй так:

Код: Выделить всё

StringGrid1.TopRow := StringGrid1.RowCount - StringGrid1.VisibleRowCount;
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

16 янв 2007, 13:54

SergeyS писал(а):попробуй так:

Код: Выделить всё

StringGrid1.TopRow := StringGrid1.RowCount - StringGrid1.VisibleRowCount;
да, пасибо, именно оно=)
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

08 фев 2007, 15:24

как нить можно оптимизировать этот код

Код: Выделить всё

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;
а то Stringgid из нескольких тысяц строк сохранияется в Excel несколько минут.. :(
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

10 фев 2007, 04:43

&quot писал(а):а то Stringgid из нескольких тысяц строк сохранияется в Excel несколько минут..
Если работать с Excel как с OLE объектом, то никак. Так медленно и будет (разве что сказать Excel.ScreenUpdating := False на время заполнения. Ускорит но не намного)

Я применяю использую следующую методику: модифицирую непосредственно сам файл сохранённый в XML формате. Но к сожалению такой формат понимает только Office XP, 2003 и 2007 (а ещё и OpenOffice :) .

Можно попробовать формировать HTML файл и пробовать открывать его в Excel... не пробовал...
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

12 фев 2007, 17:15

а варианты не быстрее пишутся? я правда многотысячные выгрузки не делаю...
Изображение
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

14 фев 2007, 12:38

SergeyS писал(а):Если работать с Excel как с OLE объектом, то никак. Так медленно и будет (разве что сказать Excel.ScreenUpdating := False на время заполнения. Ускорит но не намного)

Я применяю использую следующую методику: модифицирую непосредственно сам файл сохранённый в XML формате. Но к сожалению такой формат понимает только Office XP, 2003 и 2007 (а ещё и OpenOffice :) .

Можно попробовать формировать HTML файл и пробовать открывать его в Excel... не пробовал...

а можно поподробней на счет xml? :)
oke
Сообщения: 5
Зарегистрирован: 18 май 2009, 11:53

18 май 2009, 12:02

Ктонибудь может мне помочь с этим,а то я полный профан в этом деле. Пытался что-то написать,ничего не получается.У когонить есть готовый код?Очень буду благодарен.
P.S.Я застрял на этом куске :
Этот кусок должен делить первую строчку на первый элемент.
У меня делиться только первый элемент.Может я гдето что-то проглядел?Укажите пожалуйста,а то я уже 10 раз всё проверял.

Код: Выделить всё

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; 
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

18 май 2009, 16:11

а хде J? и индексация Cells идёт [строка, столбец] (вроде...)
Изображение
Ответить