Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

There is no overloaded version of FindNode that can be called w   Найти похожие ветки 

 
Solo ©   (2007-04-02 17:17) [0]

вот участок кода:

 if TopNode.ChildNodes["SPRV"].ChildNodes.FindNode(SprNodeMnem) = nil then //Здесь FindNode срабатывает
 begin
   Result := False;
   Exit; //И выходим из проверки - все нормально
 end else //А если эта ячейка должна-а-а-а быть справочной
 begin
   SprNode := TopNode.ChildNodes["SPRV"].ChildNodes[SprNodeMnem];
   SprNodeName := SprNode.ChildNodes.First.Text;
 if SprNode.ChildNodes.FindNode[LookedNum] = nil then
   begin //Здесь FindNode дает ошибку!!!!!! Почему?
     Err:= "Показатель ""+Grid.Cells[c, r]+"" отсутствует в справочнике ""+ SprNodeName +""";
     LogErr(Err, IntToStr(r), IntToStr(c), 0);
   end else
   begin
     ShowMessage("Справочная ячейка "+SprNode.NodeName+" равна "+SprNode.ChildNodes[LookedNum].NodeName);
     Result := False;
   end;
 end;

end;


Компилер дает ошибку:
Error] Unit1.pas(449): E2250 There is no overloaded version of "FindNode" that can be called with these arguments
НО КАК ЖЕ ТАК? Ведь LookedNum - строковый аргумент... К тому же в первом случае ошибки нет, а во-втором почему-то No Overloaded?


 
Desdechado ©   (2007-04-02 17:23) [1]

> FindNode[LookedNum]
> FindNode(SprNodeMnem)
Разницу видишь?


 
solo ©   (2007-04-02 17:37) [2]

И то и другое - стрингового типа. Вот полный код

//--получить соответствие показателя справочнику--------------------------------
function TForm1.GetErrSprv(r, c: Integer): Boolean; //Если False - все нормально
var //SprType: Boolean; // true - справочный, false - обычный
   SprNodeMnem, LookedNum, //мнемоническое имя нода с показателем, его имя,
   SprNodeName, Err: string; //содержимое проверяемой ячейки и текст ошибки
   TopNode, SprNode: IXMLNode;
begin
 Result := True; //Инициализация - как ошибка
// сначала определяем, имеет ли показатель справочный тип
 SprNodeMnem := GetPokNodeName(r, c);
//  ShowMessage(SprNodeMnem);
 LookedNum := "n"+Grid.Cells[c, r];
 LookedNum := strtst(LookedNum, ""!<>\/()& ", 2);
 TopNode := XMLDoc.DocumentElement;
//  SprType := True; //Инициализация - пусть будет справочный тип
 if TopNode.ChildNodes["SPRV"].ChildNodes.FindNode(SprNodeMnem) = nil then
 begin
   Result := False;
   Exit; //И выходим из проверки - все нормально
 end else //А если эта ячейка должна-а-а-а быть справочной
 begin
   SprNode := TopNode.ChildNodes["SPRV"].ChildNodes[SprNodeMnem];
   SprNodeName := SprNode.ChildNodes.First.Text;
 if SprNode.ChildNodes.FindNode[LookedNum] = nil then
   begin
     Err:= "Показатель ""+Grid.Cells[c, r]+"" отсутствует в справочнике ""+ SprNodeName +""";
     LogErr(Err, IntToStr(r), IntToStr(c), 0);
   end else
   begin
     ShowMessage("Справочная ячейка "+SprNode.NodeName+" равна "+SprNode.ChildNodes[LookedNum].NodeName);
     Result := False;
   end;
 end;

end;


 
Desdechado ©   (2007-04-02 17:40) [3]

Массив от списка параметров отличаешь?


 
solo ©   (2007-04-02 17:40) [4]

Ой блиииин... Допер...
Что-то я к концу дня туплю. Кстати, если не сложно, объясните разницу м/у [ и ( - почему в одном случае так, а в другом эдак...


 
solo ©   (2007-04-02 17:41) [5]

Все. Спасибо большое, допер. Позор мне :-)))) Елки -палки, три дня имелся с этим... Все выходные убил. Спасибо



Страницы: 1 вся ветка

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.081 c
2-1175556479
Alll
2007-04-03 03:27
2007.04.22
Циклы


2-1175339108
Xmen
2007-03-31 15:05
2007.04.22
QuickReport


2-1175755840
Мимопроходящий
2007-04-05 10:50
2007.04.22
Преобразование строки в вид %EA%BD...


3-1170688056
Da
2007-02-05 18:07
2007.04.22
Какое лучше использовать?


2-1175667076
ParaGon
2007-04-04 10:11
2007.04.22
помогите отключить юзеров