как сделать чтоб по сокращению цвета
Приветствую,
Understanding
поскольку сокращение цвета у нас будет происходить 7 раз - сделаем это присваивание в виде функции
string ColorToShortString(color Color)
{
string cColor=NULL; // сColor - строковое возвращаемое значение функции..
switch(Color) // ставим переключатель для заранее известных значений цветов
{ case clrGold : cColor="Gold";break; // назначаем цвету его короткое имя
case clrDeepSkyBlue : cColor="Blue";break;
case clrLime : cColor="Lime";break;
case clrPink : cColor="Pink";break;
case clrMediumOrchid : cColor="Orchid";break;
case clrWhite : cColor="White";break;
case clrLightSlateGray : cColor="Gray";break;
default : cColor="ERROR:color no case";break;
}
return(cColor);
}
Ф-я принимает
цвет в переменную Color (вх.параметр:
color Color)
И возвращает
строку "
string ColorToShortString" с помощью переменной string cColor
В зависимости от заранее известных цветов переключатель switch присваивает текстовое значение переменной cColor и возвращает ее как результат в строковом выражении
Возвращаемое значение - это и есть наш цвет в более сокращенном виде
если нужно еще короче - меняем внутри скобок
"Gold" -> "Gd"
"Gray" -> "Gr"
и т.д.
Надеюсь понятно описал)
=====
далее
в коде, написанном ранее, часть наименования, связанная с цветом, для каждого блока формируется в строке
label=(string)InpMAcolor01;StringReplace(label,"clr","");
здесь сначала мы строковой переменной label присваиваем наименование цвета блока, преобразовав его из типа "цвет" в тип "строка" : label=(string)InpMAcolor01; здесь, к примеру clrGold -
цвет станет "clrGold" -
строка
затем
StringReplace(label,"clr",""); - здесь мы в значении переменной label ищем подстроку "clr" и заменяем ее на пустоту - сокращаем - и получаем просто "Gold"
---
при появлении функции "короткое имя цвета" (ColorToShortString) этот ранний код не используем
label=(string)InpMAcolor01;StringReplace(label,"clr","");
и заменим его на вызов нашей новой функции
label=ColorToShortString(InpMAcolor01);