![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Скорее всего, как уже говорилось выше, в таблице есть несколько одинаковых записей (в смысле с одинаковым кодом). Потому и такие результаты. Является ли эта ситуация нормой, я не знаю, т.к. логику построения Вашей БД не знаю. Проверьте содержимое таблицы на предмет записей с повторяющимися кодами.
|