Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

Как проверить занятость всех ячеек в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-7406
LinOS
2003-06-23 06:33
2003.07.03
В ListBox хочу выделять Item правой кнопкой мыши.


1-7431
ViJen
2003-06-23 12:32
2003.07.03
Текстовые файлы


14-7605
_Alex_
2003-06-15 14:47
2003.07.03
Карта 2000, ГИС Панорама, проблемы


1-7377
Johny B.
2003-06-20 07:05
2003.07.03
ActiveX


1-7397
Maxim Pshevlotsky
2003-06-23 04:53
2003.07.03
Перетаскивание формы курсором мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский