![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Написал функцию, возвращающую логическое значение. Пытаюсь [D7, XP]
Michael5 © (2005-11-03 23:07:00)ее применить - ничего не получается!
Вот функция:
//Функция проверки, существует ли в столбце colName строка text.
//Как только значение в таблице найдено, происходит exit с Result'ом,
//равным true
function TKP.exsistIn(colName, text: string): boolean;
var x:integer;
begin
Result:=false;
OverviewADOTable.First;
for x:=1 to OverviewADOTable.RecordCount do begin
if OverviewADOTable.FieldByName(colName).Value=text then begin
Result:=true;
exit;
end;
OverviewADOTable.Next;
end;
Result:=false;
end;
Вот я ее применяю:
procedure TKP.ApplyClick(Sender: TObject);
tmp:boolean;
begin
tmp:=exsistIn('имя шкафа', ComboBox4.Text);
if exsistIn('имя шкафа', ComboBox4.Text) then
tmp:=true;
...
и т.д. Суть в том, что на строках с переменной tmp отладка неактивна (не пойму, почему, ведь это такая же переменная, как и все), а если смотришь содержимое переменной tmp в watch, то там написано: variable 'tmp' inacessible here due to optimization...
Чего-то ни черта не понимаю, где ж я не прав???
Подскажите пожалуйста!
Anatoly Podgoretsky (2005-11-04 12:32:00) [1]Ну дубли операций не только там, но и двойной вызов функции.
А по поводу сообщения, все нормально, не надо просто смотреть ее в отладичике и всего, она или не доступна там или вообще выкинута за ненадобность.
Эта строка if exsistIn('имя шкафа', ComboBox4.Text) then tmp:=true;лишняя, она ничего не делает.
umbra (2005-11-04 10:22:00) [2]Зачем в
ExistsInдва раза присваиватьResult := false?
Zeqfreed (2005-11-03 23:20:00) [3]Michael5 (03.11.05 23:07)
Т.к. ты нигде ниже по коду не используешь переменную tmp - строки просто-напросто не скомпилировались и не были включены в исполнимый модуль,due to optimization.
Michael5 (2005-11-03 23:10:00) [4]var потерял в процедуре ApplyClick...