Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Заполнение StringGrid / 7 сообщений из 7, страница 1 из 1
27.05.2014, 15:58
    #38653516
Armagedon4uk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
Помогите исправить.Мне нужно что бы при нажатии на кнопку програма считывала цифру из Edit5 и записывала в StringGrid. И так пока весь StringGrid не заполнится. Мне надо что б оно заполняло как матрицу.В консоли я знаю как сделать это и даже есть код но через StringGrid не могу сделать.Или может это все делать через цикл?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int i=1,j=1;
if((j<=StringGrid1->ColCount)&&(i<=StringGrid1->RowCount))
{
if(StringGrid1->Cells[i][j]!="")
{
StringGrid1->Cells[i][j]=StrToInt(Edit5->Text);
}
else
j++;
}
else
i++;
...
Рейтинг: 0 / 0
28.05.2014, 09:07
    #38654062
TempFox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
Переменные (i, j) (назовите их более информативно) сделать глобальными, а лучше private-членами класса TForm1.

Их инициализация, например, в конструкторе формы.

По нажатию на кнопку, если (i, j) не превышают размер StringGrid1, заполняем одну ячейку по индексу (i, j) и правильно инкрементируем индексы.
...
Рейтинг: 0 / 0
28.05.2014, 10:16
    #38654147
Armagedon4uk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
Я сделал вот так если кому нибудь будет нужно.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
int i=0,j=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(StringGrid1->Cells[i][j]=="")
{
StringGrid1->Cells[i][j]=StrToInt(Edit5->Text);
i++;
if(i==StringGrid1->ColCount)
{
i=0;
j++;
}
}
Edit5->SetFocus();
}
...
Рейтинг: 0 / 0
28.05.2014, 10:37
    #38654174
TempFox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
А j что не проверяется на превышение RowCount ?
...
Рейтинг: 0 / 0
28.05.2014, 10:46
    #38654189
TempFox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
И ещё: а (i, j) нельзя было сделать static внутри Button3Click() с инициализацией нулями?
...
Рейтинг: 0 / 0
28.05.2014, 15:36
    #38654684
Armagedon4uk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
Я думаю человек будет видеть что таблица заполнена. Но я хочу проверку j на превышение RowCount для удобности но не могу пока придумать как.Помогите если не сложно.
...
Рейтинг: 0 / 0
29.05.2014, 12:42
    #38655636
TempFox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение StringGrid
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
//int i=0,j=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
static int i = 0;
static int j = 0;

if(j == StringGrid1->RowCount) return;

if(StringGrid1->Cells[i][j]=="")
{
StringGrid1->Cells[i][j]=StrToInt(Edit5->Text);
i++;
if(i==StringGrid1->ColCount)
{
i=0;
j++;
}
}
Edit5->SetFocus();
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Заполнение StringGrid / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]