Главная страница
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.019 c
1-7406
LinOS
2003-06-23 06:33
2003.07.03
В ListBox хочу выделять Item правой кнопкой мыши.


1-7482
yozch_
2003-06-15 15:33
2003.07.03
goEditing


14-7658
INTAARI
2003-06-16 18:42
2003.07.03
Где можно взять WinSocket 2.0 и DCOM


1-7457
VID
2003-06-23 10:13
2003.07.03
Второй Clipboard


3-7362
Vick
2003-06-10 18:54
2003.07.03
Master-detail хранимой процедуры