StringGrid

VCL, KOL, CLX и др. Свои компоненты
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

25 дек 2006, 10:23

Появились вопросы по этому компоненту.. В хелпе не нашел :(

1. Есть ли ограничение по количеству строк?
2. Как можно из StringGrid экспортировать в Excel
3. Как сделать так чтобы скрол бары не стояли на месте а, прокручивались вместе с данными?
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

25 дек 2006, 11:05

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. У меня прокручиваются ;) )
С уважением, Lost Angel...
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

25 дек 2006, 11:48

пасибо! :)

а у меня почему то не прокручивается само.. :/
Tre
Сообщения: 27
Зарегистрирован: 07 янв 2007, 23:26

07 янв 2007, 23:46

Помогите пожалуйста! Я в Delphi совсем никак. Как задать матрицу одномерную и двумерную с помощью StringGrid. Надо чтоб была возможность ввода с рук и с помощью генератора случайных чисел! Очень надо!
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

08 янв 2007, 00:15

Кидаешь компонент на форму, указываешь 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
It's a long way to the top if you wanna rock'n'roll
Tre
Сообщения: 27
Зарегистрирован: 07 янв 2007, 23:26

08 янв 2007, 00:25

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 совсем чуть-чуть, поэтому я с трудом понимаю твои слова. Но батон я осилил! :-)
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

08 янв 2007, 00:32

&quot писал(а):Может ты мне поможешь саму задачу решить? Значит дана прямоугольная матрица. Определить а) кол-во строк, не содержащих ни одного нулевого элемента; b) максимальное из чисел, встречающих в заданной матрице более одного раза. Матрица задается в StringGrid'е. Буду очень тебе благодарен! Только я в Delphi совсем чуть-чуть, поэтому я с трудом понимаю твои слова. Но батон я осилил! :-)
Я уже читал в другой теме, там же и отвечу
It's a long way to the top if you wanna rock'n'roll
Tre
Сообщения: 27
Зарегистрирован: 07 янв 2007, 23:26

08 янв 2007, 00:36

ну ты мне скажи какая тема-то?
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

08 янв 2007, 00:42

It's a long way to the top if you wanna rock'n'roll
matroskin
Сообщения: 38
Зарегистрирован: 17 ноя 2006, 10:53

10 янв 2007, 10:00

кстати какая разница в коде будет для сохранения в экселе 2003 и 97 :/

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