|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Не понятно что не так
Здравствуйте!
Не понятно почему условие else наступает только на 4 - е нажатие кнопки? хотя условие false. Код:
if Table3.Locate('Rezid',Table1.FieldByName('Projid').AsInteger,[]) then begin for i:=0 to m do begin StringGrid1.Cells[6,i+1]:=Table3.FieldByName('Alfa6').AsString; Table3.Next; c12_[i]:=StrtoFloat(Table3.FieldByName('Alfa6').AsString); end; ysum1_[0]:=c7_[14]; ........ Chart1.Series[0].Clear; for i:=0 to n do begin alfa1[i]:=(10+5*i); Chart1.Series[0].AddXY(alfa1[i],ysum1_[i]); end; end else begin for i:=1 to m+1 do begin StringGrid1.Cells[1,i]:=''; StringGrid1.Cells[2,i]:=''; StringGrid1.Cells[3,i]:=''; StringGrid1.Cells[4,i]:=''; StringGrid1.Cells[5,i]:=''; StringGrid1.Cells[6,i]:=''; end; Chart1.Series[0].Clear; end; Код:
for i:=1 to m+1 do begin StringGrid1.Cells[1,i]:=''; StringGrid1.Cells[2,i]:=''; StringGrid1.Cells[3,i]:=''; StringGrid1.Cells[4,i]:=''; StringGrid1.Cells[5,i]:=''; StringGrid1.Cells[6,i]:=''; end; Chart1.Series[0].Clear; Последний раз редактировалось Maks19, 03.07.2024 в 20:31. |
#2
|
||||
|
||||
Вопрос поставлен в стиле "милый мой, хороший, догадайся сам". Про какую кнопку речь - непонятно. По идее код - обработчик нажатия той самой кнопки? Ветка с Else не работает, потому что метод Locate находит нужную запись в таблице, вот и весь ответ. Если не должен находить - смотрите, что в таблице, и какие конкретно данные передаются функции Locate. Бросьте Memo на форму, и добавляйте эти данные туда, чтобы наглядно увидеть, что происходит на первых трёх нажатиях кнопки, и что - на четвёртом.
|
#3
|
|||
|
|||
Проверил так
Код:
Memo1.Text:=FloatToStr(Table1.FieldByName('Projid').AsInteger); |
#4
|
|||
|
|||
может быть ты где-то делаешь First или переоткрываешь таблицу. Соответственено, Locate ищет с первой записи. Или ты ищешь в таблице, где есть несколько записей, удовлетворяющих ключу поиска. По мне, так было бы надежнее просто сделать SQL запрос и работать только с записями соотв. Projid.
|
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Скорее всего, как уже говорилось выше, в таблице есть несколько одинаковых записей (в смысле с одинаковым кодом). Потому и такие результаты. Является ли эта ситуация нормой, я не знаю, т.к. логику построения Вашей БД не знаю. Проверьте содержимое таблицы на предмет записей с повторяющимися кодами.
|