Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Как проверить занятость всех ячеек в StringGrid   Найти похожие ветки 

 
ddrx   (2003-06-21 19:40) [0]

Почему не работает следующий код?
if (StringGrid1.Cells [1,i]="") or (StringGrid1.Cells [2,i]="")
then
BitBtn2.Enabled:=false
else BitBtn2.Enabled:=true;
Я только учусь, так что не ругайте.


 
Anatoly Podgoretsky ©   (2003-06-21 19:42) [1]

А тебе что именно надо?


 
ddrx   (2003-06-21 19:43) [2]

Ивините, не дописал.
for i:=0 to StringGrid1.RowCount - 1 do
begin
if (StringGrid1.Cells [1,i]="") or (StringGrid1.Cells [2,i]="")
then
BitBtn2.Enabled:=false
else BitBtn2.Enabled:=true;
end;


 
ddrx   (2003-06-21 19:46) [3]

> Anatoly Podgoretsky © (21.06.03 19:42)
Я ввожу числа в столбцы StringGrid1.Cells [1,i] и StringGrid1.Cells [2,i]
А кнопка срабатывает даже если заполнены только ячейки в последней строке.


 
Anatoly Podgoretsky ©   (2003-06-21 19:52) [4]

Что происходит понятно, а вот что именно ты хочешь сделать нет. Если ты не можешь сказать точно, то тогда попробуй рассказать своими словами.


 
Makhanev A.S. ©   (2003-06-21 19:57) [5]

Таким образом ТЫ проверишь только последнюю итерацию цикла.
Подумай об этом.


 
ddrx   (2003-06-21 20:00) [6]

У меня имеется StringGrid1 и кнопка BitBtn2
Если в StringGrid1 есть хоть одна не заполненная ячейка, то кнопка остается не доступной.
В StringGrid1"е имеются 3 столбца: 1-й это нумерация и его проверять не надо, во 2-й и 3-й я ввожу числа.
Да числа вводятся с самой первой строки, т.е. с нулевой, а не с 1-й.


 
Makhanev A.S. ©   (2003-06-21 20:05) [7]

Тогда так:

BitBtn2.Enabled:=True
for i:=0 to StringGrid1.RowCount - 1 do
if (StringGrid1.Cells [1,i]<>"") or (StringGrid1.Cells [2,i]<>"")
then begin
BitBtn2.Enabled:=false
Break;
end;


 
Anatoly Podgoretsky ©   (2003-06-21 20:06) [8]

Тогда надо переписать код, что бы прекращать сканирование при нахождении первой пустой ячейки.

BitBtn2.Enabled := true;
for i:=0 to StringGrid1.RowCount - 1 do
begin
if (StringGrid1.Cells [1,i] = "") or (StringGrid1.Cells [2,i]= "")
then begin
BitBtn2.Enabled := false;
Break;
end;
end;


 
Makhanev A.S. ©   (2003-06-21 20:11) [9]

прошу прощения, конечно так:
if (StringGrid1.Cells [1,i] = "") or (StringGrid1.Cells [2,i]= "")
просмотрел слолво "НЕ"


 
ddrx   (2003-06-21 20:14) [10]

Понятно. Спасибо! Забыл про выход из цикла. Недавно же читал об этом...
Только для моего примера нужно так
for i:=0 to StringGrid1.RowCount do
чтобы проверять с первой строки.


 
ddrx   (2003-06-21 20:16) [11]

или нет...


 
Anatoly Podgoretsky ©   (2003-06-21 20:35) [12]

for i:=0 to StringGrid1.RowCount do
Так правильно от нулевой до последней


 
Anatoly Podgoretsky ©   (2003-06-21 20:40) [13]

RowCount - 1



Страницы: 1 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
7-7726
Ihor Osov'yak
2003-04-21 20:15
2003.07.03
DeviceIoControl,METHOD_BUFFERED и данные по поинтеру Win32,


3-7326
supersan
2003-06-09 12:38
2003.07.03
Глюк с DBGridEh? Или со мной что-то не то?


4-7752
demonyator
2003-05-01 03:15
2003.07.03
Глобальный ActivateKeyboardLayout в Windows XP.


1-7495
Subdigger
2003-06-17 12:01
2003.07.03
pointer


1-7454
Centurion
2003-06-23 17:58
2003.07.03
Программа в программе