IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Заполнение таблицы stringgrid
ninja
сообщение 20.09.2009 11:54
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый день!

Столкнулся с такой проблемой: необходимо таблицу stringgrid заполнить значениями '1' и '0' по такому принцыпу
для 2х столбцов:
Код

00
01
10
11

для 3х столбцов
Код

000
001
010
011
100
101
110
111

Причем количество столбцов может быть любым например 10, и заполнение таблицы происходит по такому принцыпу. Помогите разобраться.
Первые 2 строчки заполнил обычным циклом, для остальных делал следующее:
Пробывал сначала бежать по каждой строчке и если встречается '1' то смотреть что после нее, если '0' , то в следующую записывалась '1' если после '1' всречалась снова '1' то '1' записывалась после текущей позиции.




k:=strtoint(kolvo_el);
stringgrid1.ColCount:=k;//количество колонок
if (k mod 2)>0 then
begin
stringgrid1.RowCount:=sqr(k);
end
else
begin
stringgrid1.RowCount:=sqr(k)+1;
end;
i:=stringgrid1.colCount-1;
j:=1;
kk:=0;
for x:=0 to stringgrid1.RowCount-1 do //stringgrid1.RowCount-1
begin
for y:=0 to stringgrid1.ColCount-1 do
begin
if x=0 then
begin
stringgrid1.Cells[i,1]:=inttostr(0);
dec(i);
end;
if x=1 then
begin
if y=0 then
begin
stringgrid1.Cells[i,2]:=inttostr(1);
dec(i);
end
else
begin
stringgrid1.Cells[i,2]:=inttostr(0);
dec(i);
end;
end;
if (x=2)or(x>2){and(x<>stringgrid1.ColCount-1)} then
begin
if i=0 then
begin
i:=stringgrid1.ColCount-1;
end;
if stringgrid1.Cells[i,j-1]=inttostr(1) then
begin
if stringgrid1.Cells[i-1,j-1]=inttostr(0) then
begin
stringgrid1.Cells[i-1,j]:=inttostr(1);
end;
if stringgrid1.Cells[i-1,j-1]=inttostr(1) then
begin
stringgrid1.Cells[i+1,j]:=inttostr(1);
end;
{stringgrid1.Cells[i,j]:=inttostr(1); }

end;

stringgrid1.cells[i,j]:='0';
dec(i);
end;

end;
{if (x=0)or(x=1)or(y=0) then}
i:=stringgrid1.ColCount-1;
inc(j);
end;
end;



Затем пробывал бежать по каждому столбцу т.е. если последний столбец, то заполняется так 0,1,0,1,0,1......
предпоследний так 00,11,00,11,00........ и т.д. Тут столкнулся с проблемой как реализовать такой цикл.


kolvo_el:=edit1.Text;
label1.Caption:=kolvo_el;
k:=strtoint(kolvo_el);
stringgrid1.ColCount:=k;//количество колонок
if (k mod 2)>0 then
begin
stringgrid1.RowCount:=sqr(k);
end
else
begin
stringgrid1.RowCount:=sqr(k)+1;
end;
i:=stringgrid1.colCount-1;
j:=1;
kk:=0;
for y:=0 to stringgrid1.RowCount-1 do
begin
for m:=0 to 1 do
begin
stringgrid1.Cells[i,j]:=inttostr(m);
inc(j);
end;
end;
//i:=stringgrid1.ColCount-1;
end;



P.S. Заранее благодарен за помощь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.07.2025 10:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"