Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 19:29   #1
SsdD
Пользователь
 
Регистрация: 06.05.2009
Сообщений: 17
По умолчанию StringGrid

Уважаемые программеры, вот у меня в СГ такие числа:
11110
1111
101
11

нужно, чтобы получились такие:
11110
01111
00101
00011

Код:
var
i: integer;
begin
for i:=0 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[1,i]:=dec2bin(strtoint(StringGrid1.Cells[0,i]));
if length(StringGrid1.Cells[1,i])>length(StringGrid1.Cells[1,i+1]) then
StringGrid1.Cells[1,i+1]:='0'+StringGrid1.Cells[1,i+1];
end;
А он в ответ ничего подобного не делает, может где та ошибка у меня?
dec2bin-это функция преобразования 10-го в 2-ый.
SsdD вне форума Ответить с цитированием
Старый 03.05.2010, 20:48   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
StringGrid1.Cells[1,i]:=dec2bin(strtoint(StringGrid1.Cells[0,i]));
вычисляем в строке i
Код:
if length(StringGrid1.Cells[1,i])>length(StringGrid1.Cells[1,i+1]) then
StringGrid1.Cells[1,i+1]:='0'+StringGrid1.Cells[1,i+1];
а затем проверяем строку i+1 где еще ничего нет и стало быть
length(....[1,i+1])=0
Код:
if length(StringGrid1.Cells[1,i])>0) then
StringGrid1.Cells[1,i+1]:='0'+StringGrid1.Cells[1,i+1];
но даже после исправления будет добавлен максимум один 0.
если надо больше и неизвестно сколько, то нужен while
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 03.05.2010 в 20:52.
evg_m вне форума Ответить с цитированием
Старый 03.05.2010, 23:42   #3
SsdD
Пользователь
 
Регистрация: 06.05.2009
Сообщений: 17
По умолчанию

Немного подправлю, у меня есть 2 столбца, из них 1-ый столбец заполнен полностью, в другой кнопке происходит заполнение, но там такие строки
Код:
1110
101
11
1
Вот я патаюсь сделать чтобы они были такие:
Код:
1110
0101
0011
0001
Но почемута ничего не происходит, вроде бы условие правильное..
ПС. кол-во нулей пока что не так важно, главное чтобы выполнилось хотябы такое:
Код:
1110
101

1110
0101
SsdD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stringgrid Vitaliy3009 Общие вопросы Delphi 3 14.10.2009 16:59
StringGrid StartMis Общие вопросы Delphi 5 21.11.2008 15:11
StringGrid SergGhost Помощь студентам 2 29.10.2008 08:48
StringGrid MAcK Общие вопросы .NET 2 31.03.2008 11:40