Здравствуйте! Я решаю следующую задачу: отключен ряд отключающих устройств, выделить цветом отключенные участки сети. Нормального способа я не нашел, поэтому использую "ход конем". А именно:
Layer.InMemory:=true; //Слой в памяти
for i := 0 to ZL.Count - 1 do
Layer.DeleteElement(integer(ZL[i])); //удаляем задвижки
Layer.NetWorkTools.AddFlag(FlagItem); //ставим флажок внутри сети
Layer.NetworkTools.ResultsColor:=0; //черный цвет
Layer.NetworkTools.ResultsVisible:=true;
Layer.NetworkTools.FindConnected; //Находим связанные
Layer.InMemory:=false; //возвращаем задвижки
при этом все хорошо за исключением одной детали: перекрашиваются все участки сети, кроме тех которые непосредственно примыкают к удаленным задвижкам.
Эти участки почему то не считаются соединенными. Я много экспериментировал, по-моему это именно ошибка в программе.
Layer.InMemory:=true; //Слой в памяти
for i := 0 to ZL.Count - 1 do
Layer.DeleteElement(integer(ZL[i])); //удаляем задвижки
Layer.NetWorkTools.AddFlag(FlagItem); //ставим флажок внутри сети
Layer.NetworkTools.ResultsColor:=0; //черный цвет
Layer.NetworkTools.ResultsVisible:=true;
Layer.NetworkTools.FindConnected; //Находим связанные
Layer.InMemory:=false; //возвращаем задвижки
при этом все хорошо за исключением одной детали: перекрашиваются все участки сети, кроме тех которые непосредственно примыкают к удаленным задвижкам.
Эти участки почему то не считаются соединенными. Я много экспериментировал, по-моему это именно ошибка в программе.