Страница 1 из 4

StringGrid

Добавлено: 25 дек 2006, 10:23
matroskin
Появились вопросы по этому компоненту.. В хелпе не нашел :(

1. Есть ли ограничение по количеству строк?
2. Как можно из StringGrid экспортировать в Excel
3. Как сделать так чтобы скрол бары не стояли на месте а, прокручивались вместе с данными?

Re: StringGrid

Добавлено: 25 дек 2006, 11:05
LAngel
1. Есть, 2^31-1
2. Руками.
[syntax="delphi"]var
ExcelApp: Variant;
i, j: Integer;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible:=true;
ExcelApp.WorkBooks.Add;

for i := 0 to StringGrid1.ColCount-1 do
for j := 0 to StringGrid1.RowCount-1 do
ExcelApp.Cells[j+1, i+1].value := StringGrid1.Cells[i,j];
end;[/syntax]
3. У меня прокручиваются ;) )

Re: StringGrid

Добавлено: 25 дек 2006, 11:48
matroskin
пасибо! :)

а у меня почему то не прокручивается само.. :/

Re: StringGrid

Добавлено: 07 янв 2007, 23:46
Tre
Помогите пожалуйста! Я в Delphi совсем никак. Как задать матрицу одномерную и двумерную с помощью StringGrid. Надо чтоб была возможность ввода с рук и с помощью генератора случайных чисел! Очень надо!

Re: StringGrid

Добавлено: 08 янв 2007, 00:15
somewhere
Кидаешь компонент на форму, указываешь RowCount и ColCount и можно заполнять ячейки значениями. Потом делаешь батон и по нажатию батона в цикле бежишь по строкам и столбцам и заполняешь значениями:

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

procedure TForm1.BitBtn1Click(Sender: TObject);
var x, y: Integer;
begin
for x:=0 to sg.RowCount-1 do
    for y:=0 to sg.ColCount-1 do
        sg.Cells[y,x] := Inttostr(random(100)-50);
end;
В пропертях Options есть свойства компонента, как разрешение редактирования:
goEditing - true/false
Если не нужны фиксированные строки и столбцы
FixedCols - 0
FixedRows - 0

Re: StringGrid

Добавлено: 08 янв 2007, 00:25
Tre
somewhere писал(а):Кидаешь компонент на форму, указываешь RowCount и ColCount и можно заполнять ячейки значениями. Потом делаешь батон и по нажатию батона в цикле бежишь по строкам и столбцам и заполняешь значениями:

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

procedure TForm1.BitBtn1Click(Sender: TObject);
var x, y: Integer;
begin
for x:=0 to sg.RowCount-1 do
    for y:=0 to sg.ColCount-1 do
        sg.Cells[y,x] := Inttostr(random(100)-50);
end;
Может ты мне поможешь саму задачу решить? Значит дана прямоугольная матрица. Определить а) кол-во строк, не содержащих ни одного нулевого элемента; b) максимальное из чисел, встречающих в заданной матрице более одного раза. Матрица задается в StringGrid'е. Буду очень тебе благодарен! Только я в Delphi совсем чуть-чуть, поэтому я с трудом понимаю твои слова. Но батон я осилил! :-)

Re: StringGrid

Добавлено: 08 янв 2007, 00:32
somewhere
&quot писал(а):Может ты мне поможешь саму задачу решить? Значит дана прямоугольная матрица. Определить а) кол-во строк, не содержащих ни одного нулевого элемента; b) максимальное из чисел, встречающих в заданной матрице более одного раза. Матрица задается в StringGrid'е. Буду очень тебе благодарен! Только я в Delphi совсем чуть-чуть, поэтому я с трудом понимаю твои слова. Но батон я осилил! :-)
Я уже читал в другой теме, там же и отвечу

Re: StringGrid

Добавлено: 08 янв 2007, 00:36
Tre
ну ты мне скажи какая тема-то?

Re: StringGrid

Добавлено: 08 янв 2007, 00:42
somewhere

Re: StringGrid

Добавлено: 10 янв 2007, 10:00
matroskin
кстати какая разница в коде будет для сохранения в экселе 2003 и 97 :/

то у меня только в 2003 работает, а в 97 выдает: "Несовместимая версия заглушки Rpc"